1、VB访问数据库的方法及接口的比较摘 要:本文介绍了几种Visual Basic访问数据库的方法,对这些数据接口的性能进行了比较,并提出相互的转化关系。关键词:Visual Basic 数据访问接口 DAO RDO ADO1 VB访问数据库的方法VB访问数据库的方法很多,一般情况下分成两大类,而每一类又有很多方法。下面以列表的方式列出每一类,及每一类包含的方法。1.1 接口对象法(API) VBSQL:通过DB-Library访问微软的SQL Server ODBC API:任何一种ODBC数据源 16位和32位 DAO/Jet:本地的Jet/Access.MDB、顺序索引数据库(ISAM)和任
2、何ODBC数据源 DAO/ODBC Direct:任何一种ODBC 数据源(经过RDO) RDO 2.0:任何一种ODBC数据源(Level或) ADO:任何一种ODBC数据源和任何经过OLE DB界面接口的数据源 1.2 数据控件法 Data Control:DAO/Jet数据界面接口Data Control/ODBC Direct:DAO/ODBC Direct数据界面接口 RemoteData Control/RDC:RDO数据界面接口Advanced Data Connector/ADC:ADO数据界面接口 2 几种接口的比较ADC(Advanced Data Connector):高
3、级数据连接器。提供绑定ADO数据源到窗体的数据绑定控件上。ADC主要是一种直接访问或者通过ADO访问远程OLE DB对象的一种技术,它也支持主要应用在微软IE浏览器上的数据绑定控件。它是特地为Web上的浏览器为基础的应用程序而设计的。ADO(Active Data Objects):Active数据对象。是DAO/RDO的后继产物,ADO“扩展”了DAO和RDO所使用的对象模型,这意味着它包含较少的对象、更多的属性、方法(和参数),以及事件。ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于
4、SQL Server、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件,是一个便于使用的应用程序层接口。ADO是为Microsoft最新和最强大的数据访问范例OLE DB而设计的,OLE DB为任何数据源提供了高性能的访问,这些数据源包括关系和非关系数据库、电子邮件和文件系统、文本和图形、自定义业务对象等等。ADO在关键的Internet方案中使用最少的网络流量,并且在前端和数据源之间使用最少的层数,所有这些都是为了提供轻量、高性能的接口。因此ADO通过其内部的属性和方法提供统一的数据访问接口方法。DAO(Data Access Obje
5、cts):数据访问对象。是一种面向对象的界面接口。通过DAO/Jet功能可以访问ISAM数据库,使用DAO/ODBC Direct功能可以实现远程RDO功能。使用DAO的程序编码非常简单,DAO提供丰富的游标(Cursor)类型的结果集和非游标(Cursor-Less)类型的结果集,同DDL(数据描述语言)的功能很类似。DAO可通过ODBC像直接连接到其它数据库一样,直接连接到Access数据库。DAO最适用于单系统应用程序或小范围本地分布使用。DAO模型是设计关系数据库系统结构的对象类的集合。它们提供了完成管理这样一个系统所需的全部操作的属性和方法,包括创建数据库,定义表、字段和索引,建立表
6、间的关系,定位和查询数据库等工具。JET(Joint Engine Technology):数据连接性引擎技术。是一种基于工作站通过DAO的数据库访问机制。虽然可以通过微软Access提供的ODBC驱动程序访问Jet数据库,但使用这些驱动程序在功能上有所限制。Jet机制有自己的查询和结果集处理功能,并可对同种或异种数据源作查询处理。0DBC(Open Database Connectivity):开放式的数据库连接技术。为异种数据库的访问提供了统一的接口。ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。这个接口提供了最大限度的相互可操作性:
7、一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。ODBC可以为不同的数据库提供相应的驱动程序,是一种公认的关系数据源的接口界面。它快而轻并且提供统一接口的界面,ODBC对任何数据源都未作优化。ODBC API:数据库厂商为程序设计者提供的直接访问数据库的一组函数。注意:这里要指出的是,虽然ODBC API提供了很多很方便而且强大的功能。但是通常来说ODBC API都比较难学,而且使用很容易出错。虽然允许用ODBC API来操作ODBC句柄,但还是要小心,如果不正确地使用ODBC API,可能会导致不可预知的错
8、误。例如,假如使用ODBC API代码来关闭连接或释放这些ODBC句柄中的任何一个,那么RemoteData控件或RDO的行为将是不可预知的。保存ODBC句柄以供备用也是没有意义的,因为它们是可变的。ODBC Direct:是一种基于DAO对象的新的DAO模式,其方法和属性与RDO功能相同。使用在有DAO代码存在的场合,可用来访问远程数据源。OLE DB: 是COM模型的数据库接口。是一种底层数据访问界面接口。是用于第三方驱动程序商家开发输出数据源到ADO技术的应用程序或用于C+的开发者开发定制的数据库组件。它能够处理任何类型的数据。OLE DB向应用程序提供一个统一的数据访问方法,而不考虑它
9、们的格式和存储方法。在实际应用中,这种多样性意味着可以访问驻留在电子数据表、文本文件甚至邮件服务器,诸如 Microsoft Exchang中的数据。OLE DB不能被VB直接调用。RDC(RemoteData Control):远程数据访问控件。是一种对RDO数据绑定的控件。可以输出特定的结果集到数据源控件。RDO(Remote Data Objects):远程数据对象。是一个到ODBC的、面向对象的数据访问接口,远程数据对象和集合为使用代码来创建和操作一个远程ODBC数据库系统的各个部件提供了一个框架。对象和集合都具有描述数据库的各个部件特征的属性以及用来操作这些部件的方法。可以在对象和集
10、合之间建立起关系,这些关系就代表了数据库系统的逻辑结构。它同易于使用的DAO style组合在一起,提供了1个接口,形式上展示出所有ODBC的底层功能和灵活性。RDO是ODBC API的一个浅层界面接口。是专为访问远程ODBC关系数据源而设计的。尽管RDO在访问Jet或ISAM数据库方面受到限制,而且它只能通过现存的ODBC驱动程序来访问关系数据库。但是,RDO已被证明是许多SQL Server、Oracle以及其他大型关系数据库开发者经常选用的最佳接口。RDO提供了用来访问存储过程和复杂结果集的更多和更复杂的对象、属性以及方法。VBSQL:是Visual Basic结构化查询语言。是一种基于API的接口方法,几乎与C的DB-Library API相同。VBSQL只支持微软的SQL Server。VBSQL快而且轻但不支持对象界面。