使用Delphi Berlin。
我在一个数据模块(“dmCore”)中有一个嵌套的Clientdataset。
对于任何给定的主记录,详细表中大约有5000条记录(使用2个主记录进行测试)。
我有一个连接到ActionManager中的操作的“Post”按钮。
它的OnUpdate很简单:
actPost.Enabled:=dmCore.HasChanges;// checks master for changes
"
"HasChanges"很简单:
"function TdmCore.HasChanges: boolean;
begin
result := False;
if cdsPSet.Active then
result:=(cdsPSet.ChangeCount>0);
end;
很遗憾,CDS.ChangeCount在onUpdate操作中运行占用了大量的CPU时间(>50%)。
我没有注意到这种情况发生在非嵌套的CDS上...
有没有更简单(更快)的机制可以用来检测CDS是否已经改变?我不需要计数,只需要知道某个地方发生了改变。
TIA EdB