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返回)? –