Microsoft OLE DB 远程处理提供程序概述

Microsoft OLE DB 远程处理提供程序使客户端计算机上的本地用户能够在远程计算机上调用数据提供程序。 请像远程计算机上的本地用户一样,指定远程计算机的数据提供程序参数。 然后指定远程处理提供程序用于访问远程计算机的参数。 然后,可以像本地用户一样访问远程计算机。

重要

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

提供者关键字

若要调用 OLE DB 远程处理提供程序,请在连接字符串中指定以下关键字和值。 (请注意提供程序名称中的空白。

"Provider=MS Remote"

其他关键字

调用此服务提供商时,以下附加关键字是相关的。

关键词 描述
数据源 指定远程数据源的名称。 它传递给 OLE DB 远程处理提供程序进行处理。

此关键字等效于 RDS.DataControl 对象的 Connect 属性。

动态属性

调用此服务提供程序时,以下动态属性将添加到 Connection 对象的 Properties 集合中。

动态属性名称 描述
DFMode 指示 DataFactory 模式。 一个字符串,指定服务器上的 DataFactory 对象的所需版本。 在打开连接以请求特定版本的 DataFactory之前设置此属性。 如果请求的版本不可用,将尝试使用上述版本。 如果没有上述版本,将发生错误。 如果 DFMode 小于可用版本,则会发生错误。 建立连接后,此属性为只读。

可以是以下有效字符串值之一:

- “25”-版本 2.5 (默认)
- “21”-版本 2.1
- “20”-版本 2.0
- “15”-版本 1.5
命令属性 指示值会被添加到由 MS Remote 提供程序发送给服务器的命令属性字符串(行集)中。 此字符串的默认值为vt_empty。
当前 DFMode 指示服务器上的 DataFactory 的实际版本号。 检查此属性以查看 DFMode 属性中请求的版本是否已经被满足。

可以是以下有效的 Long 整数值之一:

- 25-版本 2.5 (默认)
- 21-版本 2.1
- 20 - 版本 2.0
- 15-版本 1.5

使用 MSRemote 提供程序时,将“DFMode=20;”添加到连接字符串可以提高更新数据时服务器的性能。 通过此设置,服务器上的 RDSServer.DataFactory 对象使用资源密集型较少的模式。 但是,此配置中不提供以下功能:

- 使用参数化查询。
- 在调用 Execute 方法之前获取参数或列信息。
- 将 事务处理更新 设置为 True
- 获取行状态。
- 调用 Resync 方法。
- 通过 Update Resync 属性刷新(显式或自动)。
- 设置 命令Recordset 属性。
- 使用 adCmdTableDirect
处理程序 指示服务器端自定义程序(或处理程序)的名称,用于扩展 RDSServer.DataFactory的功能,以及处理程序使用的任何参数(全部用逗号(“,”)分隔)。 字符串 值。
Internet 超时 指示等待请求往返服务器的最大毫秒数。 (默认值为 5 分钟。
远程提供程序 指示远程服务器上要使用的数据提供程序的名称。
远程服务器 指示此连接要使用的服务器名称和通信协议。 此属性等效于 RDS.DataControl 对象 Server 属性。
交易更新 如果设置为 True,则此值指示当在服务器上执行 UpdateBatch 时,它将在事务内完成。 此布尔动态属性的默认值 False

还可以通过将可写动态属性的名称指定为连接字符串中的关键字来设置可写动态属性。 例如,通过指定将 Internet Timeout 动态属性设置为 5 秒:

Dim cn as New ADODB.Connection
cn.Open "Provider=MS Remote;Internet Timeout=5000"

还可以通过将动态属性的名称指定为 属性 属性的索引来设置或检索动态属性。 以下示例演示如何获取和打印 Internet Timeout 动态属性的当前值,然后设置一个新值:

Debug.Print cn.Properties("Internet Timeout")
cn.Properties("Internet Timeout") = 5000

言论

在 ADO 2.0 中,OLE DB 远程处理提供程序只能在 Recordset 对象的 Open 方法的 ActiveConnection 参数中指定。 从 ADO 2.1 开始,还可以在 ConnectionString 参数中指定提供程序,该参数属于 Connection 对象的 Open 方法。

RDS.DataControl 对象的 SQL 属性的等效项不可用。 改用 Recordset 对象 Open 方法 Source 参数。

注释 指定“...;Remote Provider=MS Remote;...”将创建四层方案。 超出三个层的方案尚未测试,因此不需要。

本示例在名为 YourServer的服务器上对 Pubs 数据库中的 Authors 表执行查询。 远程数据源和远程服务器的名称在 Connection 对象的 Open 方法中提供,SQL 查询是在 Recordset 对象的 Open 方法中指定的。 返回了 Recordset 对象,对其进行了编辑,并用于更新数据源。

Dim rs as New ADODB.Recordset
Dim cn as New ADODB.Connection
cn.Open  "Provider=MS Remote;Data Source=pubs;" & _
         "Remote Server=https://YourServer"
rs.Open "SELECT * FROM authors", cn
...                'Edit the recordset
rs.UpdateBatch     'Equivalent of RDS SubmitChanges
...

另请参阅

OLE DB 远程处理提供程序 概述