




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
在VB6.0数据库程序开发中使用ADO 和SQL 摘要:本文用实例说明了通过ADO处理数据库表中数据的实现方法,并介绍了利用SQL语句实现对数据作数学统计的方法关键词:ADOSQL数据库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访问数据库是通过访问OLEDB使用程序和OLEDB供给程序来进行的,它在封装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的用法做一些探讨。 开发原型我们为计算机产品经销商开发一个进销存的程序。用MS Access 数据库,创建的数据库名叫 ware.mdb. 在这个数据库中,建立表,表,表,表。表1 商品明细表: wareDetail商品编号 商品名称 单价 厂商 库存wareID(ch10) wareName(ch30) wPrice(Money) manifest(ch40) numInLib(int)表2 流水账 wAccount商品编号 进货数 出货数 日期wareID(ch10) wQuantity(int) wSold(int) wDate(date)表库存表 wLib总库存数 总库存金额TotalNum(int) TotalMoney(Money)表临时表wInOut进货数 出货数Quantity, SoldADO的使用方法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.recordsetmyConnectstr=PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource= & App.Path & /ware.mdb;Persist Security Info=FalsemyRecordset.CoursorLocation=AduseClientmyRecordset.Open “select * from wDetail ”,myConnectstr,adOpenKeyset,adLockPessimistic这样就可以对商品明细表追加纪录:myRecordset.AddNewmyRecordset.Fields(wareID) = 000001myRecordset.Fields(wareName) = Switch 3500myRecordset.Fields(wPrice) = 4350myRecordset.Fields(wManufect) = CiscomyRecordset.Update获取表中的纪录数:recordcnt=myRecordset.Recordcount移动纪录指针myRecordset.MoveFirst 移动到表的第一条纪录myRecordset.MoveLast 移动到表的最后一条纪录myRecordset.MovePrevious 移动到表的上一条纪录myRecordset.MoveNext 移动到表的下一条纪录删除当前纪录myRecordset.Delete最后关闭纪录集,释放纪录集变量myRecordset.CloseSet myRecordset=NothingSQL的使用 上面所用的方法,只适合于对单个表的简单操作。如果是对表的数据作复杂查询,或数据统计,用上述方法就非常不方便。一般情况下我们用SQL 语言结合Connection 对象实现SQL 语句中最常用的是Select语句。该语句用来从数据库表中检索数据或者完成其他一些功能。为了使用这条语句你必须知道你要检索的字段名称,或者直接用星号来检索所有字段。下面是Select语句的基本语法: SELECTALL DISTINCT TOP xxPERCENT select_list FROM table_name WHERE search_criteriajoin_criteriaANDOR search_criteria GROUP BY ALLaggregate_free_expression,aggregate_free_expression. HAVING search_conditions ORDER BYfield_listASCDESC其中:ALL 定义每一行都将返回,包括重复纪录。DISTINCT定义只返回不重复的纪录。TOP定义你需要的得到的返回纪录的前几条。在数字xx后用PERCENT来说明只返回前面百分之几条纪录。select_list列出要检索的表的列名。table_name列出要检索的表名search_criteria列出要检索的表的列名join_criteria列出一个表中用来和另一个表的某个列连接的列名aggregate_frepage_breake_expression 是一个不包含聚集的表达式。Field_list列出了数据排序的顺序ASC定义按照升序排序DESC定义按照降序排序。下面我们来举例说明。你希望检索商品名细表中的信息可使用如下语句: SELECT * FROM waredetial 关键字ORDER BY要求列名以确定按哪一列排序。这里我们选定按wareID排序,如果你希望按列wareID的字母顺序排列可采用下面的代码:SELECT wareID FROM wareDetial ORDER BY wareID默认是按升序排列如果想按降序排列可用如下代码:SELECT wareID FROM wareDetial ORDER BY wareID DESC如果你想选择多列,使用下面的语句SELECT wareID,wareName FROM wareDetial ORDER BY wareID 用WHERE 关键字来限制选择范围。如果你想选择wareDetial中wareName 列值为“cisco6000”的行。你可用下面的代码实现: SELECT * FROM wareDetial WHERE wareName=”cisco6000” ORDER BY wareID除了SELECT 语句,标准SQL语句还有INSERT UPDATE DELETE等,在此不再作具体介绍实际的应用经常要对表中的某列或多列数据进行数学运算,这就需要如COUNT(),SUM(),AVG(),MAX(),MIN() 等数学函数。下面对这些函数的用法作具体说明。先建立一个与数据库的连接dim myConnectstr as strngdim myCnt as New ADODB.connectionmyConnectstr=PROVIDER=Microsoft.Jet.OLEDB.4.0;DataSource= & App.Path & /ware.mdb;Persist Security Info=FalsemyCnt.Open myConnectstr若要产生某种商品的总进货数以及总出货数可用以下代码:exeStr =”insert into wInOut select sum(wQuantity) as Quantity, sum(wSold) as Sold from wAccount where wareID= 000001”若要产生库存的总数以及总库存金额可用以下代码:exeStr = insert into wLib select sum(numInlib) as totalNum,sum(numInLib*wPrice) as totalMoney from wDetail 运行上述代码:myCnt.Execute exeStr关闭连接myCnt.Close在应用程序的开发中,基于数据库的不同,只在连接的数据源部分作相应的修改,其它的部分无需改动。 结束语 本文所列举的仅仅是ADO和SQL的用法
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 英国罗伯特与学前教育发展史
- 工厂设计答辩结论撰写要点
- 工程项目管理学习资源试题及答案
- 行政管理经济法申诉案例试题及答案
- 社会教育节约用水实施路径
- 2025年工程经济经典例题试题及答案
- 冲刺抢分卷03 备战2025年高考考前仿真模拟卷冲刺抢分卷化学试题03 (辽宁、黑龙江、吉林、内蒙古专用) 含解析
- 生产航天无人机领域装置、海底深水探测动力装置、工业母机直线电机项目可行性研究报告写作模板-备案审批
- 如何优化工程绩效评估试题及答案
- 现代工程经济应用实践试题及答案
- 2024国有土地房屋买卖合同
- 招标采购专项治理自查报告
- 2023-2024学年江苏省昆山市七下英语期末统考试题含答案
- 2024中考语文复习 文学文化常识
- 国家开放大学《Python语言基础》实验4:条件分支结构基本应用参考答案
- 口腔医院护理人员礼仪培训课件
- 钢结构工程施工组织设计完整版
- 《田间药效试验》课件
- JJG 443-2023燃油加油机(试行)
- 机械工业出版社2020《人工智能导论》课程第1章 绪论
- 教育教学实习教案幼儿园
评论
0/150
提交评论