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

时间:2022-08-27 09:12:04

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

摘要:随着数据库开发技术的广泛应用,利用Visual Basic进行C/S应用程序开发是目前较为典型的做法。该文通过一个仓库信息管理系统的设计和开发,详细介绍了在VB环境下,利用ado接口技术实现与SQL Server 2005数据库连接及访问的过程。

关键词:vb;数据库访问;ADO技术

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)29-6481-05

在数据库应用系统的开发中,数据库访问技术是一个重要的组成部分,它是连接前端应用程序和后台数据库的关键环节。和VC、Delphi等高级语言相比, VB具有不可取代的简单易用性和真正的“所见即所得”的特性。VB不但为用户提供了较为完善的文件访问和处理功能,同时具备了强大的数据库管理功能,利用数据库技术处理大型的管理信息系统(MIS)远比通过文件处理的效率高[2]。

1 Visual Basic 数据库访问技术

使用VB6.0可以创建将每个步骤封装在数据访问系统中的部件。从数据源开始,Microsoft可视化数据工具提供了在sql和Oracle系统中查看并操作表、视图、存储过程和数据库结构描述的功能[1]。数据源是数据提供程序和数据使用者之间的桥梁,可以通过ADO(Microsoft ActiveX Data Objects)创建数据源。ADO是VB在任何数据源中访问数据的主要方法。

开发基于VB的数据库应用,可以通过数据访问对象DAO (Data Access Object)、远程数据对象RDO(Remote Data Object)和ActiveX数据对象ADO(ActiveX Data Objects)等三种数据访问接口。数据访问接口是一个对象模型,它代表了访问数据的各个方面。使用VB,可以在任何应用程序中通过编程控制连接、语句生成器和供使用的返回数据[1]。

对于这三种数据接口,每一种方法都代表着数据访问技术发展的不同阶段以及逐步完善的过程。ADO技术是最新的接口技术,比RDO和ADO更加的简单、灵活,通过较少的对象,实现了更多的属性、方法及事件的融合。在简化编程的同时,实现了更高效率的数据访问。

2 ADO数据访问技术

ADO Data控件时VB6.0提供的一个ActiveX控件,使用ADO Data控件可以快速建立数据绑定的控件和数据提供者之间的连接[3]。

2.1 VB环境下ADO Data控件的添加

利用ADO Data控件可以实现本地数据库或远程数据的连接;可以打开用户指定的数据库表,定义基于SQL语言的查询、增删数据库表中的记录集合;还可以传递字段数值给数据绑定的控件,也可以在控件中显示或修改数值。

要使用ADO Data控件,需要现在VB下的“工程”菜单上选择“部件”选项,然后在“部件”对话框中选择“Microsoft ADO Data Control 6.0(OLEDB)”选项,单击确定按钮后,即可在VB的控件工具箱内使用ADO Data控件。通过该控件就可以直接访问记录集,移动记录指针,实现对数据库的操作,不再需要程序代码的编写。

2.2 ADO Data控件的主要属性

2.2.1 ConnectionString 属性

连接属性用来建立到数据源的连接信息。由于VB的ADO对象模型可以连接不同类型的数据库,所以在使用ADO Data控件时也可通过这个属性设置要连接的数据库。可以通过三种连接资源选项建立与数据源的连接,即使用Data Link文件、使用ODBC数据资源名称和使用连接字符串三个选项完成数据链接。

2.2.2 RecordSource 属性

记录源属性用于设置要连接的表或者SQL查询语句。命令类型选择默认,在命令文本(SQL)中输入SQL语句。如:select * from oper

2.2.3 CommandType 属性

用来指定RecordSource属性的取值类型。可以直接在属性窗口的CommandSource属性的下拉列表中选择需要的类型,有以下4个不同的取值:

adCmdUnknow 默认值,表示命令文本中的命令类型未知。

adCmdTable 表示将命令类型作为其列全部由内部生成的SQL查询返回的表格的名称进行计算。

adCmdText 表示将命令文本作为命令或存储过程调用的文本化定义进行计算。

adCmdStoreProc 表示将命令文本作为存储过程名进行计算。

3 数据源的创建

3.1 创建SQL Server 数据库

在SQL Server 2005中设计一个仓库信息管理数据库,数据库命名为WMS,其中设计包含如下数据表:Client(客户表)、Storehouse(仓库信息表)、Oper(用户表)、ProType(产品类目表)、Product(产品信息表)、StoreIn(入库操作信息表)、TakeOut(出库操作信息表)、ProInStore(库存产品信息表)。

3.2 创建数据源

第一步 打开控制面板中的管理工具,双击数据源(ODBC),显示ODBC数据源管理器,选择“系统DSN”选项卡,如图1所示。

从系统数据源列表中选择“WMS”选项(这是在SQL Server中建立的数据库的名称),单击“配置”按钮,出现如图2所示的界面。

图2 创建新数据源界面

第二步 从驱动程序列表中选择“SQL Server”选项,单击“完成”按钮,按照界面提示,保持数据源名称为“WMS”,其他选择默认选项完成数据源的创建。直至ODBC Microsoft SQL Server 安装界面的出现,表示成功配置了新的数据源,如图3所示。

第三步 单击“测试数据源”按钮,出现如图4所示的SQL数据源测试界面,界面信息显示命名为WMS的数据源测试成功,这样在应用程序中就可以使用这个数据源了。

4 VB环境下利用ADO Data控件访问数据库

4.1 数据库表设计

