0
我有一個關於unidac的uniQuery
問題:當uniQuery打開時,爲什麼DataSource.onDataChange會觸發2次?
時uniQuery
開放,如果DataSource
組件連接,該DataSource.onDataChange
會觸發2次,ADOQuery
觸發僅有1時,爲什麼呢?
環境:
- uniDAC:6.4,7;
- 德爾福:7,XE 10.1柏林
我有一個關於unidac的uniQuery
問題:當uniQuery打開時,爲什麼DataSource.onDataChange會觸發2次?
時uniQuery
開放,如果DataSource
組件連接,該DataSource.onDataChange
會觸發2次,ADOQuery
觸發僅有1時,爲什麼呢?
環境:
我面臨同樣的問題很多次,我發現這是一個缺省的裝載行爲不只是在統一分量,所有類似的數據庫組件將觸發.onDataChange
兩次或加載時更多,唯一的方法是通過使用變通辦法忽略第一個觸發器。
您也可以找到類似的問題here
如果觸發兩次很討厭你,試試我的解決方法是:
var c: integer; // must be global and reset to 0 when u close your query
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
if c = 2 then
begin
// do your actions
end
else
begin
inc(c);
end;
end;
這將消除所有沒有必要的觸發器,
希望幫助。
環境: 1 uniDAC:6.4,7; 2 delphi:7,xe 10.1 berlin – d5f
如果你想添加細節到你的問題,通過編輯問題來做到這一點(參見標籤下面的'edit'按鈕) –
你有多少條記錄(從uniQuery返回)? –