数据库访问技术在VB中的应用

[摘 要] 对VB中数据库访问技术进行了介绍,并且讨论了VB应用程序开发中最常用的三种数据访问接口的体系结构、性能特点,最后对这三种接口的技术进行集中总结,给出了它们各自的适用场所。

[关键词] 数据库访问 数据访问接口 ODBC DAO RDO OLE DB ADO

当今,数据库技术和网络技术是计算机技术领域中两大主题。目前比较常用的数据库编程开发工具主要有:Delphi、PowerBuilder、Visual Basic、Visual C++、Borland C++等。本文阐述了最常用的三种数据访问接口的对象模型及其原理特性,分析总结出它们各自适用场合。

一、三种数据访问接口技术的体系结构及性能特点

数据库访问技术处在不断进步中,DAO、RDO和ADO代表了该项技术发展的不同阶段。尽管VB中提供了直接与ODBC或OLE DB交互访问数据库的方法,但由于其属于底层接口,编程复杂,通常较少使用,大部分VB应用程序更常更多使用DAO、RDO和ADO,下面本文对这三种数据访问接口做进一步的讨论。

1.DAO(Data Access Objects,数据访问对象)体系结构及性能特点

DAO的体系结构:DAO是使用分层的对象框架实现的,DBEngine是DAO对象的顶层,它表示Microsoft Jet Database Engine。每个应用程序只能创建一个 DBEngine对象,所有其他DAO对象都含在DBEngine对象内。Workspace和 Errors是DAO框架的第二层。每个Workspace对象代表一个数据会话,用于控制数据库的登录安全性和事务范围。每个Workspace对象包含一组Database对象。Database对象是DAO的中心对象。每个Database对象表示一个本地或远程数据库。当Jet引擎打开本地或远程数据库时,一个Database对象就增加到该Database 集合中。Database对象包含其他主要的DAO对象集合。其中TableDef、Recordset、QueryDef对象集合用于访问SQLServer数据库,而Relations和Containers用于本地Jet引擎数据库。

DAO的性能特点:DAO是第一个面向对象的数据库访问编程接口,是VB默认的数据库访问方式。这种结构的好处是:同一代码能支持所有格式——不管它是ISMA还是ODBC数据源。

2.RDO(Remote Data Objects,远程数据对象)体系结构及性能特点

RDO的体系结构:RDO 是一种对象框架和对象集合,RDO的对象层次与ODBC 的对象层次非常相似,RDO对象模型完全并行于ODBC的体系结构。在RDO对象框架的顶层是rdoEngine,rdoEngine表示远程数据源。所有的RDO应用程序都必须有一个rdoEngine对象的实例,rdoEngine对象是惟一的,它总是作为一个对象集合,所有其他对象都包含在集合中。rdoEnvironment在rdoEngine的下一层,主要用于设置某个给定数据库连接将要使用的用户ID和口令值及事务范围。rdoEnvironment对象的下一层是 rdoConnection对象,它负责创建对数据源的连接。它通过使用OpenConnection启动一个主连接。每个rdoConnection对象可以有rdoTable 、rdoResultset和rdoPreparedStatement对象集合。每个rdoTable对象表示一个数据库表,每个rdoPreparedStatement对象表示一个预准备的SQL 语句,每个rdoResultset对象表示由一个由SQL Select语句返回的数据集;这些对象都可以包含rdoColumn对象。使用rdoParameter对象在本地程序变量和参数化查询或存储过程之间交换数据。rdoError对象包含任何由基本的ODBC操作生成的错误在VB的On Error句柄中,可以从rdoErrors集合中检索指定的错误信息。

RDO的性能特点:RDO是VB与ODBC连接的推荐模式,是一个直接与 ODBC API连接的面向对象接口,但仍需使用Jet引擎。从RDO的层次模型可以看出,RDO兼具了ODBC API 与DAO二者的优点:一方面它的层次结构没有DAO复杂,对象的创建和处理简单;另一方面,RDO仍表露了ODBC API 的基层结构,可提供环境、连接和语句句柄。值得注意的是:RDO不能直接执行改变数据库规划的操作,且仅能应用于32 的操作系统中。使用 RDO的应用程序可以绕过本地查询处理程序而直接访问ODBC数据源,这点与 DAO 不同,由于这一特点,RDO特别适合客户/服务器应用程序的开发。如果你考虑采用一种直接与ODBC API一起使用的编程方法,那么,RDO是一种合适的解决方案。

