アプリケーション サーバー上のデータセットのオーバーライド

提供: RAD Studio
移動先: 案内検索

ソース データセットに渡すパラメータの指定 への移動


特定のデータ アクセス メカニズムと関連付けられているクライアント データセットでは、CommandText プロパティと CommandType プロパティを使用して、データセットが表すデータを指定します。ただし、TClientDataSet を使用する場合には、データはクライアント データセットではなくソース データセットによって指定されます。通常、このソース データセットには、データを生成する SQL 文またはデータベース テーブルやストアド プロシージャの名前を指定するプロパティがあります。

プロバイダによっては、どのデータを表すかを示すソース データセットのプロパティを TClientDataSet がオーバーライドできる場合があります。つまり、プロバイダによっては、クライアント データセットの CommandText プロパティで、どのデータを表すかを示すプロバイダのデータセットのプロパティを置き換えられるということです。これにより、TClientDataSet はどのデータが必要かを動的に指定することができます。

デフォルトでは、外部プロバイダ コンポーネントは、クライアント データセットがこのように CommandText の値を使用することを許しません。TClientDataSetCommandText プロパティを使用できるようにするには、プロバイダの Options プロパティに poAllowCommandText を追加する必要があります。追加しなければ、CommandText の値は無視されます。

メモ: TBDEClientDataSet または TIBClientDataSetOptions プロパティから poAllowCommandText を削除してはなりません。クライアント データセットの Options プロパティは内部プロバイダに転送されるため、poAllowCommandText を削除すると、クライアント データセットはアクセスするデータを指定できなくなります。

クライアント データセットは、CommandText の文字列を次の 2 とおりの状況でプロバイダに送信します。

  • クライアント データセットが最初に開かれたとき。プロバイダから最初のデータ パケットを取得した後、その後のデータ パケットを取得するときには、クライアント データセットは CommandText を送信しません。
  • クライアント データセットがプロバイダに Execute コマンドを送信するとき。

上記以外のときに SQL コマンドを送信したり、テーブル名やストアド プロシージャ名を変更するには、AppServer プロパティとして提供されている IAppServer インターフェイスを明示的に使用しなければなりません。このプロパティは、クライアント データセットがプロバイダとの通信に使用するインターフェイスを表します。

関連項目

コード例