口的体系结构进行了介绍,最后对这三种接口的技术进行了集中总结和比较。
关键词:DAORDOADO数据访问
0引言
数据库实质上是一个庞大的、不同类型的数据集合。早期的数据库系统不提供对外接口,仅可有特
定软件访问数据,随着计算机技术的发展和应用水平的提高,数据库系统逐渐发展、完善对外接口,
成为标准的应用支持平台。程序员再也不必自己编写数据管理程序,只需使用标准接口连接数据库即
可获得数据库系统的全部功能。而访问数据库是现代应用程序必备的基本功能之一,无论是数据库管
理系统,还是多媒体应用系统,都需要强大的数据库支持。VB为程序员提供了多种访问数据库的手段
,包括数据控件、DAO、RDO及ADO等。本文简单介绍DAO、RAO、ADO的体系结构,并对三者进行简单总
结和比较。
1DAO
1.1DAO概念数据访问对象DAO(DataAccessObjects)出自VB6.0提供的一个对象库,为处理数据提
供了完整、灵活的支持。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了管理关系型
数据库系统所需的全部操作的属性和方法,其中包括创建数据库,定义表、字段和索引,建立表间的
关系,定位和查询数据库等。在程序中使用它可以访问Access、FoxPro、dBase等数据库,某些条件下
也可以访问ODBC数据库。
1.2DAO层次结构DAO模型的体系结构如图1所示。DAO的结构严谨而丰富,正是这样的结构,提供了足
够丰富的访问数据库的方法。DAO是完全的面向对象的,它将数据的值作为属性,数据的查询作为方法
,数据值的变化作为事件。
1.3使用DAO使用DAO的步骤为:①创建工作区;②打开数据库;③创建记录集;④使用记录集访问数
据库;⑤关闭DAO。
2RDO
2.1RDO概念远程数据对象RDO(RemoteDataObjects)是位于ODBCAPI和驱动程序管理器之上的对
象模型,它提供一系列的对象来满足远程数据访问的特殊要求。尽管RDO在访问Jet数据库时受到限制
,只能通过现存的ODBC驱动程序来访问关系数据库,但它能访问任意的ODBC数据源,特别适用于智能
的数据库服务器(如SQLServer和Oracle等)。RDO具有短小快速的特性。
2.2RDO层次结构要正确地使用RDO,必须深入理解RDO对象模型。RDO对象和集合提供了使用代码创
建并控制远程ODBC数据库系统部件的框架。对象和集合的属性描述了数据库部件的特征,也描述了用
来操纵它们的方法。RDO对象模型的体系结构如图2所示。
2.3使用RDO使用RDO连接数据库的过程如下:①创建RDO环境;②连接数据库;③打开结果集;④操
作结果集;⑤关闭数据库。
3ADO
3.1ADO概念活动数据对象ADO(ActiveXDataObject)是Microsoft新的数据访问技术。该技术可屏
蔽远程数据访问的复杂性而高效、快速的访问多种数据库,是基于OLEDB之上的更简单、更高级、更
适合VisualBasic程序员,它封装并实际上实现了OLEDB的所有功能,同时消除了OLEDB的多种弊端
。
3.2ADO对象模型ADO模型包含一组对象,用于访问数据库。ADO对象模型体系结构如图3所示。
3.3使用ADOADO最基本的操作流程是:①初始化COM库,引入ADO库定义文件;②用Connection对象连
接数据库;③利用建立好的连接,通过Connection、Command对象执行命令,或是利用Recordset对象
取得结果记录集进行处理;④使用完后关闭连接释放对象。
4DAO、RDO、ADO的比较
DAO是Jet引擎的面向对象的编程接口,用于访问Jet或ISAM数据库,并允许VB开发者直接连接到Access
数据表。因此,DAO技术在访问MDB文件格式的数据库时有优势。但如果开发者想使用DAO与Oracle或
SQLServer这样的非MDB文件格式的数据库服务器进行通信,则对数据库的所有调用和数据输出都必
须经过Access/Jet数据库引擎,这对于使用数据库服务器的应用程序来说是一个严重的瓶颈。因此适
用于单系统应用程序或小范围本地分布使用。
RDO是是一个到ODBC的、面向对象的数据访问接口,是从DAO派生来的,适用于大型的客户、服务器数
据库。它兼具DAO和ODBCAPI二者的优点:一方面,它较DAO层次结构简单,便于对象的创建和处理;另
一方面,它表露了ODBC的底层结构,提供环境、连接和语句句柄。此外,RDO还提供了用来访问存储过
程和复杂结果的更多、更复杂的对象、属性和方法,因此,尽管它只能通过现存的ODBC驱动程序访问
关系数据库,并在访问Jet或ISAM数据库方面受到某些限制,但它在许多大型关系数据库应用程序开
发的仍被证明是一种比较好的选择。
ADO是一种新的数据库访问技术,是特别为客户/服务器应用程序开发而设计的。ADO是DAO和RDO的后继
产物,比DAO和RDO更简单、更加灵活。ADO在功能上与RDO更相似,而且它们之间有一种相似的映射关
系。ADO扩展了DAO和RDO所使用的对象模型,它包含较少的对象,更多的属性、方法和事件。
RDO使用行和列的概念,而DAO使用记录和字段的概念。RDO的查询结果以结果集的形式返回数据,结果
集可以包括零个或多个数据行,每行又可以包括一个或多个列。DAO需要使用游标访问数据,而RDO允
许创建无游标的结果集,所需的资源大大少于游标。DAO支持数据库模式的创建、修改、参照完整性和
安全性,而RDO不支持任何形式的参照完整性、安全性或模式修改。DAO对象模型主要用于Jet引擎,
RDO对象模型主要用于ODBC数据访问,而ADO对象模型主要用于OLEDB。Jet和ODBC主要是针对数据库访
问,而OLEDB对许多不同的数据源提供多机种环境的数据访问。Microsoft公司已将ADO作为数据存取
API的未来选择;VBScript以使用ADO,这使它很适合服务器/数据库的整合。因此,ADO是客户/服务器
和基于Web的应用程序开发的首选。随着数据库访问技术的不断发展,ADO将成为数据库访问技术的主
流。
参考文献:
[1]求是科技.VisualBasic6.0数据库开发技术与工程实践[M].北京:人民邮电出版社.2004:121~156.
[2]夏庆梅熊华钢:VB访问SQLServer的三种数据访问接口的研究[J].计算机应用研究2001.18
(12).44~47.
[3]李罡,张翠频,李雷.VisualBasic6.0编程基础与范例[M].北京:电子工业出版社,2000,325~
348.
[4]高峰霞,廖彬山.VisualBasic6.0中文提高与应用[M].北京:电子工业出版社.1999:255~261.