次の方法で共有


Microsoft OLE DB Remoting Provider (ADO サービス プロバイダー)

適用先: Access 2013、Office 2013

Microsoft OLE DB Remoting Provider を使用すると、クライアント コンピューター上のローカル ユーザーはリモート コンピューターのデータ プロバイダーを呼び出すことができます。 リモート コンピューターのローカル ユーザーと同じように、リモート コンピューターのデータ プロバイダー パラメーターを指定します。 次に、リモート コンピューターにアクセスするために Remoting Provider で使用するパラメーターを指定します。 これによって、ローカル ユーザーと同じようにリモート コンピューターにアクセスすることができます。

プロバイダー キーワード

OLE DB Remoting Provider を呼び出すには、接続文字列で次のキーワードと値を指定します。 プロバイダー名に含まれるスペースに注意してください。

 
"Provider=MS Remote" 

その他のキーワード

このサービス プロバイダーを呼び出す場合は、次に示すキーワードも指定できます。

Keyword

説明

Data Source

リモート データ ソース名を指定します。 この値は、OLE DB Remoting Provider に渡されて処理されます。 このキーワードは 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

Command Properties

MS Remote プロバイダーがサーバーに送信するコマンドの文字列 (行セット) プロパティに追加する値を示します。 この文字列の既定値は vt_empty です。

Current DFMode

サーバー上の DataFactory の実際のバージョン番号を示します。 DFMode プロパティで要求したバージョンが受け付けられたかどうかを調べるには、このプロパティを確認します。 次の有効な長整数型 (Long) の値のいずれかを指定できます。

  • 25 - Version 2.5 (既定)

  • 21 - Version 2.1

  • 20 - Version 2.0

  • 15 - Version 1.5

MSRemote プロバイダーを使用する場合、接続文字列に "DFMode=20;" を追加すると、データ更新時のサーバーのパフォーマンスを向上させることができます。 この設定によって、サーバー上の RDSServer.DataFactory オブジェクトはリソース消費量の少ないモードを使用します。 ただし、この設定では次の機能は使用できません。

  • パラメーター クエリを使用する。

  • Execute メソッドを呼び出す前に、パラメーターまたは列の情報を取得する。

  • Transact UpdatesTrue に設定する。

  • 行のステータスを取得する。

  • Resync メソッドを呼び出す。

  • Update Resync プロパティによって明示的または自動的に更新する。

  • Command プロパティまたは Recordset プロパティを設定する。

  • adCmdTableDirect を使用する。

ハンドラー

RDSServer.DataFactory の機能を拡張するサーバー側カスタマイズ プログラム (またはハンドラー) の名前と、ハンドラーで使用されるすべてのパラメーターをコンマ (",") で区切って示します。 文字列型 ( String ) の値を返します。

Internet Timeout

サーバーとの間で要求をやり取りするときの最大待ち時間をミリ秒単位で示します。 既定値は 5 分です。

Remote Provider

リモート サーバーで使用されるデータ プロバイダーの名前を示します。

Remote Server

この接続で使用されるサーバー名および通信プロトコルを示します。 このプロパティは、RDS.DataControl オブジェクトの Server プロパティと同等です。

Transact Updates

True に設定すると、UpdateBatch がサーバー上で実行されたときに、トランザクション内で処理が行われることを示します。 このブール型 (Boolean) の動的プロパティの既定値は False です。

値の設定が可能な動的プロパティは、プロパティ名を接続文字列のキーワードとして指定して設定することもできます。 たとえば、 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=https://YourServer" 
rs.Open "SELECT * FROM authors", cn 
...                'Edit the recordset 
rs.UpdateBatch     'Equivalent of RDS SubmitChanges 
...