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;
まず、コンテンツをcdsMaster1 回 (詳細なしで) 取得し、次にオンデマンドで完全な詳細を1 つのパケットで取得する必要があります (選択したマスター レコードのcds1、cds2、のすべてのネストされたコンテンツ)。cds3これを実装する最良の方法は何ですか?
poFetchDetailsOnDemandのオプションを無効にするとprvMaster、接続時にデータベース全体がロードされます。有効にすると、詳細レコードが 1 つずつ取得されるため、トラフィックのオーバーヘッドが大きくなり、パフォーマンスが低下します。