次の方法で共有


独自にカスタマイズしたハンドラーを作成する

適用先: Access 2013 | Access 2016

既定の RDS サポートを使用する IIS サーバー管理者は、独自のハンドラーを作成することで、ユーザーの要求とアクセス権をさらにきめ細かく制御することができます。

MSDFMAP.Handler は、IDataFactoryHandler インターフェイスを実装しています。

IDataFactoryHandler インターフェイス

このインターフェイスには、GetRecordsetReconnect という 2 つのメソッドがあります。 どちらのメソッドでも、CursorLocation プロパティを adUseClient に設定する必要があります。

どちらのメソッドも、"Handler=" キーワード内の最初のコンマの後に引数を指定します。 たとえば、 "Handler=progid,arg1,arg2;" は の引数文字列 "arg1,arg2"を渡し、 の引数文字列 "arg1,arg2"を渡し、 "Handler=progid" null 引数を渡します。

GetRecordset メソッド

このメソッドは、データ ソースに対してクエリを実行し、指定された引数を使用して新しい Recordset オブジェクトを作成します。 Recordset は、adLockBatchOptimistic を指定して開く必要があり、非同期では開かないでください。

GetRecordset 引数

conn 接続文字列です。

args ハンドラーに対する引数です。

query クエリを作成するためのコマンド テキストです。

ppRS Recordset を返す場所を示すポインターです。

再接続メソッド

このメソッドはデータ ソースを更新します。 新しい Connection オブジェクトを作成し、指定された Recordset を割り当てます。

再接続引数

conn 接続文字列です。

args ハンドラーに対する引数です。

PrsRecordset オブジェクト。

msdfhdl.idl

次に示すのは、msdfhdl.idl に含まれる IDataFactoryHandler に対するインターフェイス定義です。

[ 
  uuid(D80DE8B3-0001-11d1-91E6-00C04FBBBFB3), 
  version(1.0) 
] 
library MSDFHDL 
{ 
    importlib("stdole32.tlb"); 
    importlib("stdole2.tlb"); 
 
    // TLib : Microsoft ActiveX Data Objects 2.0 Library 
    // {00000200-0000-0010-8000-00AA006D2EA4} 
    #ifdef IMPLIB 
    importlib("implib\\x86\\release\\ado\\msado15.dll"); 
    #else 
    importlib("msado20.dll"); 
    #endif 
 
    [ 
      odl, 
      uuid(D80DE8B5-0001-11d1-91E6-00C04FBBBFB3), 
      version(1.0) 
    ] 
    interface IDataFactoryHandler : IUnknown 
    { 
HRESULT _stdcall GetRecordset( 
      [in] BSTR conn, 
      [in] BSTR args, 
      [in] BSTR query, 
      [out, retval] _Recordset **ppRS); 
 
// DataFactory will use the ActiveConnection property 
// on the Recordset after calling Reconnect. 
   HRESULT _stdcall Reconnect( 
      [in] BSTR conn, 
      [in] BSTR args, 
      [in] _Recordset *pRS); 
    }; 
}; 

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。