使用远程数据对象编程

RDO 对象和集合提供了使用代码创建并控制远程 ODBC 数据库系统部件的框架。对象和集合的属性描述了数据库部件的特征,也描述了用来操纵它们的方法。在此总体框架下,可以在对象和集合之间建立联系,这些联系表示了数据库系统的逻辑结构。

图 11.1 RDO 2.0 对象模型

除了 rdoEngine 对象外,每个对象都保存在一个相关的集合中。在首次访问并初始化 RDO 时,RDO 自动创建一个 rdoEngine 和缺省的 rdoEnvironments(0) 的实例。

远程数据对象编程模式与数据访问对象 (DAO) 编程模式在许多方面很类似。但它的重点集中在处理存储过程及其结果集上,而不是仅用在 ISAM 编程模式的数据访问检索方法上。下表逐一描述了这些对象。

RDO 对象 描述
rdoEngine 基本对象。在应用程序第一次访问 RDO 时,自动创建。
rdoError 用于处理 RDO 所产生的所有的 ODBC 错误和消息,自动被创建。
rdoEnvironment 为特定的用户名定义了连接及事务作用域的一个逻辑集合。包括打开的和已分配的(但未打开)连接,提供了并发事务的机制,并且还为数据库的数据操作语言提供了安全的上下文。rdoEnvironments(0) 自动被创建。
rdoConnection 表示远程数据源和该数据源上特定的数据库之间的打开的一个连接,或者是一个已分配但仍未连接的对象,该对象可用于随后建立一个连接。
rdoTable 表示一个基本表或 SQL 视图的存储定义。
rdoResultset 表示运行一个查询所产生的数据行。
rdoColumn 表示具有公共数据类型和公共属性的一列数据。
rdoQuery 一个 SQL 查询定义,可以包括 0 个或多个参数。
rdoParameter 表示与 rdoQuery 对象关联的一个参数。查询参数可以是输入、输出或输入输出参数。

注意   真正的分布式事务仅能在支持 Distributed Transaction Coordinator (DTC) 的数据库管理系统中进行处理。目前只有 Microsoft SQL Server 6.5 支持这种功能。关于 DTC 的详细信息,请参阅本章的 “使用 rdoEnvironment 对象管理事务”。

注意   RDO 2.0 支持 RDO 1.0 的 rdoPreparedStatement 对象和 rdoPreparedStatements 集合,但仅仅是为了保持向后兼容。建议将原来的代码改写为使用 rdoQuery 对象及 rdoQueries 集合的。