簡體   English   中英

打開uniQuery時,為什么DataSource.onDataChange觸發2次?

[英]When uniQuery is opened, why DataSource.onDataChange trigger 2 times?

我對unidac的uniQuery有疑問:

uniQuery打開時,如果鏈接了DataSource組件,則DataSource.onDataChange將觸發2次,而ADOQuery僅觸發1次,為什么?

環境:

  1. uniDAC:6.4,7;
  2. delphi:7,xe 10.1柏林

我多次遇到相同的問題,我發現這是默認的加載行為,不僅是在Uni組件中,所有類似的數據庫組件在加載時都會觸發.onDataChange兩次或更多次,唯一的解決方法是使用變通辦法忽略第一個觸發器。

您也可以在這里找到類似的問題

如果觸發兩次讓您感到煩惱,請嘗試以下解決方法:

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;

它將消除所有不必要的觸發器,
希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM