标签:获取 www cti class lse end start button 脚本参数
一、{逐条插入}
procedure TForm1.Button1Click(Sender: TObject); const strInsert = ‘INSERT INTO MyTable(Name, Age) VALUES(:name, :age)‘; begin // FDQuery1.FetchOptions.AutoClose := True; //默认值 FDQuery1.ExecSQL(strInsert, [‘A‘, 1]); FDQuery1.ExecSQL(strInsert, [‘B‘, 2]); FDQuery1.ExecSQL(strInsert, [‘C‘, 3]); FDQuery1.ExecSQL(strInsert, [‘D‘, 4]); FDQuery1.Open(‘SELECT * FROM MyTable‘); end;
二、{一次行插入}
procedure TForm1.Button2Click(Sender: TObject); const strInsert = ‘INSERT INTO MyTable(Name, Age) VALUES("%s", %d)‘; var LStr: string; begin LStr := ‘‘; LStr := LStr + Format(strInsert, [‘AA‘, 11]) + ‘;‘; LStr := LStr + Format(strInsert, [‘BB‘, 22]) + ‘;‘; LStr := LStr + Format(strInsert, [‘CC‘, 33]) + ‘;‘; LStr := LStr + Format(strInsert, [‘DD‘, 44]) + ‘;‘; LStr := LStr + ‘SELECT * FROM MyTable‘; FDQuery1.ExecSQL(LStr); FDQuery1.Open(); end;
三、{使用 NextRecordSet 方法提取并执行所有命令}
procedure TForm1.Button3Click(Sender: TObject); const strInsert = ‘INSERT INTO MyTable(Name, Age) VALUES("%s", %d);‘; begin FDQuery1.FetchOptions.AutoClose := False; //按说这个是必须要设置的, 但测试时不设置也可以 FDQuery1.SQL.Clear; FDQuery1.SQL.Add(Format(strInsert, [‘AAA‘, 111])); FDQuery1.SQL.Add(Format(strInsert, [‘BBB‘, 222])); FDQuery1.SQL.Add(Format(strInsert, [‘CCC‘, 333])); FDQuery1.SQL.Add(Format(strInsert, [‘DDD‘, 444])); FDQuery1.SQL.Add(‘SELECT * FROM MyTable‘); FDQuery1.Execute(); FDQuery1.NextRecordSet; end;
四、{使用 DML 数组参数}
procedure TForm1.Button4Click(Sender: TObject); const strInsert = ‘INSERT INTO MyTable(Name, Age) VALUES(:name, :age);‘; begin FDQuery1.FetchOptions.AutoClose := False; // FDQuery1.SQL.Text := strInsert; FDQuery1.Params.ArraySize := 4; //准备把上面的语句执行 4 次 {分别设置 4 次的参数} FDQuery1.Params[0].AsStrings[0] := ‘AAAA‘; FDQuery1.Params[1].AsIntegers[0] := 1111; FDQuery1.Params[0].AsStrings[1] := ‘BBBB‘; FDQuery1.Params[1].AsIntegers[1] := 2222; FDQuery1.Params[0].AsStrings[2] := ‘CCCC‘; FDQuery1.Params[1].AsIntegers[2] := 3333; FDQuery1.Params[0].AsStrings[3] := ‘DDDD‘; FDQuery1.Params[1].AsIntegers[3] := 4444; FDQuery1.Execute(4, 0); //从 1 条开始执行 4 次 FDQuery1.SQL.Add(‘SELECT * FROM MyTable‘); FDQuery1.NextRecordSet; end;
五、{使用 FireDAC 扩展的 SQL Script(TFDScript), 它还能直接调用文件中的 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;
感谢参考 https://www.cnblogs.com/del/p/3758082.html
标签:获取 www cti class lse end start button 脚本参数
原文地址:https://www.cnblogs.com/usegear/p/13018970.html