FireDac – Array DML

Utilizar FireDac é lindo *-*

Comando comum

var
  I: Integer;
  TempoOld: Cardinal;
begin
  FDQuery1.SQL.Text := 'insert into TabelaInsert (Id, Descricao) values(:Id, :Descricao)';
  TempoOld := GetTickCount();
  for I := 1 to 10000 do
  begin
    FDQuery1.Params[0].Value := I;
    FDQuery1.Params[1].Value := 'Descrição - ' + i.ToString;
    FDQuery1.ExecSQL();
  end;
  Edit1.Text := IntToStr(GetTickCount() - TempoOld);
end;

Comando com Array DML

var
  I: Integer;
  TempoOld: Cardinal;
begin
  FDQuery1.SQL.Text := 'insert into TabelaInsert (Id, Descricao) values(:Id, :Descricao)';
  FDQuery1.Params.ArraySize := 10000;
  TempoOld := GetTickCount();
  for I := 0 to FDQuery1.Params.ArraySize do
  begin
    FDQuery1.Params[0].AsIntegers[I - 1] := I;
    FDQuery1.Params[1].AsStrings[I - 1] := 'Descrição - ' + IntToStr(I);
  end;
  FDQuery1.Execute(FDQuery1.Params.ArraySize);
  Edit2.Text := IntToStr(GetTickCount() - TempoOld);
end;

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *