FireDAC 批量执行命令(批量插入、更新、删除)
代码
批量插入
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
//建立连接
FDConnection1.Connected := True;
//开启事务
FDConnection1.StartTransaction;
try
//设置语句
FDCommand1.CommandText.Text := 'INSERT INTO tceshi VALUES(:ID, :Code, :Name, :Amount)';
//设置参数类型和大小(ftString / ftWideString不设置大小会使用默认大小,占用缓冲区大小)
FDCommand1.ParamByName('ID').DataType := ftInteger;
FDCommand1.ParamByName('Code').DataType := ftString;
FDCommand1.ParamByName('Code').Size := 10;
FDCommand1.ParamByName('Name').DataType := ftString;
FDCommand1.ParamByName('Code').Size := 20;
FDCommand1.ParamByName('Amount').DataType := ftFloat;
//设置插入的记录数
FDCommand1.Params.ArraySize := 10000;
//设置插入的内容
for I := 0 to FDCommand1.Params.ArraySize - 1 do
begin
FDCommand1.ParamByName('ID').AsIntegers[I] := I + 1;
FDCommand1.ParamByName('Code').AsStrings[I] := I.ToString;
FDCommand1.ParamByName('Name').AsStrings[I] := I.ToString;
FDCommand1.ParamByName('Amount').AsFloats[I] := I * 1.2;
end;
//设置进度条
ProgressBar1.Max := 100;
ProgressBar1.Position := 0;
//循环批量提交
for I := 1 to 100 do
begin
//从第0个索引项开始,插入100条记录
//FDCommand1.Execute(100, 0);
//从第100个索引项开始,插入200条记录
//FDCommand1.Execute(300, 100);
//循环执行,每次插入100条记录
FDCommand1.Execute(100 * I, 100 * (I - 1));
//更新进度条
ProgressBar1.Position := I;
Application.ProcessMessages;
end;
//提交事务
FDConnection1.Commit;
except on E: Exception do
//回滚事务
FDConnection1.Rollback;
end;
end;
方法
FireDAC.Comp.Client.TFDCustomCommand.Execute
FireDAC.Comp.DataSet.TFDDataSet.Execute
procedure Execute(ATimes: Integer = 0; AOffset: Integer = 0; ABlocked: Boolean = False);
执行CommandText
指定的SQL命令,它不返回结果集。如果命令返回结果集,则所有结果集都将被丢弃。
TFDCustomCommand
、TFDQuery
和 TFDStoredProc
具有 Execute (ATimes: Integer = 0; AOffset: Integer = 0)
方法。
命令将从 AOffset 行开始执行 (ATimes - AOffset)
次。 ATimes 必须等于或小于 Params.ArraySize。
参数
ATimes 定义了数组的长度。
AOffset 是数组中第一个项的索引。
参考
https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Array_DML_(FireDAC)
标签:Execute,批量,FireDAC,FDCommand1,delphi,插入,100,ParamByName From: https://www.cnblogs.com/txgh/p/17672747.html