admin 管理员组

文章数量: 1086019


2024年3月19日发(作者:二郎神的天眼)

第20期总第174期 

2008年10月 

内蒙古科技与经济 

InnerMongolia ScienceTechnology&Economy 

No.20,the 174th issue 

Oct.2008 

在VB6.0数据库程序开发中使用ADO和SQL的方法介绍 

王瑾瑜 ,时塞汉 

(1.呼和浩特职业学院计算机信息学院;2.内蒙古审计厅计算中心,内蒙古呼和浩特010000) 

摘 要:以实例说明了通过ADO处理数据库表中数据的实现方法,并介绍了利用SOL语句实现对 

数据作数学统计的方法。 

关键词:ADo;SQL;程序;at据库 

中图分类号:TP311.13 文献标识码:A 文章编号:1007---6921(2o08)20—0079—02 

在VB的应用程序开发中,访问数据库的方法 

可归纳为两种。一种是通过 或 )o的数据 

表2 流水账(wAccount) 

源对表中的数据进行直接操作,另一种是通过标准 

的SQL语句结合Connection对象对数据库中的数 

据进行操作,对表中的数据进行检索和统计。DAO 

是Visual Basic 5.0使用的数据访问技术,它在用于 

访问MDB文件格式的数据库时有较高的效率,但 

访问如Oracle或SQL Server这样的非MDB文件格 

式的数据库时,因它基于Access/Jet数据库引擎,访 

问速度会大大降低。所以Visual Basic 6.0推出了 

含义 

总库存数 

总库存金额 

ADO技术。ADO中文含意是ActiveX数据对象 

字段名 

TotalNurn TotalMoney 

(ActiveX Data Objcet),它是一种面向对象的接口。 

(类型宽度) (int) (Money) 

AI:X3访问数据库是通过访问OLEDB使用程序和 

OLE DB供给程序来进行的,它在封装OLE DB的 

程序中使用了大量的∞M接口,是一种高层的访 

问技术。它在继承OLE DB的同时,大大简化了 

oLE DB的操作。 

此外,ADO技术可以以ActiveX控件的形式出 

字段名(类型宽度) Quantity, Sold 

现,被广泛应用于Microsoft ActiveX页、Visual C+ 

+和Visual Basic的编程。SQL是管理关系数据库 

系统的标准语言。每一种关系数据库如Access、 

2 ADo的使用方法 

SQL Server、Oracle等都有它自己特有的SQL语 

ADO2.0存在于Visual Basic 6.0的两个独立的 

言,但它们都支持像select、insert、update、delete、cre— 

库中,第一个称为AEX3DB,在References对话框中 

ate、drop等标准语句来完成几乎所有的对数据库的 

的名字是Microsoft ActiveX Data 0bjects 2.0 Li— 

操作。本文就ADO和SQL的用法做一些探讨。 

brary。在这个库中包含了所有的ADO对象。对于 

1开发原型 

那些并不需要太多加强的ADO资源工程,应该使 

为计算机产品经销商开发一个进销存的程序。 

用 6∞库。在References对话框中这个库称为 

用MS Access数据库,创建的数据库名叫ware. 

Microsoft ActiveX Data Objects Recordset 2.1 Li— 

mdb。在这个数据库中,建立表1、表2、表3、表4。 

brary。这个库只包含对Recordsets的支持。visual 

表l 商品明细表(wareDetail) 

BASIC 6.0通过ADO控件和Recordset对象两种方 

法来使用ADO。下面介绍一下Recordset对象的使 

用方法。在visual basic中加入如下代码: 

dim myConnectstr as strng 

dim myRecordset as New ADODB.recordset 

收稿日期:2008—04—12 

79・ 

总第174期 

myConnectstr=“PROVIDER=Microsoft.Jet. 

OLEDB.4.0:DataSource=”&App.Path&“ 

BY warelD 

内蒙古科技与经济 

ware.mdb;Persist Security Info=蹦se” 

myRecordset.CoursorLoc ̄tion=AduseClient 

myRecordset.Open“select*from wDetail”. 

默认是按升序排列。如果想按降序排列可用如 

