我有Delphi客户端 - 服务器应用程序使用DataSnap。 在客户端,我有一个嵌套的客户端数据集链(cdsMaster
- >cds1
- >cds2
- >cds3
)。在Delphi DataSnap中获取多个嵌套数据集
TDM = class(TDataModule)
cdsMaster: TClientDataSet;
cdsMaster_cds1: TDataSetField;
cds1: TClientDataSet;
cds1_cds2: TDataSetField;
cds2: TClientDataSet;
cds2_cds3: TDataSetField;
cds3: TClientDataSet;
end;
在服务器端,我有一组与master-detail关系相似的数据集。
TCoDataModule = class(TRemoteDataModule, ICoDataModule)
prvMaster: TDataSetProvider;
dsMaster: TIBDataSet;
ds1: TIBTable;
ds2: TIBTable;
ds3: TIBTable;
end;
首先,我需要一次读取的cdsMaster
含量(无详细信息),然后在单个数据包(选定主记录的cds1
所有嵌套内容,cds2
,cds3
)需求获取全部细节。实现这个最好的方法是什么?
如果我禁用选项poFetchDetailsOnDemand
对于prvMaster
,它将加载连接上的整个数据库。如果我启用它,它会逐个获取详细信息记录,从而导致巨大的流量开销和性能下降。