【发布时间】:2016-11-25 07:08:54
【问题描述】:
我有使用 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 用于选定的主记录)。实现这一点的最佳方法是什么?
如果我为prvMaster 禁用选项poFetchDetailsOnDemand,它会在连接时加载整个数据库。如果我启用它,它会一一获取详细记录,从而导致巨大的流量开销和性能下降。
【问题讨论】:
标签: delphi datasnap tclientdataset midas-server