第8章_3ADO编程

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

补8章ADO数据库编程本章要点:ADO的概念及其对象组成ADO各对象的作用利用ADO连接到各种数据库的方法ADO各对象的属性、方法的含义及其使用方法利用ADO编写数据库应用程序的方法8.1ADO对象模型概述8.1.1ADO的概念ADO(ActiveXDataObject)是DAO/RDO的后继产物,是微软最新的数据访问组件(微软数据访问组件简称MDAC)的一部分,MDAC的常用版本有MDAC2.5和MDAC2.7,ADO的最新的版本ADO.NET也包含在MDAC2.7中。ADO是基于OLEDB之上的面向对象的数据访问模型,OLEDB是Microsoft开发的一种高性能的、基于COM的数据访问技术,其作用是向应用程序提供一个统一的数据访问方法,而不需要考虑数据源的具体格式和存储方式。8.1.2ADO模型的对象1.基本对象(1)Connection对象(2)Recordset对象(3)Command对象(4)Field对象(5)Property对象(6)Parameter属性(7)Error对象2.集合对象(1)Errors集合对象(2)Parameters对象(3)Fields对象(4)Properties对象3.事件(1)ConnectionEvents类事件(2)RecordsetEvents类事件8.1.3ADO模型的编程模型ADO提供的对象可以完成以下活动:(1)连接到数据源,主要使用Connection对象。可选择开始一个事务。(2)执行SQL命令,使用Command对象。(3)可选择在SQL命令中指定列、表和值作为变量参数,主要使用Parameter对象。(4)执行命令,主要使用Command、Connection或Recordset对象。(5)如果命令是以按行返回的记录集,则将行存储在缓存中,主要使用Recordset对象。(6)可选择创建缓存视图,以便能对数据进行排序、筛选和定位,主要使用Recordset对象。(7)对记录集中的数据进行添加、删除或更改操作,主要使用Recordset对象。(8)在适当情况下,使用缓存中的更改内容来更新数据源,主要使用Recordset对象。(9)在使用事务之后,可以接受或拒绝在事务期间所作的更改,结束事务,主要使用Connection对象及事务处理方法。8.2Connection对象使用Connection对象的集合、方法和属性可执行下列操作:(1)在打开连接前使用ConnectionString、ConnectionTimeout和Mode属性对连接进行配置。(2)设置CursorLocation属性以便调用支持批更新的“客户端游标提供者”。(3)使用DefaultDatabase属性设置连接的默认数据库。(4)使用IsolationLevel属性为在连接上打开的事务设置隔离级别。(5)使用Provider属性指定OLEDB提供者。(6)使用Open方法建立到数据源的物理连接。使用Close方法将其切断。(7)使用Execute方法执行对连接的命令,并使用CommandTimeout属性对执行进行配置。(8)可使用BeginTrans、CommitTrans和RollbackTrans方法以及Attributes属性管理打开的连接上的事务(如果提供者支持则包括嵌套的事务)。(9)使用Errors集合检查数据源返回的错误(10)通过Version属性读取所使用的ADO执行版本。(11)使用OpenSchema方法获取数据库纲要信息。8.2.1Connection对象的常用属性1.Attributes属性2.CommandTimeout属性3.ConnectionString属性4.ConnectionTimeout属性5.CursorLocation属性6.DefaultDatabase属性7.IsolationLevel属性8.Mode属性9.Provider属性10.State属性11.Version属性8.2.2Connection对象的常用方法1.BeginTrans方法格式如下:level=Connection.BeginTrans()或Connection.BeginTrans2.CommitTrans方法格式如下:Connection.CommitTrans3.RollbackTrans方法格式如下:Connection.RollbackTrans4.Open方法语法格式如下:connection.OpenConnectionString,UserID,Password,OpenOptions5.Close方法使用格式如下:Connection.Close6.Execute方法格式1:connection.ExecuteCommandText,RecordsAffected,Options格式2:Setrecordset=connection.Execute(CommandText,RecordsAffected,Options)7.Cancel方法8.OpenSchema方法8.2.3连接到数据库的方法1.通过DSN建立连接【例10-1】在第7章建立了两个DSN,分别是jiaoxue和SQLPubs,请编写一个连接到这两个DSN的程序。程序界面如图。然后执行时,单击“建立到SQLPubs的连接”将建立与SQLPubsDSN的连接,单“建立到jiaoxueDSN的连接”将建立与jiaoxueDSN的连接。题意分析:为建立连接,可先给Connection对象的ConnectionString属性赋值为需要建立连接的参数,然后执行Connection对象不带参数的Open方法,也可在调用Connection的Open方法时指定连接字符串。此题需注意连接到SQLDSN和连接到MicrosoftAccessDSN的区别。2.直接使用数据库文件名称或数据源名称建立连接(1)使用SQLServer普通安全模式建立到Pubs数据库的连接(2)SQLServer信任安全模式建立到Pubs数据库的连接【例10-2】直接建立到SQLServer2000的数据库“Pubs”的连接和到当前目录下的MicrosoftAccess数据库“教学”的连接。程序的设计界面如图10-5所示。运行时单击“建立到SQLPubs数据库的连接”将以两种方法建立到SQLServer数据库Pubs的连接,单击“建立到Access教学数据库的连接”将以两种方式建立到Access数据库“教学”的连接。8.2.4通过打开的连接执行SQL语句【例10-3】通过Connection的Execute方法来执行SQL语句,为当前目录下的“教学”数据库中的“学生表”添加一条记录,记录的“学号”和“姓名”值分别为“0001020”和“周小华”。题意分析:先采用直接使用数据库名的方法连接到Access数据库“教学”,然后通过调用Connection的Execute方法来执行SQL-Insert语句。(a)执行前(b)执行后8.3RecordSet对象8.3.1Recordset对象简介在ADO中定义了四种不同的游标类型:(1)动态游标(2)键集游标(3)静态游标(4)仅向前游标8.3.2Recordset对象的属性(1)AbsolutePage、PageCount与PageSize属性(2)AbsolutePosition和RecordCount属性(3)ActiveConnection属性(4)CacheSize属性(5)CursorLocation属性(6)CursorType属性(7)EditMode属性(8)Filter属性(9)LockType属性(10)MaxRecords属性(11)Sort属性(12)Source属性(13)State属性8.3.3Recordset对象的方法1.Cancel方法该方法的使用格式如下:Object.Cancel2.CancelUpdate方法该方法的使用格式如下:Recordset.CancelUpdate3.CancelBatch方法该方法的使用格式如下:Recordset.CancelBatchAffectRecords4.NextRecordSet方法该命令的格式如下:SetRecordset2=Recordset1.NextRecordset(RecordsAffected)5.Open方法Open方法的使用格式如下:Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options6.Resync方法该方法的使用格式如下:Recordset.ResyncAffectRecords,ResyncValues7.Save方法该方法的使用格式如下:Recordset.SaveFileName,PersistFormat8.UpdateBatch方法该方法的使用格式如下:Recordset.UpdateBatchAffectRecords9.GetRows方法调用格式如下:Array=Recordset.GetRows()10.Supports方法该方法的使用格式如下:boolean=Recordset.Supports(CursorOptions)8.3.4访问Recordset对象字段的方法8.3.5Recordset对象应用实例【例10-4】使用ADO的Recordset对象把当前目录下的“教学”数据库中的“学生表”中的数据显示出来。程序设计界面如图10-7(a)所示。程序刚运行时,只有“连接”按钮可用,单击该按钮,将建立到当前目录下的“教学”数据库的连接,然后“连接”按钮不可用,“显示”按钮可用。单击“显示”按钮,将把“学生表”中的数据显示在MsFlexGrid控件中,同时“显示”按钮不可用,“关闭”按钮可用,如图10-7(b)所示。单击“关闭”按钮,将关闭记录集和连接并结束程序。题意分析:本题要用MsFlexGrid控件显示表的内容,而MsFlexGrid控件并不是VB的标准控件,应该首先把它加载到VB的工程中,加载的方法是执行【工程】→【部件】命令,在出现的部件对话框中选中“MicrosoftFlexGridControl6.0”后按“确定”按钮。要在MSFlexGrid控件中显示数据表中的内容,可通过循环把表中的各字段的内容依次赋值到MsFlexGrid的MatrixText属性中。8.4Command对象8.4.1Command对象简介Command对象定义了将对数据源执行的指定命令。通过Command对象可以执行SQL语句、数据库中的存储过程等,虽然Connection对象的Execute方法也能够执行SQL语句,但Command对象还提供了参数化查询等专门的运行方式。利用Command对象可以查询数据库中的记录以形成记录集,还可以更改数据库的结构。但由于数据提供者提供的功能不同,在引用某些Command集合、方法或属性时可能会产生错误,需要使用者查询相应的参考书籍。8.4.2Command对象的常用属性1.ActiveConnection属性2.CommandText属性3.CommandTimeout属性4.CommandType属性5.Prepared属性6.State属性8.4.3Command对象的常用方法1.Cancel方法2.Execute方法8.4.4Command对象应用实例【例10-5】已知“教学管理”数据库位于当前目录下,请使用Command对象查询出自动化专业的全部学生的学号、姓名和年级,并调用例10-4中的ShowData方法把查询结果显示出来。程序设计界面如图10-8(a)所示。程序刚运行时,只有“连接”按钮可用,单击该按钮,将建立到当前目录下的“教学管理”数据库的连接,然后“连接”按钮不可用,“显示查询结果”按钮可用。单击“显示查询结果”按钮,将把查询结果的数据显示在MsFlexGrid控件中,同时“显示查询结果”按钮

1 / 49
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功