首页 > 范文大全 > 正文

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

开篇:润墨网以专业的文秘视角,为您筛选了一篇VB中数据库访问技术的应用研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘 要】本文介绍了vb中常用的DAO、RDO、ADO等数据库访问技术,重点分析了ADO 数据库访问技术,给出了使用ADO控件和ADO 对象访问数据库的实例。

【关键词】VB;ADO;数据库访问;对象模型

【Abstract】This paper introduces the commonly used DAO, RDO,ADO and VB database access technology, focusing on analysis of ADO database access technology, and gives some examples of the use of ADO control and ADO objectto access the database.

【Key words】VB;ADO;Database access;Object model

0 引言

自Visual Basic 3.0开始,Visual Basic就具有数据库连接和数据处理功能。在Visual Basic 6.0版中,数据库功能得到了空前的增强。Microsoft公司把许多新的数据访问功能加到Visual Basic中,使得该产品成为数据库应用程序开发的理想平台。Visual Basic提供了众多功能各异的数据控件,利用这些控件,用户只要编写少量代码甚至不编写任何代码就可以访问数据库,对数据库进行浏览及其他操作。Visual Basic还提供了几种不同的数据库对象模型,以实现对面向不同应用的数据库的全面处理,利用这些模型中的一种或者几种,可以对几乎所有种类的数据库进行操作。

1 VB中的数据库访问技术

VB 中将数据库分为了3 种类型:

(1)本地数据库:主要指Microsoft Access 数据库。

(2)外部数据库:是指采用ISAM(Indexed Sequential Access Method,索引顺序访问方法)的数据库,比如dBase、Foxpro、Paradox 和Excel 等。

(3)远程数据库:指SQL Server、Oracle、DB2 等大型数据库,当前的大型数据库应用程序基本上都是以这类数据库为后台。

1.1 通过VB访问数据库

VB可通过不同的方式与目前较为流行的大多数数据库进行连接。

传统的连接方法主要有JET数据库引擎(JET)、Microsoft ODBC(Open Database Connectivity,开放式数据库连接)驱动程序、OLE DB。

(1)Jet 引擎:联合数据库引擎,是Microsoft 公司开发的用于本地数据库(比如Access)、外部数据库(比如dBase、Excel、Paradox)的数据库引擎。它也可以访问远程数据库(比如SQL Server、Oracle),但必须通过ODBC 来转接。

(2)ODBC:开放式数据库连接,是一种建立数据库驱动程序的标准,当前几乎所有的DBMS 都支持这种数据库引擎。ODBC 是在数据库和应用程序之间提供的一个抽象层,即通过驱动程序和游标库来和数据库进行通信。这样,通过ODBC就可以使用本地化的协议来访问所有支持ODBC 的数据库了。

(3)OLE DB:微软公司于1996 年提出了一种新的数据库访问策略UDA (Universal Data Access),它的核心是一系列组件对象模型(COM) 接口,被命名为OLE DB。这些接口允许开发人员创建数据库提供者(Data Providers)。数据提供者能够很灵活地表达各种格式存储的数据,通用性比ODBC 更好、更灵活。

1.2 VB中访问数据库的常用技术

VB 集成开发环境提供的数据库访问技术主要有DAO、ODBC API、RDO 和ADO 等。目前的主流技术是ADO技术。

(1)DAO

数据访问对象(Data Access Object)DAO 方式是允许程序员操作Microsoft Jet 数据库引擎的第一个面向对象的接口。Jet数据库引擎是一种用来访问Microsoft Access 和其它数据源的记录和字段的技术。DAO 访问SQL Server 数据库有两种不同的对象模型可供选择:一种对象模型是通过Jet 引擎来访问数据;另一种是通过ODBC Direct 来访问数据。这两种对象模型都是层次结构的。使用DAO 的程序编码非常简单,其模型是设计关系数据库系统结构的对象类的集合,它们提供了完成管理这样一个系统所需的全部操作的属性和方法。

(2)ODBC API

用ODBC API 编程开放数据库连接ODBC(Open Database Connectivity)的思想是访问异种数据库的一种可移植的方式。ODBC API 是一套复杂的函数集,可提供一些通用的接口,以便访问各种后台数据库,与数据资源对话的公用函数组装在一个称为驱动程序管理器(ODBC.DLL)的动态连接库中。应用程序调用驱动程序管理器中的函数,而驱动程序管理器通过驱动器(SQL Server.DLL)把它们送到服务器中。

(3)RDO

远程数据对象(Remote Data Object)RDO 方式是提供给开放数据库互连(ODBC)数据源的面向对象的接口。RDO 是位于ODBC API之上的一个对象模型层,它依赖ODBC API、ODBC 驱动程序以及后端数据库引擎来实现,用RDO 所编的程序短小、快速。RDO 是开发Microsoft SQL Server,Oracle 和其它大型关系数据库应用程序的绝大多数数据库开发者使用的对象模型。与DAO 相比,RDO 提供了前所未有的连接和查询速度,但它对SQL Server 和Oracle 以外的数据库的存取性能没有保证,微软已经推荐使用ADO替换RDO。

