第六章ADO数据库技术及应用

上传人:桔**** 文档编号:580014098 上传时间:2024-08-28 格式:PPT 页数:27 大小:178.52KB
返回 下载 相关 举报
第六章ADO数据库技术及应用_第1页
第1页 / 共27页
第六章ADO数据库技术及应用_第2页
第2页 / 共27页
第六章ADO数据库技术及应用_第3页
第3页 / 共27页
第六章ADO数据库技术及应用_第4页
第4页 / 共27页
第六章ADO数据库技术及应用_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《第六章ADO数据库技术及应用》由会员分享,可在线阅读,更多相关《第六章ADO数据库技术及应用(27页珍藏版)》请在金锄头文库上搜索。

1、一、一、ADO数据库技术概述数据库技术概述n1、ADO概述概述n ActiveX Data Objects (ADO) 是微软最新的是微软最新的数据访问技术。它被设计用来同新的数据访问数据访问技术。它被设计用来同新的数据访问层层OLE DB Provider一起协同工作,以提供通一起协同工作,以提供通用数据访问(用数据访问(Universal Data Access)。)。OLE DB是一个低层的数据访问接口,用它可是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。以及电子邮件系统及自定义的商

2、业对象。 第六章第六章 ADO数据库技术及应用数据库技术及应用nADO向我们提供了一个熟悉的,高层的对向我们提供了一个熟悉的,高层的对OLE DB的的Automation封装接口。封装接口。对那些熟悉对那些熟悉RDO的程序员来说,你可以把的程序员来说,你可以把OLE DB比比作是作是ODBC驱动程序。如同驱动程序。如同RDO对象是对象是ODBC驱动程驱动程序接口一样,序接口一样,ADO对象是对象是OLE DB的接口;如同不同的接口;如同不同的数据库系统需要它们自己的的数据库系统需要它们自己的ODBC驱动程序一样,不驱动程序一样,不同的数据源要求它们自己的同的数据源要求它们自己的OLE DB提供

3、者(提供者(OLE DB provider)。)。目前,虽然目前,虽然OLE DB提供者比较少,但微软正积极推广提供者比较少,但微软正积极推广该技术,并打算用该技术,并打算用OLE DB取代取代ODBC。 2、基本的、基本的 ADO 编程模型编程模型ADO 提供执行以下操作的方式:提供执行以下操作的方式:连接到数据源。同时,可确定对数据源的所有更改是连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。否已成功或没有发生。指定访问数据源的命令,同时可带变量参数,或优化指定访问数据源的命令,同时可带变量参数,或优化执行。执行。执行命令。执行命令。如果这个命令使数据按表中的行的形式返回

4、,则将这如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。些行存储在易于检查、操作或更改的缓存中。适当情况下,可使用缓存行的更改内容来更新数据源。适当情况下,可使用缓存行的更改内容来更新数据源。提供常规方法检测错误(通常由建立连接或执行命令提供常规方法检测错误(通常由建立连接或执行命令造成)。造成)。3、ADO 对象模型每个 Connection、Command、Recordset 和 Field 对象都有 Properties 集合。4、ADO 编程模型详细资料编程模型详细资料n以下元素是以下元素是 ADO 编程模型中的关键部分:编程模型中的关键部分:连接

5、:连接:通过通过“连接连接”可从应用程序访问数据源,连接可从应用程序访问数据源,连接是交换数据所必需的环境。通过如是交换数据所必需的环境。通过如 Microsoft Internet Information Server 作为媒介,应用程序可作为媒介,应用程序可直接(有时称为双层系统)或间接(有时称为三层系直接(有时称为双层系统)或间接(有时称为三层系统)访问数据源。对象模型使用统)访问数据源。对象模型使用 Connection 对象使对象使连接概念得以具体化。连接概念得以具体化。命令:命令:通过已建立的连接发出的通过已建立的连接发出的“命令命令”可以某种方可以某种方式来操作数据源。一般情况下

6、,命令可以在数据源中式来操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中以行的格式检索添加、删除或更新数据,或者在表中以行的格式检索数据。对象模型用数据。对象模型用 Command 对象来体现命令概念。对象来体现命令概念。Command 对象使对象使 ADO 能够优化对命令的执行。能够优化对命令的执行。参数:通常,命令需要的变量部分即参数:通常,命令需要的变量部分即“参数参数”可以在命令发布之前进行更改。例如,可重复可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令,但每一次均可更改发出相同的数据检索命令,但每一次均可更改指定的检索信息。参数对执行其行为类

