Microsoft OLE DB リモート処理プロバイダーの概要
Microsoft OLE DB リモート処理プロバイダーを使用すると、クライアント コンピューター上のローカル ユーザーがリモート コンピューターでデータ プロバイダーを呼び出すことができます。 リモート コンピューターのローカル ユーザーの場合と同様に、リモート コンピューターのデータ プロバイダー パラメーターを指定します。 次に、リモート処理プロバイダーがリモート コンピューターにアクセスするために使用するパラメーターを指定します。 その後、ローカル ユーザーであるかのようにリモート コンピューターにアクセスできます。
大事な
Windows 8 および Windows Server 2012 以降では、RDS サーバー コンポーネントは Windows オペレーティング システムに含まれません (詳細については、Windows 8 と Windows Server 2012 の互換性クックブック を参照してください)。 RDS クライアント コンポーネントは、将来のバージョンの Windows で削除される予定です。 新しい開発作業ではこの機能を使用しないでください。現在この機能を使用しているアプリケーションを変更することを計画してください。 RDS を使用するアプリケーションは、WCF Data Serviceに移行する必要があります。
プロバイダーキーワード
OLE DB リモート処理プロバイダーを呼び出すには、接続文字列に次のキーワードと値を指定します。 (プロバイダー名の空白文字を書き留めます)。
"Provider=MS Remote"
その他のキーワード
このサービス プロバイダーが呼び出されると、次の追加キーワードが関連します。
キーワード | 説明 |
---|---|
データ ソース | リモート データ ソースの名前を指定します。 処理のために OLE DB リモート処理プロバイダーに渡されます。 このキーワードは、RDS と同じです。DataControl オブジェクトの Connect プロパティです。 |
動的プロパティ
このサービス プロバイダーが呼び出されると、次の動的プロパティが Connection オブジェクトの Properties コレクションに追加されます。
動的プロパティ名 | 説明 |
---|---|
DFMode | DataFactory モードを示します。 サーバー上の DataFactory オブジェクトの目的のバージョンを指定する文字列。 接続を開く前にこのプロパティを設定して、DataFactoryの特定のバージョンを要求します。 要求されたバージョンが使用できない場合は、前のバージョンの使用が試行されます。 前のバージョンがない場合は、エラーが発生します。 DFMode 使用可能なバージョンより小さい場合は、エラーが発生します。 このプロパティは、接続が確立された後に読み取り専用です。 次のいずれかの有効な文字列値を指定できます。 - "25"-Version 2.5 (既定値) - "21"-Version 2.1 - "20"-Version 2.0 - "15"-Version 1.5 |
コマンドのプロパティ | MS リモート プロバイダーによってサーバーに送信されるコマンド (行セット) プロパティの文字列に追加される値を示します。 この文字列の既定値はvt_empty。 |
現在の DFMode | サーバー上の DataFactory の実際のバージョン番号を示します。 このプロパティを調べて、DFMode プロパティで要求されたバージョンが受け入れられていたかどうかを確認します。 次のいずれかの有効な Long 整数値を指定できます。 - 25 バージョン 2.5 (既定) - 21-Version 2.1 - 20-Version 2.0 - 15 バージョン 1.5 MSRemote プロバイダーを使用するときに接続文字列に "DFMode=20;" を追加すると、データを更新するときのサーバーのパフォーマンスが向上する可能性があります。 この設定では、サーバー上の RDSServer.DataFactory オブジェクトは、リソースを消費する負荷の少ないモードを使用します。 ただし、この構成では次の機能を使用できません。 - パラメーター化されたクエリの使用。 - Execute メソッドを呼び出す前に、パラメーターまたは列の情報を取得します。 - トランザクション更新 を true に設定します。 - 行の状態を取得します。 - Resync メソッドを呼び出します。 - Update Resync プロパティを使用して、明示的または自動的に更新します。 - Recordset プロパティ コマンド または 設定します。 - adCmdTableDirectを使う。 |
ハンドラーの | RDSServer.DataFactoryの機能を拡張するサーバー側カスタマイズ プログラム (またはハンドラー) の名前と、ハンドラーで使用されるすべてのパラメーターをコンマ (",") で区切って示します。 文字列 値。 |
インターネット タイムアウト | 要求がサーバーとの間で送受信されるのを待機する最大ミリ秒数を示します。 (既定値は 5 分です)。 |
リモート プロバイダー | リモート サーバーで使用するデータ プロバイダーの名前を示します。 |
リモート サーバー | この接続で使用するサーバー名と通信プロトコルを示します。 このプロパティは、RDS と同じです。DataContro Server プロパティ オブジェクト。 |
取引更新 | Trueに設定すると、この値は、UpdateBatch サーバーで実行されるときに、トランザクション内で実行されることを示します。 このブール型の動的プロパティの既定値は Falseです。 |
接続文字列でキーワードとして名前を指定することで、書き込み可能な動的プロパティを設定することもできます。 たとえば、次のように指定して、インターネット タイムアウト 動的プロパティを 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 リモート処理プロバイダーは、Open メソッドRecordset オブジェクトの ActiveConnection パラメーターでのみ指定できました。 ADO 2.1 以降では、Open メソッドの Connection オブジェクトの 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=https://YourServer"
rs.Open "SELECT * FROM authors", cn
... 'Edit the recordset
rs.UpdateBatch 'Equivalent of RDS SubmitChanges
...