1. 程式人生 > >Delphi重複使用ADOquery時要避免相互干擾的問題

Delphi重複使用ADOquery時要避免相互干擾的問題

以前想過,沒當回事,這次偶爾發現確實有問題。

我一般是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就不會出現這樣的問題,但我習慣在中間臨時查詢時用迴圈使用。

高手們是如何控制的?