我有关于联合国uniQuery
的问题:
当uniQuery
打开时,如果链接了DataSource
组件,DataSource.onDataChange
将触发2次,ADOQuery
只触发1次,为什么?
环境:
答案 0 :(得分:0)
我多次遇到同样的问题,我发现它是一个默认的加载行为,不仅仅是在Uni组件中,所有类似的数据库组件在加载时都会触发.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;
它将消除所有必要的触发器,
希望有所帮助。