Unida c / MyDa c / SQL - У меня проблема с быстрой вставкой около 1000 строк - PullRequest
0 голосов
/ 02 мая 2020

Я использую компоненты Unida c. И у меня есть проблема с быстрой вставкой около 1000 строк.

var
  query: TUniquery;
begin
  query.SQL.Add('INSERT INTO Table (field1,field2,field3) VALUES (:b0,:b1,:b2);');
  for I := 0 to 1000 do
  begin
   Query.ParamByName('b0').AsInteger := 1;  
   Query.ParamByName('b1').AsInteger := 2;
   Query.ParamByName('b2').AsInteger := Random(100);
   Query.Prepare;
   Query.Execute;  //1000 times is very slow
end;

Это быстрее

var
  query: TUniquery;
begin
  for I := 0 to 1000 do
    Query.SQL.Add('INSERT INTO Table (field1,field2,field3) VALUES (1,2,Random(100));');
  end;
  Query.Execute;  //1 times - is fast add 
end;

Но я хотел бы использовать первый формат с процедурой Запрос. ParamByName ('b1'). AsInteger: = 2; , потому что он понятнее и с большим количеством столбцов мне легче найти.

У вас есть идеи, как решить эту проблему?

Может быть, у вас есть другие способы быстрой вставки большого количества строк с разными данными?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...