编写自己的自定义处理程序

如果你是 IIS 服务器管理员,希望得到默认 RDS 支持,但也想要更精细地控制用户请求和访问权限,你可能需要编写自己的处理程序。

MSDFMAP.Handler 实现了 IDataFactoryHandler 接口。

重要

从 Windows 8 和 Windows Server 2012 开始,Windows 操作系统不再包含 RDS 服务器组件(有关更多详细信息,请参阅 Windows 8 和 Windows Server 2012 兼容性实用手册)。 Windows 的未来版本中将移除 RDS 客户端组件。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 RDS 的应用程序应迁移到 WCF 数据服务

IDataFactoryHandler 接口

此接口包含两种方法:GetRecordset 和 Reconnect。 这两种方法都需要将 CursorLocation 属性设置为 adUseClient。

这两种方法都接受出现在“Handler=”关键字中第一个逗号之后的参数。 例如,"Handler=progid,arg1,arg2;" 将传递参数字符串 "arg1,arg2",而 "Handler=progid" 将传递 Null 参数。

GetRecordset 方法

此方法查询数据源,并使用提供的参数创建新的 Recordset 对象。 Recordset 必须使用 adLockBatchOptimistic 打开,并且不能异步打开。

参数

conn 连接字符串

args 处理程序的参数

query 用于查询的命令文本

ppRS Recordset 应在此处返回的指针

Reconnect 方法

此方法可更新数据源。 此方法创建新的 Connection 对象并附加给定的 Recordset。

参数

conn 连接字符串

args 处理程序的参数

pRS Recordset 对象

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);  
    };  
};  

另请参阅

自定义文件 Connect 部分
自定义文件 Logs 部分
自定义文件 SQL 部分
自定义文件 UserList 部分
自定义 DataFactory
必需的客户端设置
了解自定义文件