不要用处理 Ttable的方法来处理SQL 2000 server上数据. 请改用SQL吧 如上应可改为 With ADOQuery1 do begin Sql.clear; Sql.Add('Insert into Table2(ID) Select ID from Table1;'); execsql;
sql.clear; Sql.Add('Delete from Table1;'); execsql; end;
ADO 的效率如何我不知道,但 ADO 体积小、携带方便、使用方便确是真的。
to erickleung() 我所说的只是个例子,实际操作上不得用我例子上的方法。实际情况是这样的,我要对table1表里的每条记录根据不同情况处理后,再把内容放到table2表,有可能table1表里的记录将生成两条或更多的记录append到table2条。或者说table1表里的有的记录现在暂时不处理,但得保留。而且上面我只是写成一个按钮来触发,实际上是每隔一秒钟要调用一次上面的方法,同时table1表每时每刻都有记录进来,table2表每时每刻有记录被删除。所以不能采用erickleung() 的方法,他的sql.clear; Sql.Add('Delete from Table1;'); execsql;这几句就有导致table1进来的记录,没处理就被干掉了。 现在别人要我把处理速度提高到150条记录/秒。可我左测右测,每秒才50-60条左右。如果改成BDE则可实现。
如上应可改为
With ADOQuery1 do begin
Sql.clear;
Sql.Add('Insert into Table2(ID) Select ID from Table1;');
execsql;
sql.clear;
Sql.Add('Delete from Table1;');
execsql;
end;
我所说的只是个例子,实际操作上不得用我例子上的方法。实际情况是这样的,我要对table1表里的每条记录根据不同情况处理后,再把内容放到table2表,有可能table1表里的记录将生成两条或更多的记录append到table2条。或者说table1表里的有的记录现在暂时不处理,但得保留。而且上面我只是写成一个按钮来触发,实际上是每隔一秒钟要调用一次上面的方法,同时table1表每时每刻都有记录进来,table2表每时每刻有记录被删除。所以不能采用erickleung() 的方法,他的sql.clear;
Sql.Add('Delete from Table1;');
execsql;这几句就有导致table1进来的记录,没处理就被干掉了。
现在别人要我把处理速度提高到150条记录/秒。可我左测右测,每秒才50-60条左右。如果改成BDE则可实现。