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 集合的。