以前想过,没当回事,这次偶尔发现确实有问题。
我一般是ADOQuery1..5(基本上临时查询使用),循环使用,但有可能会出问题,那就是两个界面都用ADO1查询时,另外判断ADO.isempty时,会交叉干扰。比如A窗体的ADO1-->delete和B窗体的ADO1-->delete,你先查询A窗体的ADO1,B窗体删除时判断ADO1不为空,会通过判断,但删除时报错,毕竟字段不同,要是字段相同,结果会更坏,删除了不该删除的记录。
我现在是这样做的,ado和查询键的tag共同判断后操作,这样起码有个对应关系。
查询键:
ADO1.OPEN;
button1.tag:=1;
删除键:
if (not ado1.isempty) and (button.tag=1) then
begin
button1.tag:=0;
......
end;
当然,每个查询使用不同的ADO就不会出现这样的问题,但我习惯在中间临时查询时用循环使用。
高手们是如何控制的?