打开唯一功能时,为什么datasource.ondatachange触发了2次



我有一个有关unidac的uniQuery的问题:

uniQuery打开时,如果链接了DataSource组件,则DataSource.onDataChange将触发2次,而ADOQuery仅触发1次,为什么?

环境:

  1. unidac:6.4,7;
  2. delphi:7,XE 10.1柏林

我多次面对同样的问题,我发现这是一种默认的加载行为,不仅在Uni-Component中,所有相似的数据库组件都会在加载时触发.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;

它将消除所有必要的触发器,
希望有帮助。

相关内容

  • 没有找到相关文章

最新更新