如果您是需要默认 RDS 支持的 IIS 服务器管理员,但需要进一步控制用户请求和访问权限,则可能需要编写自己的处理程序。
MSDFMAP.Handler 实现 IDataFactoryHandler 接口。
该接口有两种方法,即 GetRecordset 和 Reconnect。两种方法都要求将 CursorLocation 属性设置为 adUseClient。
两种方法都取“Handler=”关键词的第一个逗号后面出现的参数。例如,“Handler=progid,arg1,arg2;”将传递“arg1,arg2”的参数字符串,而“Handler=progid”将传递参数 NULL。
该方法使用提供的参数查询数据源并创建新的 Recordset 对象。Recordset 必须使用 adLockBatchOptimistic 打开,不能异步打开。
参数
conn 连接字符串。
args 处理程序参数。
query 产生查询所用的命令文本。
ppRS 指向返回 Recordset 的位置。
该方法更新数据源。它创建新的 Connection 对象,并附加给定的 Recordset。
参数
conn 连接字符串。
args 处理程序参数。
pRS Recordset 对象。
这是出现在 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 将在调用 Reconnect 后 // 使用记录集的 ActiveConnection 属性。 HRESULT _stdcall Reconnect( [in] BSTR conn, [in] BSTR args, [in] _Recordset *pRS); }; };