基于SQL Server浅谈ADO对象编程

时间:2022-10-03 10:01:31

基于SQL Server浅谈ADO对象编程

摘要:数据库应用程序与数据库的数据访问接口有多种类型,最新的是ADO技术。本文以VB与SQL Server为平台,研究ADO对象编程技术。

关键词: ADO对象编程;VB;SQL Server

中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21488-01

Discuss the ADO Object ProgrammeBase on SQL Server

YIN Yun-xia, HU Ji-li, KE Jia

(Anhui College of Traditional Chinese Medicine,Hefei 230038,China)

Abstract:There are many different types of interfaces between Database application and database,the newest one is the ADO technique.This text is mainly talk about the ADO Object Programme base on VB and SQL Server.

Key words:the ADO Object Programme;VB;SQL Server

1 引言

微软公司的ADO (ActiveX Data Objects) 是一个用于存取数据源的COM接口的底层数据接口,是一项新的数据库访问技术。使用ADO技术作为数据接口具有ADO数据控件和ADO对象编程两种实现方式,现主要对ADO对象编程这种较复杂技术进行研究。

2 ADO对象简述

对于ADO模型来说,掌握 Connection,Command,Recordset三个对象至关重要。

Connection对象:建立与数据库的连接.

Command对象:发出命令操作数据源。一般情况下,Command对象可以在数据库中添加,删除或更新数据,或者在表中进行数据查询。

Recordset对象:数据查询的执行结果返回的记录集。

3 使用ADO对象存取数据步骤

在实际编程过程中使用ADO的一个典型的存取数据的步骤为:

连接数据源、打开记录集对象、使用记录集、断开连接。

3.1连接数据源

利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法。语法:

Connection对象。Open ConnectionString, UserID, PassWord, OpenOptions

3.2打开记录集对象

实际上记录集返回的是一个从数据库取回的查询结果集。

记录集的Open方法,语法:

Recordset对象。Open Source, ActiveConnection, CursorType, LockType, Options

3.3使用记录集

3.3.1 添加新的记录:

语法为:Recordset对象.AddNew FieldList, Values

在用完AddNew方法为记录集添加新的记录后,应使用UpDate方法将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作。

3.3.2修改记录集

其实修改记录集中的数据与重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了。

3.3.3 删除记录

在ADO中使用Delete方法删除记录集中的数据。

它的语法如下:

Recordset.Delete AffectRecords

3.4 断开连接

在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序。

使用的方法为:Close方法。语法如下:ADO对象.Close

4 实例演示

下面给出一个VB应用程序与SQL Server数据库连接开发的实例,示范ADO对象编程技术的使用。 在本示例中,在SQL环境下有一个“人事管理”数据库,其中包含一张“员工信息”表,如图1所示。

图1

在VB环境下,设计一个窗体,用来对“员工信息”表的内容进行显示和更新,窗体样式如图2所示。

图2

在该窗体中,包含“添加员工信息”,“修改员工信息”,“删除员工信息”和“浏览员工信息”四个按钮控件,分别实现对“员工信息”表的各种操作。

下面说一下具体的实现。首先必须在VB菜单栏的“工程”/ “引用”/ “ Microsoft ActiveX Data Objects 2.6 Library”(或其他ADO版本也行),引入ADO对象。然后在窗体中添加如下代码即可:(其中各控件的名称介绍省略)

(1)通用声明:

Dim cnn As ADODB.Connection' cnn为连接对象

Dim rst As ADODB.Recordset 'rst为记录集对象

Dim cmd As mand 'cmd为命令对象

(2) form_load代码

Set cnn = New ADODB.Connection

cnn.CursorLocation = adUseClient

'打开数据源连接

cnn.ConnectionString="driver={SQL Server};Server=uu;uid=sa;pwd=;database=人事管理"(Server、uid、pwd的值根据个人安装的SQL信息来决定)

cnn.Open

Set cmd = New mand'设置命令对象实例