3.ADO(ActiveX Data Objects,ActiveX 数据对象)体系结构及性能特点

ADO的体系结构:ADO是使用层次对象框架实现的,但比DAO和RDO对象模型框架更简单。在ADO对象模型中,Connecton,Recordset和Command对象是三个主要的对象。Connecton对象表示对远程数据源的连接。除了创建数据源的 连接外,Connecton还可以用来控制事务范围。Connecton对象可与Recordset对象或Command对象关联。Recordset对象表示从数据源返回的结果集。它可以使用一个打开的Connecton对象,也可以创建自己对目标数据源的连接;Recordset 对象允许查询和修改数据。每个Recordset对象包含一个Field对象集。Command 对象用来执行命令和参数化的SQL语句,可用于SQL语句和返回结果集的SQL 查询。Command对象也可以使用一个打开的Connecton对象或创建自己对目标数据源的连接。

ADO的性能特点:ADO是DAO/RDO的后继产物,集中了DAO和RDO的优点。从ADO对象的层次模型看出,它包更少的对象、更多的属性、方法、参数及事件。包含在DAO和RDO模型中的许多功能在ADO中被合并成单个对象,这样就生成了一个简单得多的对象模型。ADO是一种基于OLE DB的面向对象高层数据库访问接口,是VB的最新数据库访问技术。ADO封装了OLE DB并实现了OLE DB 的所有功能,它在继承了LE DB优点的同时,大大减化了OLE DB的操作。ADO支持建立客户/服务器和基于Web的应用程序的关键功能,给出了单一或多客户/服务器和Web数据开发的解决方案。正因为ADO具有上述这些技术优势,所以它的应用前景十分看好。

二、三种VB数据库访问技术比较及其适用场合

DAO是第一个面向对象编程接口,它显露了Microsoft Access/Jet 数据库引擎,并允许VB开发者直接连接到Access数据表。因此,DAO技术在访问MDB文件格式的数据库时有优势。但如果开发者想使用DAO与Oracle或SQL Server这样的非MDB 文件格式的数据库服务器进行通信,则对数据库的所有调用和数据输出都必须经过Access/Jet数据库引擎,这对于使用数据库服务器的应用程序来说是一个严重的瓶颈。 因此,DAO最适用于单系统应用程序或小范围本地分布使用。

RDO是一个到ODBC的、面向对象的数据访问接口。它与 DAO Style组合起来,形式上展示出所有ODBC的底层功能和灵活性,提供了对ODBC数据源更直接的访问方式。它兼具 DAO和ODBC API二者的优点:一方面,它较DAO层次结构简单,便于对象的创建和处理;另一方面,它表露了ODBC的底层结构,提供环境、连接和语句句柄。此外,RDO还提供了用来访问存储过程和复杂结果的更多、更复杂的对象、属性和方法,因此,尽管它只能通过现存的ODBC驱动程序访问关系数据库,并在访问Jet或ISAM数据库方面受到某些限制, 但它在许多大型关系数据库应用程序开发的仍被证明是一种比较好的选择。

ADO是一种新的数据库访问技术,是特别为客户/服务器应用程序开发而设计的。作为DAO和RDO的后继者,它提供了类似DAO和RDO的功能,主要包括RDO风格的功能性。然而,ADO 更加灵活的对象模型允许其有效地用于各种各样的应用程序。DAO对象模型主要用于Jet引擎,RDO对象模型主要用于ODBC数据访问,而ADO对象模型主要用于OLE DB。Jet和ODBC主要是针对数据库访问,而OLE DB对许多不同的数据源提供多机种环境的数据访问。Microsoft公司已将 ADO作为数据存取API的未来选择;VBScript以使用ADO,这使它很适合服务器/数据库的整合。因此,ADO是客户/服务器和基于Web的应用程序开发的首选。随着数据库访问技术的不断发展,ADO将成为数据库访问技术的主流。

参考文献:

[1]郑 沫:Microsoft SQL Server 7.0开发实例精解[M].北京:北京希望电子出版社,2000

[2]张宏民:Visual Basic 6.0编程实例精解[M].北京:北京希望电子出版社,2000

[3]夏庆梅 熊华钢:VB访问SQL Server的三种数据访问接口的研究[J].计算机应用研究 2001,18(12),44~47

推荐访问:数据库 访问 技术 VB