在VB6.0数据库程序开发中使用ADO 和SQL
在VB6.0数据库程序开发中使用ADO 和SQL 摘要:本文用实例说明了通过ADO处理数据库表中数据的实现方法,并介 绍了利用SQL语句实现对数据作数学统计的方法. 关键词:ADO SQL 数据库 1.引言 在VB的应用程序开发中,访问数据库的方法可归纳为两种。一种是通过DAO 或ADO的数据源对表中的数据进行直接操作,另一种是通过标准的SQL语句结合 Connection 对象对数据库中的数据进行操作,对表中的数据进行检索和统计。DAO是Visual Basic 5.0使用的数据访问技术,它在用于访问MDB文件格式的数据 库时有较高的效率,但访问如Oracle或 SQL Server这样的非MDB文件格式的数 据库时,因它基于Access/Jet数据库引擎,访问速度会大大降低。所以Visual Basic 6.0推出了ADO 技术。ADO中文含意是ActiveX数据对象(ActiveX Data Object), 它是一种面向对象的接口。ADO访问数据库是通过访问OLE DB使用程序和OLE DB供给程序来进行的,它在封装OLE DB的程序中使 用了大量的COM接口,是一种高层的访问技术。它在继承OLE DB的同时,大大 简化了OLE DB的操作。
此外,ADO技术可以以ActiveX控件的形式出现,被广泛应用于Microsoft ActiveX页、Visual C++ 和Visual Basic的编程。SQL是管理关系数据库系统的标 准语言。每一种关系数据库如Access、 SQL Server、 Oracle 等都有它自己特有 的SQL语言,但它们都支持像select、insert、update、delete、create、drop等标准 语句来完成几乎所有的对数据库的操作.本文就ADO 和SQL的用法做一些探讨。
2.开发原型 我们为计算机产品经销商开发一个进销存的程序。用MS Access 数据库,创 建的数据库名叫 ware.mdb. 在这个数据库中,建立表1,表2,表3,表4。
表1 商品明细表:
wareDetail 商品编号 商品名称 单价 厂商 库存 wareID(ch10) wareName(ch30) wPrice(Money) manifest(ch40) numInLib(int) 表2 流水账 wAccount 商品编号 进货数 出货数 日期 wareID(ch10) wQuantity(int) wSold(int) wDate(date)表3 库存表 wLib 总库存数 总库存金额 TotalNum(int) TotalMoney(Money) 表4 临时表wInOut 进货数 出货数 Quantity, Sold 3.ADO的使用方法. ADO2.0存在于Visual Basic 6.0的两个独立的库中 第一个称为 ADODB,在 References对话框中的名字是Microsoft ActiveX Data Objects 2.0 Library在这个库 中包含了所有的ADO对象。对于那些并不需要太多加强的ADO资源工程,应该使 用ADOR库。在References对话框中这个库称为Microsoft ActiveX Data Objects Recordset 2.1 Library 这个库只包含对Recordsets 的支持。Visual BASIC 6.0通过 ADO控件和 Recordset对象两种方法来使用ADO.下面介绍一下Recordset 对象 的使用方法.在visual basic 中加入如下代码:
dim myConnectstr as strng dim myRecordset as New ADODB.recordset myConnectstr="PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource=" App.Path "¥ware.mdb;Persist Security Info=False" myRecordset.CoursorLocation=AduseClient myRecordset.Open “select * from wDetail ”,myConnectstr,adOpenKeyset,adLockPessimistic 这样就可以对商品明细表追加纪录:
myRecordset.AddNew myRecordset.Fields("wareID") = "000001" myRecordset.Fields("wareName") = "Switch 3500" myRecordset.Fields("wPrice") = 4350 myRecordset.Fields("wManufect") = "Cisco" myRecordset.Update 获取表中的纪录数:
recordcnt=myRecordset.Recordcount 移动纪录指针 myRecordset.MoveFirst ‘移动到表的第一条纪录 myRecordset.MoveLast ‘移动到表的最后一条纪录 myRecordset.MovePrevious ‘移动到表的上一条纪录 myRecordset.MoveNext ‘移动到表的下一条纪录 删除当前纪录 myRecordset.Delete最后关闭纪录集,释放纪录集变量 myRecordset.Close Set myRecordset=Nothing 4.SQL的使用 上面所用的方法,只适合于对单个表的简单操作。如果是对表的数据作复杂 查询,或数据统计,用上述方法就非常不方便。一般情况下我们用SQL 语言结 合Connection 对象实现SQL 语句中最常用的是Select语句。该语句用来从数据库 表中检索数据或者完成其他一些功能。为了使用这条语句你必须知道你要检索的 字段名称,或者直接用星号来检索所有字段。下面是Select语句的基本语法:
SELECT[ALL | DISTINCT] [TOP xx[PERCENT]] select_list FROM table_name 5.结束语 本文所列举的仅仅是ADO和SQL的用法的一小部分,实际的应用中对ADO 的操作有时用ADO控件结合DATAGRID控件等显示数据也很方便。
参考文献:[1]Visual Basic 6 揭秘 Rob Thayer 著 电子工业出版社 [2]Visual Basic 6.0 程序设计 蒋斌 电子工业出版社 [3]Microsoft SQL Server 7.0 使用详解 Rob Kraft 机械工业出版社 [4]Visual BASIC 5.0中文版程序设计教程 魏源源等 电子工业出版社