FDQuery1.ExecSQL('DELETE FROM test'); FDQuery1.SQL.Text := 'INSERT INTO test(field1, field2) values (:field1, :field2)'; t := GetTickCount; FDQuery1.Connection.StartTransaction; try FDQuery1.Params.ArraySize := NUM_INSERTS; for i := 0 to NUM_INSERTS-1 do begin FDQuery1.Params[0].AsIntegers[i] := i; FDQuery1.Params[1].AsStrings[i] := 'Str' + IntToStr(i); end; FDQuery1.Execute(NUM_INSERTS,0); finally FDQuery1.Connection.Commit; end;