打开SQL Server 2005,在仓库信息管理数据库WMS中添加oper表。该表用来存放本系统用户的信息。基本数据包括用户名、密码和用户级别三项,用户级别分为“一般操作员”和“系统管理员”两类。oper表结构如图5所示。

4.2 系统实现

4.2.1 新建工程

打开VB编辑器,点击新建工程,工程命名为Warehouse.vbp。首先在工程中添加公共模块Moudule1.Bas,其中包含一些被本工程中一些窗体所调用的全局变量和过程;然后在工程中添加各个窗体,系统结构如图4.2所示。

公共模块Moudule1.Bas代码如下:

Public userlever As String '保存用户级别

Public flag As String '记录操作标记

Public tna As String '保存表名:用于调用edrec1

Public cap As String '保存标题名:用于调用edrec1

Public recs As Integer '保存记录集中记录个数

Sub main() '主过程

pass.Show vbModal '以有模式方式调用pass窗体

End Sub

Public Function exesql(ByVal sql As String) As ADODB.Recordset

sql = Trim$(sql)

Set conn = New ADODB.Connection

Set rst = New ADODB.Recordset

conn.ConnectionString = "DSN=WMS;UID=sa;PWD=;"

conn.Open

Set rst.ActiveConnection = conn

rst.LockType = adLockOptimistic

rst.CursorType = adOpenKeyset

rst.Open sql

Set exesql = rst

Set res = Nothing

Set conn = Nothing

End Function

Public Sub deldata(ByVal tn As String)

'删除指定表中所有记录,对于oper表添加一个系统用户

Dim sql As String

sql = "delect" & Trim$(tn)

Set conn = New ADODB.Connection

conn.ConnectionString = "DSN=WMS;UID=;PWD=;"

conn.Open

conn.Execute sql

If Trim(tn) = "oper" Then

sql = "insert oper values('1234','1234','系统管理员')"

conn.Execute sql

End If

conn.Close

End Sub

Public Sub endata(keyasc As Integer)

If keyasc = 13 Then

SendKeys "{TAB}"

End If

End Sub

4.2.2 登录窗口设计

pass窗体用来接受用户的用户名及口令输入,并判断用户的合法性。如果是合法用户,系统会自动释放该窗体并启动main窗体;否则释放窗体而不启动main窗体。该窗体运行结果如图6所示。

图6 系统登录界面

4.2.3 ADO Data控件在设置系统用户界面的使用

在工程中添加一个设置系统用户窗体setuser.frm,这个窗体用来添加、删除和修改使用本系统的用户,设计界面如图7所示,其中包含一个ADO Data控件adodc1、一个DataGrid控件DataGrid1和四个命令按钮。

其中ADO Data控件adodc1的属性设置应该是:Caption = “adodc1”;ConnectionString = “DSN=WMS”;UserName = “sa”;Password = “”;RecordSource = “select * from oper”;Visible = “False”。

DataGrid控件DataGrid1的属性设置如下:Caption = “DataGrid1”;DataSource = “adodc1”。在DataGrid1窗体上单击鼠标右键,选择“检索字段”选项,这样就设立好了DataGrid1控件的数据源为adodc1,从而建立了控件与数据表的数据绑定,以显示oper表中的一系列行和列表示的记录集对象的记录和字段。通过DataGrid控件可以直接对记录集进行访问,移动记录指针,不需要编写代码即可实现对数据库的操作[3]。

窗体中四个命令按钮的作用:“添加”按钮用来添加新的系统用户;“修改”按钮用于修改当前用户的信息;“删除”按钮用于删除当前用户;“返回”按钮用于返回系统。

设置系统用户(setuser)窗体运行界面如图8所示,oper表中有两条记录。

图8 设置系统用户运行界面

如果用户选择“添加”按钮,运行界面如图9所示。用户可以在“用户名”和“口令”处分别填入新建用户的信息,并在用户级别下拉列表中进行选择“一般操作员”或“系统管理员”。然后单击“确定”按钮,显示添加结果。如图9所示,用户名为“SWF”、密码为“0101”、用户级别为“一般管理员”的新系统用户信息已成功添加到本系统中。

5 结束语

ADO的优势在于前端和数据源之间使用层数最少和轻量、高性能的数据访问接口,并可通过ADO Data 控件访问各种数据库。因此,ADO 是如今使用最广泛、应用最成功的数据访问技术。不仅在 C/S( 客户端/服务器) 架构的数据库应用程序中得到认可,在日益风靡的 B/S ( 浏览器/服务器) 架构的Internet 交互式站点建设中,也深受开发者的青睐[4]。

笔者通过利用VB和SQL Server 2005成功开发了一个仓库信息管理系统,实现了完全面向对象的可视化编程,其方法简便、直观、快捷。并通过本文介绍了ADO数据访问技术,详细讲述了ADO Data控件在VB的使用,实现了简单快速建立控件的数据绑定及数据库的访问。

参考文献:

[1] 李晓黎,张巍.Visual Basic + SQL Server数据库应用系统开发与实例[M].北京:人民邮电出版社,2003:63-121.

[2] 李哲,许树勤,李占青.数据库的选择及ADO技术的应用[J].机械工程与自动化,2004(3).

[3] 李春葆,张植民.Visual Basic数据库系统设计与开发[M].北京:清华大学出版社,2003.

[4] 刘春英.VB 环境下数据库访问技术的分析[J].科技信息,2008(16).

上一篇:WebQuest在数据库程序设计教学中的应用 下一篇:C语言教学的教学模式改革策略解析