例子
C:\数据\ sample.sql
CREATE TABLE BOOKS(ID INTEGER PRIMARY KEY, NAME TEXT);
INSERT INTO BOOKS(ID, NAME) VALUES(1, 'Delphi 2009 handbook');
INSERT INTO BOOKS(ID, NAME) VALUES(2, 'Delphi XE2入門');
INSERT INTO BOOKS(ID, NAME) VALUES(3, 'Delph');
执行文件中描述的SQL
FDScript1.ExecuteFile('C:\data\sample.sql');
使用脚本参数
TFDScript的ExecuteFile方法将脚本参数作为第二个参数。
脚本参数是一个字符串数组。
FDScript1.ExecuteFile(文件名,脚本参数);
SQL语句中的“&职位编号”被替换为参数。
例子
C:\数据\ sample.sql
CREATE TABLE &1(ID INTEGER PRIMARY KEY, NAME TEXT);
INSERT INTO &1(ID, NAME) VALUES(1, '&2');
INSERT INTO &1(ID, NAME) VALUES(2, '&3');
INSERT INTO &1(ID, NAME) VALUES(3, '&4');
执行文件中描述的SQL
FDScript1.ExecuteFile('C:\data\sample.sql',
[ 'BOOKS',
'Delphi 2009 handbook―Delphi最新',
'Delphi XE2入門',
'Delphi']);
捕捉错误
如果执行SQL脚本时发生错误,则会引发OnError事件。
procedure TForm1.FDScript1Error(ASender: TObject;
const AInitiator: IFDStanObject; var AException: Exception);
begin
ShowMessage(AException.Message);
end;
获取发生的错误数
您可以获取TotalErrors属性中发生的错误数。
FDConnection1.StartTransaction;
try
FDScript1.ExecuteFile('C:\data\sample.sql');
finally
if FDScript1.TotalErrors > 0 then
FDConnection1.Rollback
else
FDConnection1.Commit;
end;
显示SQL脚本执行的进度
使用TFDGUIxScriptDialog显示SQL脚本执行的进度。
TFDGUIxScriptDialog
将TFDGUIxScriptDialog组件放置在窗体上,并设置TFDScript组件的ScriptDialog属性。
FDScript1.ScriptDialog := FDGUIxScriptDialog1;