Set cmd.ActiveConnection = cnn

Set rst = New ADODB.Recordset '设置记录集对象实例

Set rst.ActiveConnection = cnn

Dim a As String

a = "select * from 员工信息 "

rst.Open a, cnn, adOpenStatic, adLockOptimistic '打开记录集对象

(3)“添加员工信息”代码

If Txtname = "" Or Txtid = "" Then

MsgBox "请填写要添加的信息", vbOKCancel + vbInformation, "提示"

Else

rst.MoveLast '记录集中的移动方法,指针移动到记录集的末尾

rst.AddNew'添加新的记录

rst!员工姓名 = Txtname.Text

rst!员工ID = Txtid.Text

rst!身份证 = Txtshenfen.Text

rst!籍贯 = txtjiguan.Text

rst!出生日期 = txtbirth.Text

rst!工龄 = txtgl.Text

rst.Update'将上面所有的信息存储到数据库中

MsgBox "添加成功", vbOKOnly + vbInformation, "添加成功"

End If

(4)“修改员工信息”代码

Set cnn = New ADODB.Connection

cnn.CursorLocation = adUseClient

cnn.ConnectionString="driver={SQL Server};Server=uu;uid=sa;pwd=;database=人事管理"

cnn.Open

Set cmd = New mand '设置命令对象实例

Set cmd.ActiveConnection = cnn

Set rst = New ADODB.Recordset '设置记录集对象实例

Set rst.ActiveConnection = cnn

Dim a As String

a = "select * from 员工信息 where 员工ID=" & Txtid.Text & ""

rst.Open a, cnn, adOpenStatic, adLockOptimistic

rst.Fields(0) = Txtname.Text

rst.Fields(1) = Txtid.Text

rst.Fields(2) = Txtshenfen.Text

rst.Fields(3) = txtjiguan.Text

rst.Fields(4) = txtbirth.Text

rst.Fields(5) = txtgl.Text

MsgBox "修改成功!", vbOKOnly + vbInformation, "提示"

(5)“删除员工信息”代码

Dim ok As Integer

Dim i As Integer

For i = 0 To rst.RecordCount - 1

If rst!员工ID = Txtid.Text And rst!员工姓名 = Txtname.Text Then

ok = MsgBox("你确定真的要将此信息删除吗?", vbOKCancel + vbQuestion, "提示")

If ok = 1 Then

rst.Delete adAffectCurrent '删除所找到的用户

MsgBox "此信息已经成功删除!", vbOKOnly + vbInformation, "删除成功"

End If

End If

rst.MoveNext

Next i

(6)“浏览员工信息”代码

Txtname.Text = rst.Fields(0)

Txtid.Text = rst.Fields(1)

Txtshenfen.Text = rst.Fields(2)

txtjiguan.Text = rst.Fields(3)

txtbirth.Text = rst.Fields(4)

txtgl.Text = rst.Fields(5)

rst.MoveNext

If rst.EOF Then rst.MoveFirst End If

If rst.BOF Then rst.MoveLast End If

(7)窗体unload代码

cnn.Close

这样,一个实现VB访问SQL数据库的小程序就完成了,整个数据访问接口由ADO编程技术完成。

数据访问接口有多个种类,数据库接口中最新的是ADO,它是比RDO和DAO更加简单、更加灵活的对象模型。对于新工程,个人认为,使用ADO更加轻便快捷。

参考文献:

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

[2]启明工作室.Visual C++ + SQL Server数据库应用系统开发与实例[M].人民邮电出版社,2004.07.

[3]何玉洁.数据库原理与应用教程[M].机械工业出版社,2003.9.

[4]启明工作室.MIS系统开发与应用(Visual Basic+SQL Server版[M].人民邮电出版社,2005.04.

[5]林卓然.Visual Basic程序设计教程[M].电子工业出版社,2004.2.

“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”

上一篇:数据加密技术及网络应用 下一篇:现代通信技术的ATM交换方式