7、似函数指定的检索信息。参数对执行其行为类似函数的命令非常有用,这样就可知道命令是做什么的命令非常有用,这样就可知道命令是做什么的,但不必知道它如何工作。的,但不必知道它如何工作。对象模型用对象模型用 Parameter 对象来体现参数概念。对象来体现参数概念。记录集:记录集:n如果命令是在表中按信息行返回数据的查询(行返如果命令是在表中按信息行返回数据的查询(行返回查询),则这些行将会存储在本地。回查询),则这些行将会存储在本地。n对象模型将该存储体现为对象模型将该存储体现为 Recordset 对象。但是,对象。但是,不存在仅代表单独一个不存在仅代表单独一个 Recordset 行的对象。行

8、的对象。n记录集是在行中检查和修改数据最主要的方法。记录集是在行中检查和修改数据最主要的方法。Recordset 对象用于:对象用于: 指定可以检查的行。指定可以检查的行。移动行。移动行。指定移动行的顺序。指定移动行的顺序。添加、更改或删除行。添加、更改或删除行。通过更改行更新数据源。通过更改行更新数据源。管理管理 Recordset 的总体状态的总体状态。 字段:字段:一个记录集行包含一个或多个一个记录集行包含一个或多个“字段字段”。如果。如果将记录集看作二维网格,字段将排列构成将记录集看作二维网格,字段将排列构成“列列”。每。每一字段(列)都分别包含有名称、数据类型和值的属一字段(列)都分

9、别包含有名称、数据类型和值的属性,正是在该值中包含了来自数据源的真实数据。对性,正是在该值中包含了来自数据源的真实数据。对象模型以象模型以 Field 对象体现字段。对象体现字段。错误属性集合事件5、使用对象的、使用对象的 ADO 编程模型编程模型nADO 的目标是访问、编辑和更新数据源,而编程模型体现了的目标是访问、编辑和更新数据源,而编程模型体现了为完成该目标所必需的系列动作的顺序。为完成该目标所必需的系列动作的顺序。ADO 提供类和对象提供类和对象以完成以下活动:以完成以下活动: 1.连接到数据源连接到数据源 (Connection),并可选择开始一个事务。并可选择开始一个事务。2.可选

10、择创建对象来表示可选择创建对象来表示 SQL 命令命令 (Command)。3.可选择在可选择在 SQL 命令中指定列、表和值作为变量参数命令中指定列、表和值作为变量参数 (Parameter)。4.执行命令执行命令 (Command、Connection 或或 Recordset)。5.如果命令按行返回,则将行存储在缓存中如果命令按行返回,则将行存储在缓存中 (Recordset)。6.可选择创建缓存视图,以便能对数据进行排序、筛选和定位可选择创建缓存视图,以便能对数据进行排序、筛选和定位 (Recordset)。7.通过添加、删除或更改行和列编辑数据通过添加、删除或更改行和列编辑数据 (R

11、ecordset)。8.在适当情况下,使用缓存中的更改内容来更新数据源在适当情况下,使用缓存中的更改内容来更新数据源 (Recordset)。9.如果使用了事务,则可以接受或拒绝在完成事务期间所作的更改。如果使用了事务,则可以接受或拒绝在完成事务期间所作的更改。结束事务结束事务 (Connection)。6、Connection 对象nConnection 对象代表打开的、与数据源的连接对象代表打开的、与数据源的连接n使用使用 Connection 对象的集合、方法、和属性可对象的集合、方法、和属性可执行下列操作:执行下列操作:在打开连接前使用在打开连接前使用 ConnectionString

12、、ConnectionTimeout 和和 Mode 属性对连接进行配置。属性对连接进行配置。设置设置 CursorLocation 属性以便调用支持批更新的属性以便调用支持批更新的“客户端游标提供者客户端游标提供者”。使用使用 DefaultDatabase 属性设置连接的默认数据库。属性设置连接的默认数据库。使用使用 Provider 属性指定属性指定 OLE DB 提供者。提供者。使用使用 Open 方法建立到数据源的物理连接。使用方法建立到数据源的物理连接。使用 Close 方法将其断开。方法将其断开。使用使用 Execute 方法执行对连接的命令,并使用方法执行对连接的命令,并使用

13、CommandTimeout 属属性对执行进行配置。性对执行进行配置。使用使用 Errors 集合检查数据源返回的错误。集合检查数据源返回的错误。通过通过 Version 属性读取使用中的属性读取使用中的 ADO 执行版本。执行版本。使用使用 OpenSchema 方法获取数据库模式信息。方法获取数据库模式信息。nADO的的Connection对象的几种连接数据库对象的几种连接数据库的方法和形式:的方法和形式:静态静态ODBC数据源数据源DSN连接式连接式动态动态ODBC数据驱动连接式数据驱动连接式OLEDB数据提供者连接方式数据提供者连接方式n举例说明:举例说明:7、Recordset 对象

