此頁沒有內(nèi)容條目
內(nèi)容

編寫自己的自定義處理程序

如果您是需要默認 RDS 支持的 IIS 服務(wù)器管理員,但需要進一步控制用戶請求和訪問權(quán)限,則可能需要編寫自己的處理程序。

MSDFMAP.Handler 實現(xiàn) IDataFactoryHandler 接口。

IDataFactoryHandler 接口

該接口有兩種方法,即 GetRecordsetReconnect。兩種方法都要求將 CursorLocation 屬性設(shè)置為 adUseClient。

兩種方法都取“Handler=”關(guān)鍵詞的第一個逗號后面出現(xiàn)的參數(shù)。例如,“Handler=progid,arg1,arg2;”將傳遞“arg1,arg2”的參數(shù)字符串,而“Handler=progid”將傳遞參數(shù) NULL。

GetRecordset 方法

該方法使用提供的參數(shù)查詢數(shù)據(jù)源并創(chuàng)建新的 Recordset 對象。Recordset 必須使用 adLockBatchOptimistic 打開,不能異步打開。

參數(shù)

conn   連接字符串。

args   處理程序參數(shù)。

query   產(chǎn)生查詢所用的命令文本。

ppRS   指向返回 Recordset 的位置。

Reconnect 方法

該方法更新數(shù)據(jù)源。它創(chuàng)建新的 Connection 對象,并附加給定的 Recordset。

參數(shù)

conn   連接字符串。

args   處理程序參數(shù)。

pRS   Recordset 對象。

msdfhdl.idl

這是出現(xiàn)在 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 將在調(diào)用 Reconnect 后

// 使用記錄集的 ActiveConnection 屬性。

   HRESULT _stdcall Reconnect(

      [in] BSTR conn,

      [in] BSTR args,

      [in] _Recordset *pRS);

    };

};