在DELPHI中向克隆的TClientDataset添加字段

时间:2009-01-26 21:17:29

标签: delphi

您好我有一个主人并克隆了TClientData集

CdsCloned.CloneCursor(CdsMaster,true);

CdsMaster有两个字段'SessionId'和'UserID' CdsCloned将具有相同的Fields

问题:是否可以在不更改CdsMaster的情况下向CdsCloned添加额外字段?

1 个答案:

答案 0 :(得分:11)

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

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

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

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