14、nRecordset 对象表示的是来自基本表或命令对象表示的是来自基本表或命令执行结果的记录全集。任何时候,执行结果的记录全集。任何时候,Recordset 对象所指的当前记录均为集合内的单个记录。对象所指的当前记录均为集合内的单个记录。n可使用可使用 Recordset 对象操作来自提供者的数对象操作来自提供者的数据。使用据。使用 ADO 时,通过时,通过 Recordset 对象可对象可对几乎所有数据进行操作。所有对几乎所有数据进行操作。所有 Recordset 对象均使用记录(行)和字段(列)进行构对象均使用记录(行)和字段(列)进行构造。由于提供者所支持的功能不同,某些造。由于提供者所

15、支持的功能不同,某些 Recordset 方法或属性有可能无效。方法或属性有可能无效。nRecordset主要操作功能如下(举例说明)主要操作功能如下(举例说明)通过举例说明以下功能:通过举例说明以下功能:打开打开 Recordset 时,当前记录位于第一个记录时,当前记录位于第一个记录(如果有),并且(如果有),并且 BOF 和和 EOF 属性被设置为属性被设置为 False。如果没有记录,如果没有记录,BOF 和和 EOF 属性设置是属性设置是 True。假设提供者支持相关的功能,可以使用假设提供者支持相关的功能,可以使用 MoveFirst、MoveLast、MoveNext 和和 Mo

16、vePrevious 方法以及方法以及 Move 方法,和方法,和 AbsolutePosition、AbsolutePage 和和 Filter 属属性来重新确定当前记录的位置。仅向前性来重新确定当前记录的位置。仅向前 Recordset 对象只支持对象只支持 MoveNext 方法。当使用方法。当使用 Move 方法访问每个记录(或枚举方法访问每个记录(或枚举 Recordset)时,可使用时,可使用 BOF 和和 EOF 属性查看是否移动已经属性查看是否移动已经超过了超过了 Recordset 的开始或结尾。的开始或结尾。Recordset 对象可支持两类更新:立即更新和批更新。对象可支

17、持两类更新:立即更新和批更新。使用立即更新,一旦调用使用立即更新,一旦调用 Update 方法,对数据的所方法,对数据的所有更改将被立即写入基本数据源。也可以使用有更改将被立即写入基本数据源。也可以使用 AddNew 和和 Update 方法将值的数组作为参数传递,方法将值的数组作为参数传递,同时更新记录的若干字段。同时更新记录的若干字段。如果提供者支持批更新,可以使提供者将多个记录的如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用更改存入缓存,然后使用 UpdateBatch 方法在单个调方法在单个调用中将它们传送给数据库。这种情况应用于使用用中将它们传送给数据库。这种情

18、况应用于使用 AddNew、Update 和和 Delete 方法所做的更改。调用方法所做的更改。调用 UpdateBatch 方法后,可以使用方法后,可以使用 Status 属性检查任属性检查任何数据冲突并加以解决。何数据冲突并加以解决。8、Command 对象对象 (ADO)nCommand对象的主要目的是执行参数化的存储对象的主要目的是执行参数化的存储过程。其形式要么是临时准备过程。其形式要么是临时准备(prepared),),要么要么是持久的预编译(是持久的预编译(precompiled)过的过的SQL语句。语句。如果想(存储)一个或多个查询以供在同一如果想(存储)一个或多个查询以供在

19、同一Connection上多次执行,上多次执行,Command对象也是很对象也是很有用的。有用的。n当想创建当想创建Recordset时,一种高效的方法是绕过时,一种高效的方法是绕过Command对象而采用对象而采用Recordset.Open方法。方法。 二、二、ADO应用技术应用技术n1、ADO数据库连接方式主要有以下三种:数据库连接方式主要有以下三种:静态静态ODBC数据源数据源DSN连接式连接式n举例:举例: cnnData.Open DSN=Data_Nwind;UID=;PWD=;动态动态ODBC数据驱动连接式数据驱动连接式n举例:举例: cnnData.Open Driver=M

20、icrosoft Access Driver _(*.mdb); DBQ= & App.Path & data.mdb; UID=Admin;Password= OLEDB数据提供者连接方式数据提供者连接方式n举例:举例: cndata.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & data.mdb & ;Persist Security Info=FalsenADO创建数据库连接思路创建数据库连接思路定义全局数据库连接变量自动生成连接参数ConnectionString通过Conn.Open调用连接参数开启建立

21、数据库连接通道成功2、如何添加一条记录、如何添加一条记录n1)思路)思路建立数据库连接添加数据准备工作数据校验打开要添加记录的数据表添加更新数据-AddNew-Update将变量值赋给字段n2)具体实现程序)具体实现程序 cnLink.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & data.mdb & ;Persist Security Info=False Set rstLink = New ADODB.Recordset rstLink.Open select * from 课程信息表课程信息表, cnLin

