论文部分内容阅读
摘 要:Visual Basic 作为一种流行的编程软件,凭其简单易学得到初学者的青睐并被广泛应用。VB主要提供了三种数据访问技术,包括 DAO数据访问模式、远程数据对象RDO模式以及基于开放式数据源 ODBC的ADO数据访问技术,本文通过对以上几种数据库访问技术的分析比较,提出ADO技术的优势。
关键词:VB DAO RDO ADO
中图分类号:TP311.13 文献标识码:A 文章编号:1673-8454(2009)13-0083-02
Visual Basic(简称VB)是微软公司推出的可视化编程工具之一,是目前世界上使用比较广泛的RAD(Rapid Application Develop)工具。VB在数据库应用开发方面的能力十分强大,并且微软还设计了多种数据访问的方法。数据访问是通过数据访问接口实现的,数据访问接口是数据提供方和使用方的中介,没有合适的数据访问接口,就无法进入数据库。VB访问数据库的方法很多,本文重点介绍DAO,RDO和ADO这三种常见的数据库访问的方法。
一、VB中数据的访问技术简介
1.DAO(Data Access Objects) 数据访问对象
DAO是允许程序员操作Microsoft Jet数据库引擎的第一个面向对象的接口,最初是为了实现对ACCESS 数据库的访问而开发的程序接口。它采用层次结构,提供了丰富的数据对象,通过DAO/Jet功能可以访问ISAM(顺序索引查找方法)数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能,DAO可通过ODBC像直接连接到其他数据库一样,直接连接到Access数据库,但DAO不能触发事件。
DAO提供了管理系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。在操作中VB把DAO模型封装成Data控件,通过设置相应的DatabaseName属性和RecordSource属性就可以将Data控件与数据库中的记录源连接起来了,这样就可以使用Data控件来对数据库进行操作。DAO最适用于单系统应用程序或在小范围本地分布使用,所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式。
2.RDO(Remote Data Objects) 远程数据对象
RDO是一个到ODBC的、面向对象的数据访问接口。它依赖 ODBC API、选定的 ODBC 驱动程序以及后端数据库引擎实现大部分的智能和功能。它具备DAO的基本功能,保持了DAO的简单特点,是专为访问远程ODBC关系数据源而设计的。它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
VB从5.0版本开始使用RDO接口访问远程数据库,和DAO一样,在VB中也把其封装为RDO控件,其使用方法与DAO控件的使用方法完全一样。虽然DAO也可以访问远程数据库,而且可以通过使用ODBC Drivers 代替DAO/jet 显著提高数据访问速度,但是,在使用ODBC Drivers时,将无法使用某些 Microsoft Jet数据库的功能,因此,从VB5.0开始,大多使用RDO访问远程数据库。RDO适合开发一些大的关系数据库,如SQL Server、Oracle等,特别适用于用户/服务器应用程序的开发。
3.ADO(ActiveX Data Object)Active数据对象
ADO是DAO和RDO的后继产物,它设计为一种极简单的格式,即通过ODBC的方法同数据库接口,可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件,是一个便于使用的应用程序层接口。ADO是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,OLE DB是新的底层接口,程序中使用了大量的COM接口,而ADO封装了这些接口,时下流行的快速应用程序开发工具、数据库工具、应用程序开发环境和脚本语言都可以访问这种接口。
从VB6.0开始使用ADO进行数据访问,ADO是基于面向对象模型的访问技术,用它产生的应用程序占用内存少,目前已经成为当前数据库开发的主流。它适合于各种客户/服务器应用系统和基于 Web 的应用系统中,尤其在一些脚本语言中访问数据库操作是ADO的主要优势。由于ADO 的设计综合了RDO和DAO的最佳性能,它的语法简单,非常易于学习,因此,ADO正在逐渐代替DAO与RDO的数据访问接口。
二、数据库访问技术对比分析
DAO是用来实现访问Access数据库的Jet引擎接口,其操作是针对记录和字段,它对于单一的数据库应用系统非常有效;RDO是用来访问ODBC面向对象的接口,其操作针对行和列,主要用于开发大型关系数据库应用程序;ADO访问数据库是通过访问OLE DB数据并提供程序来进行的,能够处理任何类型的数据,是一种通用的数据访问范例。
1.数据库对象模型的差异
DAO 模型是设计关系数据库系统结构的对象类的集合,是一种Jet数据库引擎的面向对象的接口。Microsoft DAO Jet 数据库中包括有DB Engine对象、Workspace对象、Database对象等,最顶层的对象是 DB Engine对象,模型中其他对象都是DBEngine 对象的“子”对象。RDO 模型与DAO模型很相似,最明显的区别是RDO对象模型中包括有RDO Engine对象、RDO Environment对象、RDO Connection对象等14 个可供使用的主要对象。
ADO模型可以看作是RDO模型的精华版,它扩展了DAO和RDO所使用的对象模型,它包含较少的对象、更多的属性方法参数以及事件。模型中只有3个对象成员Connection、Command、Recordset,以及几个集合对象Error、Parameter、Field和Property等。
2.访问数据库方式的不同
DAO 技术主要实现对ISAM类型数据库的访问,如对Foxpro、Access、DBase等数据库的访问,并允许Visual Basic开发者通过ODBC直接连接到Access表,这是一种最为简便的访问已有数据库的方法,在VB 6.0中实现得非常巧妙。DAO Jet服务的另一个优势就是它包含了自己的查询引擎,即不需要远程的或基于服务器的数据库系统(如SQL Server或Oracle)的支持就能完成数据请求。如果程序需要在单机环境下运行,DAO Jet数据服务是最好的选择。
ADO技术基于通用对象模型(COM),它提供了多种语言的访问技术,同时,由于ADO提供了访问自动化接口,所以,ADO可以用描述的脚本语言来访问VBScript,VCScript等。
DAO、RDO、ADO数据访问技术的区别如表1所示。
三、VB访问数据库的原则
在数据访问接口中三种访问技术各有各的特点,至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。要做到具体问题具体分析,根据具体的环境、条件、要求而采用适当的方案,应用中注意以下几个原则:
1.代码的重用和运行的效率
比如通过使用ODBC数据源连接数据库的方法,可在变换多种数据库类型的情况下,不用频繁修改代码。而用VB SQL通过DB-Library就做不到。当然ODBC接口并不是VB访问数据库运行效率最高的方法。
2.实现的简便性,易维护性
如果数据量不大,而且要求开发周期短的情况,建议使用DAO Access,虽然DAO功能并不强大,但是它对Jet引擎进行了加速优化处理,所以这种搭配应该是比较好的选择。如果我们设计的方法复杂,那么设计出来的应用程序也会很复杂,维护时就很困难。比如:本地需要访问ISAM 或Jet 类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。
3.安全性原则
这一条应根据环境和条件决定。例如局域网的网络安全性要好于广域网,因而可直接利用数据控件如RDC,这样实现起来方便快捷,广域网需要大量的错误捕获,用RDC就不如用RDO易控制错误。
四、结束语
由于OLE DB的ADO对象模型具有简单性、可扩充性、数据访问的一致性等优点,它正在逐步代替老的DAO和RDO数据访问接口,成为新的标准数据访问接口,其应用必将越来越广。但是ADO并不支持DAO的所有功能,在ADO的演化过程中,马上把大多数DAO应用程序移植到ADO上可能为时太早,例如当前的ADO并不支持数据定义(DDL)、用户、组等。微软的新名词层出不穷,最新又推出了UDA,随着网络技术和数据库技术的不断发展,现在的应用系统对数据集成的要求越来越高,我们要灵活掌握各种数据库访问技术,更好地完成数据库的开发。
参考文献:
[1]姚小兵.VB中ADO技术的应用[J].电脑与信息技术,2005,13(4):22-24.
[2]杜玲玲,罗红星.VB下利用ADO实现对SQL Server的访问[J].江西电力职业技术学院学报,2005,18(2):39-41.
[3]李林等.Visual Basic程序设计[M].北京:地质出版社,2006.
关键词:VB DAO RDO ADO
中图分类号:TP311.13 文献标识码:A 文章编号:1673-8454(2009)13-0083-02
Visual Basic(简称VB)是微软公司推出的可视化编程工具之一,是目前世界上使用比较广泛的RAD(Rapid Application Develop)工具。VB在数据库应用开发方面的能力十分强大,并且微软还设计了多种数据访问的方法。数据访问是通过数据访问接口实现的,数据访问接口是数据提供方和使用方的中介,没有合适的数据访问接口,就无法进入数据库。VB访问数据库的方法很多,本文重点介绍DAO,RDO和ADO这三种常见的数据库访问的方法。
一、VB中数据的访问技术简介
1.DAO(Data Access Objects) 数据访问对象
DAO是允许程序员操作Microsoft Jet数据库引擎的第一个面向对象的接口,最初是为了实现对ACCESS 数据库的访问而开发的程序接口。它采用层次结构,提供了丰富的数据对象,通过DAO/Jet功能可以访问ISAM(顺序索引查找方法)数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能,DAO可通过ODBC像直接连接到其他数据库一样,直接连接到Access数据库,但DAO不能触发事件。
DAO提供了管理系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表间的关系,定位和查询数据库等工具。在操作中VB把DAO模型封装成Data控件,通过设置相应的DatabaseName属性和RecordSource属性就可以将Data控件与数据库中的记录源连接起来了,这样就可以使用Data控件来对数据库进行操作。DAO最适用于单系统应用程序或在小范围本地分布使用,所以如果数据库是Access数据库且是本地使用的话,建议使用这种访问方式。
2.RDO(Remote Data Objects) 远程数据对象
RDO是一个到ODBC的、面向对象的数据访问接口。它依赖 ODBC API、选定的 ODBC 驱动程序以及后端数据库引擎实现大部分的智能和功能。它具备DAO的基本功能,保持了DAO的简单特点,是专为访问远程ODBC关系数据源而设计的。它同易于使用的DAO style组合在一起,提供了一个接口,形式上展示出所有ODBC的底层功能和灵活性。尽管RDO在很好地访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性,以及方法。
VB从5.0版本开始使用RDO接口访问远程数据库,和DAO一样,在VB中也把其封装为RDO控件,其使用方法与DAO控件的使用方法完全一样。虽然DAO也可以访问远程数据库,而且可以通过使用ODBC Drivers 代替DAO/jet 显著提高数据访问速度,但是,在使用ODBC Drivers时,将无法使用某些 Microsoft Jet数据库的功能,因此,从VB5.0开始,大多使用RDO访问远程数据库。RDO适合开发一些大的关系数据库,如SQL Server、Oracle等,特别适用于用户/服务器应用程序的开发。
3.ADO(ActiveX Data Object)Active数据对象
ADO是DAO和RDO的后继产物,它设计为一种极简单的格式,即通过ODBC的方法同数据库接口,可以使用任何一种ODBC数据源,即不止适合于SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件,是一个便于使用的应用程序层接口。ADO是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,OLE DB是新的底层接口,程序中使用了大量的COM接口,而ADO封装了这些接口,时下流行的快速应用程序开发工具、数据库工具、应用程序开发环境和脚本语言都可以访问这种接口。
从VB6.0开始使用ADO进行数据访问,ADO是基于面向对象模型的访问技术,用它产生的应用程序占用内存少,目前已经成为当前数据库开发的主流。它适合于各种客户/服务器应用系统和基于 Web 的应用系统中,尤其在一些脚本语言中访问数据库操作是ADO的主要优势。由于ADO 的设计综合了RDO和DAO的最佳性能,它的语法简单,非常易于学习,因此,ADO正在逐渐代替DAO与RDO的数据访问接口。
二、数据库访问技术对比分析
DAO是用来实现访问Access数据库的Jet引擎接口,其操作是针对记录和字段,它对于单一的数据库应用系统非常有效;RDO是用来访问ODBC面向对象的接口,其操作针对行和列,主要用于开发大型关系数据库应用程序;ADO访问数据库是通过访问OLE DB数据并提供程序来进行的,能够处理任何类型的数据,是一种通用的数据访问范例。
1.数据库对象模型的差异
DAO 模型是设计关系数据库系统结构的对象类的集合,是一种Jet数据库引擎的面向对象的接口。Microsoft DAO Jet 数据库中包括有DB Engine对象、Workspace对象、Database对象等,最顶层的对象是 DB Engine对象,模型中其他对象都是DBEngine 对象的“子”对象。RDO 模型与DAO模型很相似,最明显的区别是RDO对象模型中包括有RDO Engine对象、RDO Environment对象、RDO Connection对象等14 个可供使用的主要对象。
ADO模型可以看作是RDO模型的精华版,它扩展了DAO和RDO所使用的对象模型,它包含较少的对象、更多的属性方法参数以及事件。模型中只有3个对象成员Connection、Command、Recordset,以及几个集合对象Error、Parameter、Field和Property等。
2.访问数据库方式的不同
DAO 技术主要实现对ISAM类型数据库的访问,如对Foxpro、Access、DBase等数据库的访问,并允许Visual Basic开发者通过ODBC直接连接到Access表,这是一种最为简便的访问已有数据库的方法,在VB 6.0中实现得非常巧妙。DAO Jet服务的另一个优势就是它包含了自己的查询引擎,即不需要远程的或基于服务器的数据库系统(如SQL Server或Oracle)的支持就能完成数据请求。如果程序需要在单机环境下运行,DAO Jet数据服务是最好的选择。
ADO技术基于通用对象模型(COM),它提供了多种语言的访问技术,同时,由于ADO提供了访问自动化接口,所以,ADO可以用描述的脚本语言来访问VBScript,VCScript等。
DAO、RDO、ADO数据访问技术的区别如表1所示。
三、VB访问数据库的原则
在数据访问接口中三种访问技术各有各的特点,至于实际使用哪一种接口方式,在很大程度上依赖于用户的应用程序的具体情况而定。要做到具体问题具体分析,根据具体的环境、条件、要求而采用适当的方案,应用中注意以下几个原则:
1.代码的重用和运行的效率
比如通过使用ODBC数据源连接数据库的方法,可在变换多种数据库类型的情况下,不用频繁修改代码。而用VB SQL通过DB-Library就做不到。当然ODBC接口并不是VB访问数据库运行效率最高的方法。
2.实现的简便性,易维护性
如果数据量不大,而且要求开发周期短的情况,建议使用DAO Access,虽然DAO功能并不强大,但是它对Jet引擎进行了加速优化处理,所以这种搭配应该是比较好的选择。如果我们设计的方法复杂,那么设计出来的应用程序也会很复杂,维护时就很困难。比如:本地需要访问ISAM 或Jet 类型数据源,那么就使用DAO/Jet,而没有必要使用通过ODBC的方法。
3.安全性原则
这一条应根据环境和条件决定。例如局域网的网络安全性要好于广域网,因而可直接利用数据控件如RDC,这样实现起来方便快捷,广域网需要大量的错误捕获,用RDC就不如用RDO易控制错误。
四、结束语
由于OLE DB的ADO对象模型具有简单性、可扩充性、数据访问的一致性等优点,它正在逐步代替老的DAO和RDO数据访问接口,成为新的标准数据访问接口,其应用必将越来越广。但是ADO并不支持DAO的所有功能,在ADO的演化过程中,马上把大多数DAO应用程序移植到ADO上可能为时太早,例如当前的ADO并不支持数据定义(DDL)、用户、组等。微软的新名词层出不穷,最新又推出了UDA,随着网络技术和数据库技术的不断发展,现在的应用系统对数据集成的要求越来越高,我们要灵活掌握各种数据库访问技术,更好地完成数据库的开发。
参考文献:
[1]姚小兵.VB中ADO技术的应用[J].电脑与信息技术,2005,13(4):22-24.
[2]杜玲玲,罗红星.VB下利用ADO实现对SQL Server的访问[J].江西电力职业技术学院学报,2005,18(2):39-41.
[3]李林等.Visual Basic程序设计[M].北京:地质出版社,2006.