根据dbgrid数据,使用adoquery逐条插入表数据很慢,请大侠们分析原因!其中Num_Return(SQLstr)是自定义的SQL查询变量结果值,是根据插入后结果取值。
DBGrid1.DataSource.DataSet.First;
for i:= 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 do
begin
dm.con1.Open();
dm.ADOQuery2.Close;
dm.ADOQuery2.SQL.Clear;
dm.ADOQuery2.SQL.Add('insert into a(a,b,c) values('''+Num_Return(SQLstr)+''','''+DBGrid1.DataSource.DataSet.FieldByName('b').AsString+''',''等待'')');
dm.ADOQuery2.ExecSQL;
DBGrid1.DataSource.DataSet.Next;
end;
DBGrid1.DataSource.DataSet.First;
for i:= 0 to DBGrid1.DataSource.DataSet.RecordCount - 1 do
begin
dm.con1.Open();
dm.ADOQuery2.Close;
dm.ADOQuery2.SQL.Clear;
dm.ADOQuery2.SQL.Add('insert into a(a,b,c) values('''+Num_Return(SQLstr)+''','''+DBGrid1.DataSource.DataSet.FieldByName('b').AsString+''',''等待'')');
dm.ADOQuery2.ExecSQL;
DBGrid1.DataSource.DataSet.Next;
end;
insert into A(a,b,c) select d,e,f from B
试试
try
DBGrid1.DataSource.DataSet.DisableControls;
...你的代码
finally
DBGrid1.DataSource.DataSet.EnableControls;
end;
去查一查SQL INSERT 多条记录