0

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 つのパケットで取得する必要があります (選択したマスター レコードのcds1cds2、のすべてのネストされたコンテンツ)。cds3これを実装する最良の方法は何ですか?

poFetchDetailsOnDemandのオプションを無効にするとprvMaster、接続時にデータベース全体がロードされます。有効にすると、詳細レコードが 1 つずつ取得されるため、トラフィックのオーバーヘッドが大きくなり、パフォーマンスが低下します。

4

1 に答える 1