这些语句应该如何改进才能更有效率,或者完全放弃有什么更好的方法实现与此同样的功能??(50分)

  • 主题发起人 主题发起人 Imfish
  • 开始时间 开始时间
I

Imfish

Unregistered / Unconfirmed
GUEST, unregistred user!
//下面是一组循环将最新数据从源数据中读出并放入本地数据源中
repeat
//先放表list_b数据
localquery.append;
for i:=0 to 6 do
begin
localquery.Fields[i+1].Asstring:=sourcequery.fields.asstring;
end;
//根据编号放入表ysj1中的数据,这些语句必须放在这里
bhint:=moduleform.sourcequery.FieldByName('bh').asinteger;
querytemp.Close;
querytemp.SQL.Clear;
querytemp.SQL.Add('select * from ysjl where bh=:bh');
querytemp.Parameters.ParamByName('bh').value:=bhint;
querytemp.open;

repeat
//因为每个编号对应许多的记录,所以又引入这个循环
querytemp1.append;
querytemp1.fieldbyname('ZM').asstring:=rstation;
for j:=0 to 11 do
begin
querytemp1.Fields[j+2].Asstring:=querytemp.fields[j+1].asstring;
end;
querytemp.Next;
until querytemp.eof=true;
sourcequery.next;
until sourcequery.eof=true;
我用上面的语句导入主表120条记录,从表4000条记录共用了5分钟,请DFW们帮忙指点,谢谢
 
用SQL:
INSERT INTO 目的表 (字段列表) SELECT (字段列表) FROM 源表 WHERE ...
或者用BatchMove
 
对于楼上的好像可以,但我的库是两个库,也就是两个access库,不知这个语句的执行环境
怎样写,最好用代码,谢谢
 
INSERT INTO 目的表 (字段列表) SELECT (字段列表) FROM 源表 IN OtherDB.mdb
WHERE ...
 
insert into [c:/mdb].table1 select * from [c:/mdb1].tabe1 where
 
请看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=853039
 
多人接受答案了。
 
后退
顶部