(4)ADO

为了克服DAO 和RDO 的缺点,提供一种统一的数据库访问技术,Microsoft 提出了ADO 技术。ADO 是应用层的编程接口,它封装并实现了OLE DB(Object Linked and Embed Database,对象链接与嵌入式数据库) 的所有功能,在继承OLE DB 的同时,大大简化了OLE DB 的操作。它通过OLE DB提供的COM 接口访问数据,可访问各种类型的数据源,既适合于SQL Server、Oracle、Access 等数据库应用程序,也适合于Excel 表格、文本文件、图形文件和无格式的数据文件。ADO主要采用OLE DB 访问数据库,也支持ODBC 访问,但需要经过OLE DB 转接。

2 ADO 技术

2.1 ADO模型

ADO 是Microsoft 公司提出的第三种数据库访问对象,是Microsoft 数据库访问技术的一个主要发展方向,它把OLE DB封装在一个数据对象中,使得VB 程序可以方便地实现对数据库的访问。

ADO 与其他对象模型的主要区别在于它的简单和非层次结构。这种对象模型共包含7 个对象,即Connection、Command、Recordset、Parameter、Property、Field 和Error。其中最常用的是Connection、Command、Recordset 和Field 4 个对象。它们的具体功能是:

(1)Command对象:包含关于某个命令(如查询字符串,参数定义等)信息。

(2)Connection 对象:包含某个数据提供程序的信息。

(3)Error 对象:包含数据提供程序出错时的扩展信息。

(4)Property 对象:包含某个ADO 对象的提供程序定义的特征。

(5)Parameter 对象:包含参数化的Command 对象的某单个参数的信息,该Command 对象有一个包含其所有Parameter对象Parameters 集合。

(6)Recordset 对象:包含某个查询返回的记录,以及记录中的游标。Recordset 对象只代表一个记录集,这个记录集是一个连接的数据库中的表,或者是Command 对象的执行结果返回的记录集。在ADO 对象模型中,在行中检查和修改数据是最主要的方法,所有对数据的操作几乎都是在Recordset 对象中完成的。Record对象用于指定行、移动行、添加、更改、删除记录。

(7)Field 对象。包含记录集中数据的某单个列的信息。

2.2 使用ADO 技术访问数据库

使用ADO 技术访问数据库有三种方法: 使用ADO 数据控件、使用ADO对象、通过SQL语句访问数据库。使用ADO 数据控件可以使用户很方便地不用编程或编写很少的代码就可以访问数据库数据。使用ADO 对象可以实现更复杂、更灵活的数据访问。由于ADO不具有显示数据的功能,因此要将数据操作结果在用户界面上显示出来,就要靠数据绑定控件来实现。

2.2.1 ADO 数据控件

ADO数据控件支持OLE DB 数据访问模型,既可以访问Oracle、SQL Server 等大型关系型数据库管理系统,也可以访问Access、FoxPro 等小型桌面数据库管理系统,还可以访问文本数据、邮件数据、图形数据等。因此说,使用ADO 数据控件几乎可以访问各种类型的数据源。ADO 数据控件的名称为“Adodc”,它是一个ActiveX 控件,必须手工添加到工具箱中才能使用。在“部件”对话框的“控件”选项卡中选中“Microsoft ADO Data Control 6.0( OLE DB) ”复选框即可添加Adodc 控件到工具箱。ADO 数据控件的主要属性有:

1)ConnectionString 属性

ConnectionString 属性用于建立到数据源的连接,它指定连接到数据源的OLE DB 数据访问接口和具体的数据库文件。不同的数据源要使用不同的OLE DB 数据访问接口,由ConnectionString 属性的Provider 参数指定所用的OLE DB 接口; 由ConnectionString属性的Data Source 参数指定具体的数据库文件; 另外,还可以指定连接数据库的用户名和密码等信息。下面给出连接到Access数据库student. mdb实例:

Adodc1.ConnectionString = "Provider = Microsoft.Jet. OLEDB.4.0; Data Source = "& App.Path&"\student.mdb; Persist Security Info = False"

2)CommandType 属性

CommandType 属性指明命令的类型,即要访问的数据的具体来源。这个属性要和RecordSource 属性配合使用。

3)RecordSource 属性

RecordSource 属性设置ADO 记录集的内容,这个内容可以来自数据库中的一张表、一个查询语句或者来自一个存储过程的执行结果。如果CommandType属性的取值为adCmdTable,则RecordSource 属性的内容是一个表名,ADO 记录集是对此表无条件查询得到的结果; 如果CommandType 属性的取值为adCmdText,则RecordSource 属性的内容是一个查询语句文本串,ADO记录集是执行此查询语句文本产生的结果; 如果CommandType 属性的取值为adCmdStoredProc,则RecordSource 属性的内容是一个存储过程名,ADO记录集执行此存储过程产生的结果; CommandType 属性的默认值为adCmdUnknown,表示RecordSource 属性中的命令类型未知。

