VB访问数据库之探析

时间:2022-09-19 12:34:15

VB访问数据库之探析

摘要:本文详细介绍了几种VisualBasic访问数据库的方法并对这些数据接口的性能进行了比较,提出相互的转化关系,以便于选取最佳方案。

关键词:Visual Basic 数据访问接口DAORDOADO

中图分类号:TP31文献标识码:A文章编号:1009-3044(2008)15-21008-02

Probe into Access to Database by VB

XIE Bing-ruo

(Sichuan Electromechanical Institute of Vocation and Technology, Panzhihua617000, China)

Abstract: In order to select the optimum project, this paper introduced several accesses to database by Visual Basic in detail, compared the performance of these data interfaces, and put forward the mutual conversion relation.

Key words: Visual Basic; Data Interface; DAO; RDO; ADO

1 VB访问数据库的原则

具体问题具体分析,根据具体的环境、条件、要求而采用适当的方案。

1.1 代码的重用和运行的效率

例如:通过使用ODBC数据源连接数据库的方法,可在变换多种数据库类型的情况下,而不用频繁修改代码。用VBSQL通过DB-Library就做不到。而ODBC接口并不是VB访问数据库运行效率最高的方法。同样,同是使用ODBC接口的ADO的效率要高于RDO。

1.2 实现的简便性,易维护性

如果一种方法实现起来很复杂,工程的开发必然造成人力物力的浪费,同时这样设计出来的应用程序只会支持起来更复杂或维护时更困难。例如:本地需要访问ISAM或Jet类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。RDC实现起来要较RDO更容易。

1.3 安全性原则

根据环境和条件决定。例如局域网的网络安全性要好于广域网因而可直接利用数据控件如DC,这样实现起来方便快捷,而广域网需要大量的错误捕获,如用RDC就不如用RDO易控制错误。

2 VB访问数据库的方法

VB访问数据库的方法很多,一般情况下,分成两大类,而每一类又有很多方法,下面的列表的方式列出每一类,及每一类包含的方法。

3 数据访问接口功能含义

(1)ADC:高级数据连接器(Adranced Data Connector):提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。

(2)ADO:Active数据对象(Active Data Objects):ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不只适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE-DB之上的技术,因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。

(3)DAO:数据访问对象(Data Access Objects):是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标( Cursor-Less)类型的结果集,同DDL (数据描述语言)的功能很类似。

DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成处理这样一个系统所需的全部操作的属性和方法,包括创建数据库、定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。

(4)JET:数据连接性引擎技术(Joint Engine Technology):是一种基于工作站通过DAO 的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。

(5)ODBC:开放式的数据库连接(0pen Database Connectivity):是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未作优化。

(6)ODBC Direct:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。

(7)OLE DB:是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C++的开发者开发定制的数据库组件。OLE DB不能被VB直接调用。

(8)RDC:远程数据访问控件(RemoteData Control):是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。

(9)RDO:远程数据对象( Remote Data Objects ) :远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具有描述数据序的各个部件特征的属性以及用来操作这些部件的方法。可以在对象和集合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。RDO是ODBC API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。

(10)VBSQL:是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-Library API相同。VBSQL只支持微软的SQLServer。VRSQL快而且轻但不支持对象界面。

4 性能比较及应用说明

用VB开发基于SQL Server的数据库系统,以上几种访问SQL Server的方法各有各的特点。DAO方法是基于对象的,因而便于使用,但是它是从Visual Basic到SQL Server 的最慢方式。0DBC API 和VBSQL方法从本质上讲是基于程序的。ODBCAPI方法通用性好,允许最强的互操作性,编程简单,但速度慢于VBSQL方法。VBSQL方法通过VBSQL控件,提供了重要的SQL Server前端应用程序所需的灵活性、强大功能和良好性能。它具有真正的事件驱动及错误处理能力,完全支持异步处理、游标和计算列等。这些都是VBSQL方法的优势,但其编程稍复杂。RDO是位于ODBC API之上的一个对象模型层,它依赖ODBC API 、ODBC驱动程序以及后端数据库引擎来实现,用RDO所需的程序短小(约250 KB)、快速。RDO具备基本的ODBC处理方法,可直接执行大多数ODBC API函数,RDO包含在VB 4.0/VB 5.0企业版中,由MSRDO 32.DLL动态连接库来实现。RDO是综合了DAO/Jet、VBSQL/DBLib和ODBC的优点的对象模型,包含ODBC API应用层,设计为在后台(服务器端)有数据库存在的前提下运行,是针对SQL Server和Oracle而特别设计的。RDO的优势在于它完全被集成在VB之中,可直接访问SQL在Server存储过程、完全支持T-SQL、T-SQL调试集成在开发环境中、Visual Database Tools的集成化等。但微软已宣布今后不再对VBSQL/DBLib进行升级,而ODBC API函数一般的编程方式也不为人们所喜爱,RDO的应用将逐渐减少。至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。

5 结束语

在数据访问接口中DAO最适用于单系统应用程序或小范围本地分布使用,而RDO已被证明是许多SQL Server、Oracle以及其它大型关系数据库开发者经常选用的最佳接口。ADO是DAO/RDO的后续产物。ADO2.0在功能上与RDO更相似,而且一般来说,在这2种模型之间有一种相似的映射关系。ADO“扩展”了DAO和RDO所使用的对象模型,这意味着它包含较少的对象,更多的属性、方法和参数,以及事件。

数据库接口中最新的是ADO,它是比RDO和DAO更加简单、更加灵活的对象模型。对于新工程,应该使用ADO作为数据访问接口。不过ADO并不是自动和现存的数据访问应用程序代码兼容的。当ADO封装DAO和RDO的功能性的时候,必须将许多语言要素转换为ADO语法。在某些情况下,这将意味着现存代码的某些功能的1个简单转换。在其它情况下,最佳的做法可能是用ADO的新功能重写该应用程序。同时要注意的是,ADO当前并不支持DAO的所有功能。ADO主要包括RDO风格的功能性,以便和OLE DB数据源交互,另外还包括远程和DHTML技术。

一般说来,在ADO的演化过程中,马上把大多数DAO应用程序移植到ADO上可能为时太早,因为当前的ADO并不支持数据定义(DDL)、用户、组等。不过,如果只将DAO用于容户/服务器应用程序,而并不依赖于Jet数据库引擎或不使用DDL,那么现在就可以移植到ADO。

参考文献:

[1] 宋琦凡,付敬平,使用Visual Basic开发数据库应用软件.北京:电子工业出版社,1996.

[2] 王道义、乔陶鹏等,Visual Basic使用详解[M].北京:机械工业出版社会性,1999.

[3] 孟小峰,开放数据库互连―ODBC2.0使用大全[M].北京:清华大学出版社,1995.

[4] 廖卫东,赵军Visual Basic编程手册[M].北京:机械工业出版社,1996.

[5] 刘云生,现代数据库技术[M].北京:国防工业出版社,2001.

上一篇:Excel2007 VBA文本格式处理编程一例 下一篇:电信用户呼叫行为的模糊聚类研究