プロバイダの指定

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

クライアント データセットでのプロバイダの使用 への移動


データ アクセス メカニズムに関連付けられているクライアント データセットとは異なり、TClientDataSet には、データをパッケージ化したり更新を適用するための内部プロバイダ コンポーネントはありません。したがって、クライアント データセットでソース データセットまたは XML ドキュメントからのデータを表す場合は、そのデータセットを外部プロバイダ コンポーネントに関連付ける必要があります。

TClientDataSet をプロバイダと関連付ける方法は、プロバイダがクライアント データセットと同じアプリケーション内にあるか、別のシステムで動作しているリモート アプリケーション サーバー上にあるかによって異なります。

プロバイダの場所 TClientDataSet を関連付ける方法

プロバイダがクライアント データセットと同じアプリケーション内にある

プロバイダがクライアント データセットと同じアプリケーション内にある場合、[オブジェクト インスペクタ]ProviderName プロパティのドロップダウン リストからプロバイダを選択することにより、プロバイダと関連付けることができます。プロバイダの Owner がクライアント データセットと同じである限り、これでうまくいきます。なお、クライアント データセットとプロバイダが同じフォームやデータ モジュールに配置されていれば、両者の Owner は同じです。Owner の異なるローカル プロバイダを使用する場合は、クライアント データセットの SetProvider メソッドを使って実行時に関連付ける必要があります。

最終的にリモート プロバイダにスケールアップすることを考えている場合や、IAppServer インターフェイスを直接呼び出す場合は、ConnectionBroker プロパティを Datasnap.Win.TConnect.TLocalConnection コンポーネントに設定することもできます。TLocalConnection を使用する場合は、TLocalConnection インスタンスにより、アプリケーションに対してローカルなすべてのプロバイダのリストが管理され、クライアント データセットの IAppServer 呼び出しが処理されます。TLocalConnection を使用しない場合は、クライアント データセットからの IAppServer 呼び出しを処理する非表示オブジェクトがアプリケーションにより作成されます。

プロバイダがリモート アプリケーション サーバー上にある

プロバイダがリモート アプリケーション サーバー上にある場合は、ProviderName プロパティに加えて、クライアント データセットをアプリケーション サーバーに接続するコンポーネントを指定する必要があります。このタスクを処理できるプロパティは 2 つあります。プロバイダ リストの取得先となる接続コンポーネントの名前を指定する RemoteServer と、クライアント データセットと接続コンポーネントのやり取りを仲介する一元的なブローカを指定する ConnectionBroker です。接続コンポーネントと接続ブローカ(使用されている場合)は、クライアント データセットと同じデータ モジュールに存在します。接続コンポーネントは、アプリケーション サーバーへの接続を確立し維持管理します。これは "データ ブローカ" と呼ばれることもあります。詳細は、「クライアント アプリケーションの構造」を参照。

設計時には、RemoteServer または ConnectionBroker の指定後、[オブジェクト インスペクタ]ProviderName プロパティのドロップダウン リストからプロバイダを選択できます。このリストには、(同じフォームまたはデータ モジュール内にある)ローカル プロバイダも、接続コンポーネントを通じてアクセス可能なリモート プロバイダも含まれています。


メモ: 接続コンポーネントが TDCOMConnection のインスタンスである場合は、アプリケーション サーバーがクライアント マシンに登録されている必要があります。

実行時には、コードで ProviderName を設定することにより、使用可能なプロバイダ(ローカルとリモートの両方)を切り替えることができます。

関連項目