4)Recordset 属性

Recordset属性又称为记录集,它本身又是一个对象。VB 应用程序一般就是通过记录集来操作数据库的,所以记录集是VB 应用程序和数据库之间相互连接的桥梁。在访问数据库的时候,设置好ConnectionString 属性、CommandType 属性和Record-Source 属性后,执行RecordSource 属性的结果就放在Recordset 中。

ADO 数据控件最重要的方法是Refresh。Refresh方法用于更新ADO 数据控件属性,使修改后的ADO 数据控件属性生效。所以当改变了ADO 数据控件属性后就要执行Refresh 方法。

2.2.2 外部数据绑定控件

要将数据操作结果显示出来要使用数据绑定控件。VB中的TextBox、CheckBox、ComboBox、ListBox等标准控件都是数据绑定控件,但是这些标准控件只能显示记录集中一个列的值。除了这些标准控件外,还有一些ActiveX 控件也可以实现数据绑定功能,这些控件称为外部数据绑定控件。常见的外部数据绑定控件有DataCombo、DataList、DataGrid、MSHFGrid、MSFlexGrid 等,这些外部数据绑定控件提供了比标准控件更加强大的功能,比如有些控件能显示记录集的全部内容。

以DataGrid 控件为例来看外部数据绑定控件的用法。下面给出一个实例,这个例子使用ADO 数据控件从student. mdb 数据库的student 表中查询所有sex = "女" 的记录的学号和姓名,再使用外部数据绑定控件DataGrid 把学号和姓名显示出来:

Private Sub Command1_Click( )

Adodc1. Visible = False

DataGrid1. AllowAddNew = False

DataGrid1. AllowUpdate = False

DataGrid1. AllowDelete = False

DataGrid1. Caption = " 女生信息"

Adodc1. ConnectionString = " Provider = Microsoft.Jet. OLEDB. 4. 0; Data Source = " & App. Path& " \student. mdb; Persist Security Info = False"

Adodc1. CommandType = adCmdText

Adodc1. RecordSource = " select xh,xm from student where sex = " 女"

Adodc1. Refresh

Set DataGrid1. DataSource = Adodc1

DataGrid1. Refresh

DataGrid1. Columns. Item( 0).width = 1200

DataGrid1. Columns. Item( 1).width = 1200

DataGrid1. Columns. Item( 0).Caption = " 学号"

DataGrid1. Columns. Item( 1).Caption = " 姓名"

End Sub

2.2.3 通过SQL语句访问数据库

在VB应用程序中主要用这个对象建立与数据库的连接,一般的方法是:

(1)声明并创建对象

Dim ADOcn As Connection ’ 声明对象

Set ADOcn = New Connection ’ 创建新对象,或将上述两条语句直接写成:

Dim ADOcn As New Connection。

(2)建立数据库连接

一般通过下列语句完成与数据库(源)的连接:ADOcn.Open 连接字符串。

(3)对数据表进行更新操作

可以利用Connection 对象对数据库中的基本表进行增加、删除、修改等不返回结果集的操作,语法如下:ADOcn.Execute SQL 语句。

3 结束语

VB的数据库访问技术,历经了DAO、RDO、ADO等重要阶段。ADO 是DAO/RDO 的后继产物,尽管Visual Basic 6.0仍然支持DAO和RDO 两种数据访问接口,但其核心与重点已经转移到ADO/OLEDB 数据访问技术上。ADO 作为最新的数据库访问模式它具有功能强、通用性好、效率高、占空间少等特点。ADO数据控件易于掌握、代码短小,但是程序灵活性较差,而ADO 对象功能强大、灵活性好,在具体开发的时候要灵活运用这两种方法。我们在实际开发中,对数据库的操作更适合采用对象模型编程方式,以便更灵活地对数据库进行操作。

【参考文献】

[1]黄玉春.Visual Basic 程序设计与实训教程[M].北京:清华大学出版社,2006.

[2]祝旭.VB 访问数据库的三种技术[J].湖南工业职业技术学院学报,2010(8):8-9.

[3]吴青林,王焱.VB 中ADO 访问数据库技术探讨[J].软件导刊,2010(2):151-152.

[4]陈英.Visual Basic程序设计教程[M].大连理工大学出版社,2007.

[5]李志伟.VB 环境下基于ADO 的Oracle 数据库访问[J].电脑开发与应用,2009(09):60-62.

[6][美]Grey perry.学用Visualbaisc6.0[M].戴红,陈吉吉,姚娜,译.清华大学出版社.