下代码: 

SELEcT wareID FRoM wareDetial ORDER 

BY warelDDESc 

myConnectstr,adOpenKeyset,adLockPessimistic 

如果你想选择多列,使用下面的语句: 

SELECT warelD.w&reNan3.e FR0M wareDetial 

0RDER BY warelD 

这样就可以对商品明细表追加纪录: 

myRecordset.AddNew’添加一条新记录 

myRecordset.Fie1ds(“warelD”)=“000001”’ 

用WHERE关键字来限制选择范围。如果你 

对各字段分别赋值 

myRecordset.Fields(“wareN&rne”)=“Switch 

350o” 

myRecordset.Fields(“wPrice”)=4350 

myRecordset.Fields(“wManufect”)=“Cisoc'’ 

myRecordset.Update’对当前记录进行更新 

获取表中的纪录数: 

recordent=myRecordset.Recordcount 

移动纪录指针: 

myRecordset.MoveFisrt’移动到表的第一条纪 

录 

myRecordset.MoveLast’移动到表的最后一条 

纪录 

myRecordset.MovePrevious’移动到表的上一 

条纪录 

myRecordset.MoveNext’移动到表的下一条纪 

录 

删除当前纪录: 

myRecordset.Delete 

myRecordset.UPDA1E 

最后关闭纪录集,释放纪录集变量: 

myRecordset.Close 

Set myRecordset=Nothing 

3 SQL的使用 

上面所用的方法,只适合于对单个表的简单操 

作。如果是对表的数据作复杂查询,或数据统计,用 

上述方法就非常不方便。一般情况下用sQL语言 

结合Connection对象实现SQL语句中最常用的是 

eSlcet语句。该语句用来从数据库表中检索数据或 

者完成其他一些功能。为了使用这条语句你必须知 

道你要检索的字段名称,或者直接用星号来检索所 

有字段。 

3.1举例说明:如果希望检索商品名细表中的信息 

可使用如下语句 

SELECT*FRoM waredetial 

关键字ORDER BY要求列名以确定按哪一列 

排序。这里可选定按warelD排序,如果你希望按列 

warelD的字母顺序排列,可采用下面的代码: 

SELECT warelD FR0M wareDetial 0RDER 

80・ 

想选择wareDetial中wareNs_rne列值为“eisco6000” 

的行。你可用下面的代码实现: 

SELECT*FR0M wareDetial W RE ware. 

Name=“cisco6000”0RDER BY warelD。 

除了SELECT语句,标准SQL语句还有IN. 

sERT UPDATE DELETE等,在此不再作具体介 

绍.实际的应用经常要对表中的gy,J或多列数据进 

行数学运算,这就需要如C()I T()、SUM()、AVG 

()、 ()、MIN()等数学函数。 

3.2关于这些函数用法的具体说明:先建立一个与 

数据库的连接 

dim myConnectstr as strng 

dim myCnt as New ADoDB.connection 

myConnectstr=“PROVIDER=Microsoft.Jet. 

OLEDB.4.0:DataSource=”&App.Path&“ 

wax'e.mdb:Persist Security Info=False” 

myCnt.Open myConnectstr 

若要产生某种商品的总进货数以及总出货数可 

用以下代码: 

exeStr =“insert into wInOut select sum 

(wQuantity)as Quantity,sum(wSold)as Sold from 

wAccount where warelD=’000001’’’ 

若要产生库存的总数以及总库存金额可用以下 

代码: 

exeStr “insert into wLib select sum(nu. 

mlnlib)as totalNum,sam(numlnLib*wPrice)as to— 

talMoney from wDetail” 

运行上述代码: 

myCnt.Execute exeStr 

关闭连接: 

myCnt.Close 

在应用程序的开发中,基于数据库的不同,只在 

连接的数据源部分作相应的修改,其他的部分无需 

改动。 

4结束语 

本文所列举的仅仅是ADO和SQL用法的一小 

部分,实际的应用中对ADO的操作有时用ADO控 

件结合DATAGRID控件等显示数据也很方便。 


本文标签: 数据 数据库 语句 表中 纪录