Delphi TFDMemTable,CloneCursor和源表不同步,除非调用Refresh

时间:2020-04-18 16:26:46

标签: delphi firedac fdmemtable

我正在使用的代码大量使用了TFDMemTables,并使用CloneCursor克隆了这些表。

有时,在我无法识别的特定条件下,源表及其克隆不同步:它们之间的数据可能不同,记录数也不同。 在克隆表上调用Refresh可使事情恢复正常。

据我了解,CloneCursor用于寻址存储数据的相同基础内存,这意味着两个指针中的任何一个对基础数据的更改都应反映在另一个表上,但允许用户使用单独的过滤器/记录每个“视图”的位置。那么怎么可能不同步呢?

我构建了一个小型模拟器,在其中可以在表或其克隆中插入/删除/过滤记录,并观察对另一个记录的影响。更改已正确反映。

“刷新”的另一个缺点是,如果使用过多,则会极大地降低执行速度。

有人遇到类似问题或找到有关此事的说明/文档吗?

编辑:

阐明“不同步”的含义,这意味着使用FieldByName从表中读取值将在刷新之前返回X,在刷新后返回Y。我无法在上述模拟器上重现此行为。

0 个答案:

没有答案