首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当uniQuery被打开时,为什么DataSource.onDataChange触发2次?

当uniQuery被打开时,为什么DataSource.onDataChange触发2次?
EN

Stack Overflow用户
提问于 2017-08-30 04:59:54
回答 1查看 350关注 0票数 0

我有个关于unidac的uniQuery的问题

uniQuery打开时,如果一个DataSource组件被链接,那么DataSource.onDataChange将触发2次,而ADOQuery只触发1次,为什么?

环境:

  1. 发援会:6.4,7;
  2. 德尔菲: 7,xe 10.1柏林
EN

回答 1

Stack Overflow用户

发布于 2017-08-30 14:01:48

我多次遇到同样的问题,我发现这不仅仅是在Uni组件中的默认加载行为,所有类似的数据库组件在加载时都会触发两次或更多次.onDataChange,唯一的方法就是使用变通方法忽略第一个触发器。

您还可以找到类似的问题,这里

如果触发两次会让你烦恼,那就试试我的解决办法吧:

代码语言:javascript
复制
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;

它将消除所有不必要的触发,

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45952230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档