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控件等显示数据也很方便。
版权声明:本文标题:在VB6.0数据库程序开发中使用ADO和SQL的方法介绍 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710854718a576427.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论