首页 > 解决方案 > TFDDataset 在调用刷新后检测更改

问题描述

有什么方法可以检测 TFDDataset 中的数据是否由于调用数据集的 Refresh 函数而发生变化?

标签: delphifiredac

解决方案


Refresh方法的本质是它丢弃在其内部存储中获取的元组,因此在调用它之后,您没有结果集进行比较。因此,唯一的方法是在调用之前存储原始结果集。

但是在您的评论中,您提到您的总体目标是了解某个 detaset 是否由于另一个用户修改而发生了变化。也就是说,听起来您正在轮询通常效率不高的表格。

如果是这样,我建议考虑数据库事件(如果您的 DBMS 支持它们)或更好的业务层(最好与数据库事件结合)。只有当数据库中的某些内容实际发生更改时,这些事件或层才会生成客户端接收到的事件,从而节省(可能有很多)空往返。


推荐阅读