Microsoft OLE DB Remoting Provider を利用すると、クライアント コンピュータのローカル ユーザーは、リモート コンピュータのデータ プロバイダを呼び出すことができます。リモート コンピュータのローカル ユーザーと同じように、リモート コンピュータのデータ プロバイダ パラメータを指定してください。次に、リモート コンピュータにアクセスするために Remoting Provider で使用するパラメータを指定してください。その結果、ローカル ユーザーと同じように、リモート コンピュータにアクセスすることができます。
プロバイダ キーワード
OLE DB Remoting Provider を呼び出すには、接続文字列のキーワードと値を次のように指定します。プロバイダ名の "MS" と "Remote" の間のスペースに注意してください。
"Provider=MS Remote"
その他のキーワード
このサービス プロバイダを呼び出す場合には、次に示すキーワードも指定できます。
キーワード | 説明 |
Data Source | リモート データ ソース名を示します。この値は、OLE DB Remoting Provider に渡されて処理されます。 このキーワードは、RDS.DataControl オブジェクトの Connect プロパティと同等です。 |
ダイナミック プロパティ
このサービス プロバイダを呼び出すと、次に示すダイナミック プロパティが、Connection オブジェクトの Properties コレクションに追加されます。
ダイナミック プロパティ名 | 説明 |
DFMode | DataFactory モードを示します。サーバー上の、DataFactory オブジェクトのバージョンを指定する文字列です。接続を開く前に、このプロパティを設定し、DataFactory の特定のバージョンを要求してください。要求したバージョンを利用できない場合は、その前のバージョンの使用が試行されます。前のバージョンが存在しない場合は、エラーが発生します。DFMode が、利用可能なバージョンよりも前のバージョンの場合は、エラーが発生します。このプロパティは、接続の確立後は読み取り専用になります。 次の文字列値の 1 つを指定できます。
|
Current DFMode | サーバー上の DataFactory の実際のバージョン番号を示します。DFMode プロパティで要求したバージョンが受け付けられたかどうかを調べるには、このプロパティを確認してください。 次の長整数型 (Long) の値の 1 つを指定できます。
MSRemote プロバイダを使用するときに、接続文字列に "DFMode=20;" を追加すると、データ更新時のサーバーのパフォーマンスを向上させることができます。この設定では、そのサーバー上の RDSServer.DataFactory オブジェクトは、リソースの使用の集中度が低いモードを使用します。ただし、この設定では、次の機能は利用できません。
|
Handler | RDSServer.DataFactory の機能を拡張するサーバー側のカスタマイズ プログラム (ハンドラ) の名前、およびそのハンドラで使用されるパラメータを示します。プログラム (ハンドラ) 名とパラメータは、すべてカンマ (",") で区切られます。文字列型 (String) の値です。 |
Internet Timeout | 要求がサーバーとの間を行き来するときの最大待機時間をミリ秒単位で示します。既定は 5 分です。 |
Remote Provider | リモート サーバーで使用されるデータ プロバイダ名を示します。 |
Remote Server | この接続で使用されるサーバー名および通信プロトコルを示します。このプロパティは、RDS.DataControl オブジェクトの Server プロパティと同等です。 |
書き込み可能なダイナミック プロパティを設定するには、そのプロパティ名を接続文字列のキーワードとして指定します。たとえば、Internet Timeout ダイナミック プロパティを 5 秒に設定するには、次のように指定します。
Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Internet Timeout=5000"
ダイナミック プロパティを設定または取得するには、そのプロパティ名を Properties プロパティのインデックスとして指定します。たとえば、Internet Timeout ダイナミック プロパティの現在の値を取得して表示し、その後で新しい値を設定するには、次のように指定します。
Debug.Print cn.Properties("Internet Timeout")
cn.Properties("Internet Timeout") = 5000
解説
ADO 2.0 では、OLE DB Remoting Provider は、Recordset オブジェクトの Open メソッドの ActiveConnection パラメータでのみ指定できます。ADO 2.1 以降では、Connection オブジェクトの Open メソッドの ConnectionString パラメータでも指定できます。
RDS.DataControl オブジェクトの SQL プロパティと同等のダイナミック プロパティはありません。その代わりに、Recordset オブジェクトの Open メソッドの Source 引数を使用します。
"...;Remote Provider=MS Remote;..." のように指定すると 4 層構造になりますが、3 層を超える場合については、テストは行われておらず、必要になることもないはずです。
例
この例では、YourServer というサーバー上の pubs データベースの authors テーブルに対してクエリを実行します。リモート データ ソース名およびリモート サーバー名は、Connection オブジェクトの Open メソッドで指定し、SQL クエリは、Recordset オブジェクトの Open メソッドで指定します。Recordset オブジェクトが返され、編集されて、データ ソースの更新に使用されます。
Dim rs as New ADODB.Recordset
Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Data Source=pubs;" & _
"Remote Server=http://YourServer"
rs.Open "SELECT * FROM authors", cn
... 'Edit the recordset
rs.UpdateBatch 'Equivalent of RDS SubmitChanges
...