22、k, 3, 3 rstLink.AddNew For i = 1 To 5 If Text1(i) Then rstLink(i).Value = Text1(i) Next rstLink.Update rstLink.Close2、显示记录、显示记录n1)思路)思路建立数据库连接建立数据库连接通过查询条件写通过查询条件写SQL查询语句查询语句通过通过rst对象打开相应的表,并执行查询找出符对象打开相应的表,并执行查询找出符合查询条件的记录合查询条件的记录将记录集结果返回到界面的变量中将记录集结果返回到界面的变量中查询结束,返回查询结果查询结束,返回查询结果n2)具体实现)具体实现 Set

23、cnLink = New ADODB.Connection cnLink.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source= & App.Path & data.mdb & ;Persist Security Info=False Set rstLink = New ADODB.Recordset rstLink.Open “select * from 课程信息表课程信息表 where 课程名称课程名称=数值数值分析分析, cnLink, 3, 3 For i = 1 To 5 Text1(i).Text = If rstLink(i) The

24、n Text1(i).Text = rstLink(i).Value Next rstLink.close3、如何移动浏览记录、如何移动浏览记录n1)思路)思路建立数据库连接建立数据库连接通过查询条件写通过查询条件写SQL查询语句查询语句通过通过rst对象打开相应的表,并执行查询找出符合查询对象打开相应的表,并执行查询找出符合查询条件的记录条件的记录通过四个按钮执行通过四个按钮执行rst的的 MoveFirst、MoveLast、MoveNext 以及以及 MovePrevious 方法方法通过界面变量返回查询结果通过界面变量返回查询结果n2)实现方法)实现方法PublicSubMoveAny

25、(intChoiceAsInteger,_rstTempAsRecordset)使用指定方法捕获使用指定方法捕获BOF和和EOF。SelectCaseintChoiceCase1rstTemp.MoveFirstCase2rstTemp.MoveLastCase3rstTemp.MoveNextIfrstTemp.EOFThenMsgBoxAlreadyatendofrecordset!rstTemp.MoveLastEndIfCase4rstTemp.MovePreviousIfrstTemp.BOFThenMsgBoxAlreadyatbeginningofrecordset!rstTem

26、p.MoveFirstEndIfEndSelectEndSub4、删除记录、删除记录n1)思路)思路1建立数据库连接建立数据库连接通过查询条件写通过查询条件写SQL删除语句删除语句提出删除警告提出删除警告通过通过rst对象打开相应的表,并执行删除命令对象打开相应的表,并执行删除命令n思路思路2建立数据库连接建立数据库连接通过通过conn.Excute(SQL)直接执行删除命令直接执行删除命令n2)实现方法)实现方法(2种种)If vbOK = MsgBox(您真的要删除这条记录吗?您真的要删除这条记录吗?, vbOKCancel + vbQuestion, 警告警告) Then cnnData

27、.Execute delete from 基本信息表基本信息表 where ID=11 End IfIf vbOK = MsgBox(您真的要删除这条记录吗?, vbOKCancel + vbQuestion, 警告) Then rstData.Open delete from 基本信息表 where ID=11 ,cnnData,3,3End If5、修改记录、修改记录建立数据库连接建立数据库连接通过通过rst对象打开相应的表,并执行查询找出符对象打开相应的表,并执行查询找出符合查询条件的记录合查询条件的记录在可编辑的界面上显示数据记录在可编辑的界面上显示数据记录修改界面变量修改界面变量通过

28、通过Update方法更新数据方法更新数据通过界面显示成功信息通过界面显示成功信息 2)实现方法实现方法 If Text2(0) Then rstData.open select * from 工程硕士成绩表工程硕士成绩表 where ID= & CInt(Text2(0) Else rstData.open select * from 工程硕士成绩表工程硕士成绩表 rstData.AddNew End If For i = 1 To Text2.UBound If Trim(Text2(i) Then rstData(i) = Trim(Text2(i) Else rstData(i) = Null End If Next rstData.Update MsgBox 保存数据成功!保存数据成功!, 0 + 64, 提示提示

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号