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

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

MSDFMAP.Handler 实现了 IDataFactoryHandler 接口。

重要

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

IDataFactoryHandler 接口

此接口有两种方法:GetRecordset重新连接。 这两种方法都需要将 CursorLocation 属性设置为 adUseClient

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

GetRecordset 方法

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

论点/争论

conn 连接字符串。

参数 处理程序的参数。

查询 用于进行查询的命令文本。

ppRS 应返回 Recordset 的指针。

重新连接方法

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

参数 / 论点 / 争论

conn 连接字符串。

参数 处理程序的参数。

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

另请参阅

自定义文件连接部分
自定义文件日志部分
自定义文件 SQL 节
自定义文件 用户列表 节
DataFactory 自定义
所需的客户端设置
了解自定义文件