RDS 编程模型的详细信息
以下是 RDS 编程模型的关键元素:
RDS.DataSpace
RDSServer.DataFactory
RDS.DataControl
事件
重要
从 Windows 8 和 Windows Server 2012 开始,Windows 操作系统不再包含 RDS 服务器组件(有关更多详细信息,请参阅 Windows 8 和 Windows Server 2012 兼容性实用手册)。 Windows 的未来版本中将移除 RDS 客户端组件。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 使用 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.DataSpace 和 RDSServer.DataFactory 功能的方法,并且还使视觉控件能够轻松使由查询从数据源返回的 Recordset 对象。 对于最常见的情况,RDS 尝试尽可能多地自动访问服务器上的信息并将其显示在视觉控件中。
RDS 对象模型通过 RDS.DataControl 对象体现了此功能。
RDS.DataControl 具有两个方面。 一个方面与数据源相关。 如果使用 RDS.DataControl 的 Connect 和 SQL 属性设置命令和连接信息,它将自动使用 RDS.DataSpace 创建对默认 RDSServer.DataFactory 对象的引用。 然后 RDSServer.DataFactory 将使用 Connect 属性值连接到数据源,使用 SQL 属性值从数据源获取 Recordset,并将 Recordset 对象返回到 RDS.DataControl。
第二个方面与视觉控件中返回的 Recordset 信息的显示相关。 可以将视觉控件与 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 使用情况和安全性