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