delphi使用ODAC控件 TOraScript组件介绍

TOraScript组件 

执行SQL和PL / SQL语句。

说明

TOraScript组件,可以执行多个SQL语句,包括DML和DDL语句,使用分号(;)分隔单个语句。

执行期间发生的错误可以在TDAScript.OnError事件中进行处理。 默认情况下,发生错误时,TOraScript会显示异常并继续执行。

常用属性

property Delimiter: string stored IsDelimiterStored; //设置分隔脚本语句的字符串。
//默认是分号(;)。 如果Delimiter属性的值为分号,则可以使用斜杠(/)分隔执行包含分号的语句(存储过程,遇到分号,不能马上执行,需要通过斜杠(/)来执行)。 
//注意,斜杠必须是行中的第一个字符。
property Statements: TDAStatements; //包含从SQL属性获得的语句列表。
//例子,不执行创建表的SQL语句
with OraScript1 do 
begin 
  SQL.Add('CREATE TABLE T_TESA(TCODE NUMBER(8), TNAME VARCHAR2(10));');
  SQL.Add('INSERT INTO T_TESA VALUES(1, ''a'');'); SQL.Add('INSERT INTO T_TESA VALUES(2, ''b'');');
  SQL.Add('INSERT INTO T_TESA VALUES(3, ''c'');');
  for I := 0 to Statements.Count - 1 do 
  begin
    if Copy(Statements[I].SQL, 1, 6) <> 'CREATE' then
    Statements[i].Execute;
  end;
end;

常用函数

procedure Execute; virtual; //执行所有SQL语句。 如果Oracle引发错误,则会触发OnError事件。
procedure ExecuteFile(const FileName: string); //执行文件中包含的SQL语句。
//参数 FileName 文件名
procedure BreakExec; virtual; //停止SQL语句执行。
function ErrorOffset: Int64; //如果Execute方法引发异常,则调用ErrorOffset方法以获取语句的偏移量。
//返回值 错误的偏移量。

常用事件

procedure BeforeExecute(Sender: TObject; var SQL: string; var Omit: boolean); //在执行当前SQL语句之前触发。
//SQL 当前将执行的SQL语句的文本。 编写SQL来更改将要执行的语句。
//Omit 是否跳过当前语句的执行,将Omit设置为True可跳过语句执行。  
procedure OnError(Sender: TObject; E: Exception; SQL: string; var Action: TErrorAction); 
//执行语句,Oracle发错误时发生。 //E 错误信息 //SQL 执行的SQL语句。 //Action OnError处理程序退出时要执行的操作。默认为eaFail。
//TErrorAction = (eaAbort, eaFail, eaException, eaContinue);
eaAbort 中止执行而不显示错误消息。
eaContinue 继续执行。
eaException 在Delphi 6和更高版本中,异常由Application.HandleException方法处理。
eaFail 中止执行并显示错误消息。
原文地址:https://www.cnblogs.com/txgh/p/14351850.html