RDS 编程模型的详细信息

以下是 RDS 编程模型的关键元素:

  • RDS.DataSpace

  • RDSServer.DataFactory

  • RDS.DataControl

  • 事件

重要

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

RDS DataSpace

客户端应用程序必须指定要调用的服务器和服务器程序。 返回时,应用程序会收到对服务器程序的引用,并且可以将引用视为服务器程序本身。

RDS 对象模型通过 RDS.DataSpace 对象来体现这一功能。

服务器程序使用程序标识符指定,或 ProgID。 服务器使用 ProgID 和服务器计算机的注册表来查找有关要启动的实际程序的信息。

RDS 在内部进行区分,具体取决于服务器程序是否位于通过 Internet 或 Intranet 连接的远程服务器上;是否位于局域网内的服务器上;或者是否根本不在任何服务器上,而是在本地的动态链接库(DLL)上。 此区别决定了如何在客户端和服务器之间交换信息,并在返回到客户端应用程序的引用类型方面产生明显差异。 但是,从你的角度来看,这种区别没有特殊意义。 重要的是你会收到一个可用程序引用。

RDSServer.DataFactory

RDS 提供一个默认服务器程序,它可以对数据源执行 SQL 查询,并返回 Recordset 对象,或获取 Recordset 对象并更新数据源。

RDS 对象模型通过 RDSServer.DataFactory 对象来体现此功能。

此外,此对象还有一个方法可用于创建一个空的 Recordset 对象,该对象可通过编程方式填充(CreateRecordset),另一种方法用于将 Recordset 对象转换为文本字符串以生成网页(ConvertToString)。

使用 ADO,可以使用 DataFactory 处理程序和包含连接、命令和安全参数的自定义文件替代 RDSServer.DataFactory 的某些标准连接和命令行为。

服务器程序有时称为 业务对象。 可以编写自己的自定义业务对象,该对象可执行复杂的数据访问、有效性检查等。 即使编写自定义业务对象,也可以创建 RDSServer.DataFactory 对象的实例,并使用其某些方法来完成自己的任务。

RDS·DataControl

RDS 提供了一种将 RDS.DataSpaceRDSServer.DataFactory功能结合起来的方法,同时使视觉控件能够轻松使用从数据源查询返回的 Recordset 对象。 RDS 在最常见的情况下,尽可能自动获取服务器上的信息并在可视化控件中显示。

RDS 对象模型通过 RDS.DataControl 对象来体现此功能。

RDS.DataControl 具有两个特性。 一个方面与数据源有关。 如果使用 ConnectSQL 属性设置 RDS.DataControl的命令和连接信息,它将自动使用 RDS.DataSpace 创建对默认 RDSServer.DataFactory 对象的引用。 然后,RDSServer.DataFactory 将使用 Connect 属性值连接到数据源,使用 SQL 属性值从数据源获取 Recordset,并将 Recordset 对象返回到 RDS。DataControl

第二个方面涉及在视觉控件中显示返回的 记录集 信息。 可以将可视控件与 RDS.DataControl 关联(此过程称为绑定),以访问关联的 Recordset 对象中的信息,并在 Microsoft Internet Explorer 的网页上显示查询结果。 每个 RDS。DataControl 对象将一个 Recordset 对象(表示单个查询的结果)绑定到一个或多个视觉控件(例如文本框、组合框、网格控件等)。 每个页面上可能有多个 RDS.DataControl 对象。 每个 RDS。DataControl 对象可以连接到其他数据源,并包含单独查询的结果。

RDS.DataControl 对象还具有自己的方法来导航、排序和筛选关联的 Recordset 对象的行。 这些方法类似,但与 ADO Recordset 对象上的方法不同。

事件

RDS 支持两个自己的事件,这些事件独立于 ADO 事件模型。 每当 RDS.DataControl的 ReadyState 属性发生变化时,就会调用 onReadyStateChange 事件,从而在异步操作成功完成、终止或遇到错误时通知你。 onError 事件在每当发生错误时被调用,即使错误发生在异步操作期间也是如此。

注意

Microsoft Internet Explorer 为 RDS 提供了另外两个事件:onDataSetChanged,该事件指示 Recordset 正常运行,但仍正在检索行,onDataSetComplete,这表示 Recordset 已完成检索行。

另请参阅

RDS 编程模型 使用对象
DataControl 对象(RDS)
DataFactory 对象 (RDSServer)
DataSpace 对象 (RDS)
RDS 方案
RDS 教程
RDS 使用情况和安全性