在DELPHI中将字段添加到克隆的TClientDataset

在DELPHI中将字段添加到克隆的TClientDataset,delphi,Delphi,嗨,我有一个主数据集和克隆数据集 CdsCloned.CloneCursor(CdsMaster,true); CdsMaster有两个字段“SessionId”和“UserID” CdsCloned将具有相同的字段 问题:是否可以在不更改CDS主机的情况下向CDS添加额外字段 这里确实有两个问题:我可以添加一个额外的TField吗?我可以添加一个额外的数据字段吗 克隆客户端数据集游标时,最终会得到两个TDataSet实例,每个实例都有自己的TField集合,它们共享一个数据存储。您当然可以在

嗨,我有一个主数据集和克隆数据集

CdsCloned.CloneCursor(CdsMaster,true);
CdsMaster有两个字段“SessionId”和“UserID” CdsCloned将具有相同的字段


问题:是否可以在不更改CDS主机的情况下向CDS添加额外字段

这里确实有两个问题:我可以添加一个额外的TField吗?我可以添加一个额外的数据字段吗

克隆客户端数据集游标时,最终会得到两个TDataSet实例,每个实例都有自己的TField集合,它们共享一个数据存储。您当然可以在不影响克隆的情况下,为一个或另一个字段添加额外的TField,例如计算字段。这样做没有问题

但请记住,原始数据集及其克隆共享一个数据存储。在不影响其他数据集的情况下,无法更改该数据存储。如果向数据存储添加新字段,则无论是否已创建任何TField对象来读取/写入数据,该新数据都将出现在原始数据集引用的存储中。如果这听起来是个坏主意,那我也这么想

最后,如果希望原始数据集及其“克隆”具有不同的数据存储,则可以指定数据属性,而不是使用CloneCursor。执行此操作时,原始数据将复制到“克隆”的数据存储中,但原始数据和“克隆”不再共享单个数据存储