Unidac/MyDac/SQL-我对快速插入大约1000行有问题



我使用unidac组件。我对快速插入大约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;

但是,我想在过程中使用第一种格式Query.ParamByName('b1'(.AsInteger:=2因为它更清晰,而且有大量的列,我发现自己更容易找到。

你对如何解决这个问题有什么想法吗?

也许您有其他方法可以快速插入具有不同数据的大量行?

如果需要快速插入大量记录,应该使用批更新。你可以在他们的博客中阅读更多关于使用UniDAC(或MyDAC(批量插入MySQL的信息

相关内容

  • 没有找到相关文章

最新更新