ADO数据库技术及应用.ppt

上传人:牧羊曲112 文档编号:6501314 上传时间:2023-11-07 格式:PPT 页数:27 大小:207.99KB
返回 下载 相关 举报
ADO数据库技术及应用.ppt_第1页
第1页 / 共27页
ADO数据库技术及应用.ppt_第2页
第2页 / 共27页
ADO数据库技术及应用.ppt_第3页
第3页 / 共27页
ADO数据库技术及应用.ppt_第4页
第4页 / 共27页
ADO数据库技术及应用.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《ADO数据库技术及应用.ppt》由会员分享,可在线阅读,更多相关《ADO数据库技术及应用.ppt(27页珍藏版)》请在三一办公上搜索。

1、一、ADO数据库技术概述,1、ADO概述 ActiveX Data Objects(ADO)是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。,第六章 ADO数据库技术及应用,ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序

2、接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。,2、基本的 ADO 编程模型,ADO 提供执行以下操作的方式:连接到数据源。同时,可确定对数据源的所有更改是否已成功或没有发生。指定访问数据源的命令,同时可带变量参数,或优化执行。执行命令。如果这个命令使数据按表中的行的形式返回,则将这些行存储在易于检查、操作或更改的缓存中。适当情况下,可使用缓存行的更改内容来更新数据源。提

3、供常规方法检测错误(通常由建立连接或执行命令造成)。,3、ADO 对象模型,每个 Connection、Command、Recordset 和 Field 对象都有 Properties 集合。,4、ADO 编程模型详细资料,以下元素是 ADO 编程模型中的关键部分:连接:通过“连接”可从应用程序访问数据源,连接是交换数据所必需的环境。通过如 Microsoft Internet Information Server 作为媒介,应用程序可直接(有时称为双层系统)或间接(有时称为三层系统)访问数据源。对象模型使用 Connection 对象使连接概念得以具体化。命令:通过已建立的连接发出的“命令

4、”可以某种方式来操作数据源。一般情况下,命令可以在数据源中添加、删除或更新数据,或者在表中以行的格式检索数据。对象模型用 Command 对象来体现命令概念。Command 对象使 ADO 能够优化对命令的执行。,参数:通常,命令需要的变量部分即“参数”可以在命令发布之前进行更改。例如,可重复发出相同的数据检索命令,但每一次均可更改指定的检索信息。参数对执行其行为类似函数的命令非常有用,这样就可知道命令是做什么的,但不必知道它如何工作。对象模型用 Parameter 对象来体现参数概念。,记录集:如果命令是在表中按信息行返回数据的查询(行返回查询),则这些行将会存储在本地。对象模型将该存储体现

5、为 Recordset 对象。但是,不存在仅代表单独一个 Recordset 行的对象。记录集是在行中检查和修改数据最主要的方法。Recordset 对象用于:指定可以检查的行。移动行。指定移动行的顺序。添加、更改或删除行。通过更改行更新数据源。管理 Recordset 的总体状态。,字段:一个记录集行包含一个或多个“字段”。如果将记录集看作二维网格,字段将排列构成“列”。每一字段(列)都分别包含有名称、数据类型和值的属性,正是在该值中包含了来自数据源的真实数据。对象模型以 Field 对象体现字段。错误属性集合事件,5、使用对象的 ADO 编程模型,ADO 的目标是访问、编辑和更新数据源,而

6、编程模型体现了为完成该目标所必需的系列动作的顺序。ADO 提供类和对象以完成以下活动:连接到数据源(Connection),并可选择开始一个事务。可选择创建对象来表示 SQL 命令(Command)。可选择在 SQL 命令中指定列、表和值作为变量参数(Parameter)。执行命令(Command、Connection 或 Recordset)。如果命令按行返回,则将行存储在缓存中(Recordset)。可选择创建缓存视图,以便能对数据进行排序、筛选和定位(Recordset)。通过添加、删除或更改行和列编辑数据(Recordset)。在适当情况下,使用缓存中的更改内容来更新数据源(Recor

7、dset)。如果使用了事务,则可以接受或拒绝在完成事务期间所作的更改。结束事务(Connection)。,6、Connection 对象,Connection 对象代表打开的、与数据源的连接使用 Connection 对象的集合、方法、和属性可执行下列操作:在打开连接前使用 ConnectionString、ConnectionTimeout 和 Mode 属性对连接进行配置。设置 CursorLocation 属性以便调用支持批更新的“客户端游标提供者”。使用 DefaultDatabase 属性设置连接的默认数据库。使用 Provider 属性指定 OLE DB 提供者。使用 Open 方

8、法建立到数据源的物理连接。使用 Close 方法将其断开。使用 Execute 方法执行对连接的命令,并使用 CommandTimeout 属性对执行进行配置。使用 Errors 集合检查数据源返回的错误。通过 Version 属性读取使用中的 ADO 执行版本。使用 OpenSchema 方法获取数据库模式信息。,ADO的Connection对象的几种连接数据库的方法和形式:静态ODBC数据源DSN连接式动态ODBC数据驱动连接式OLEDB数据提供者连接方式举例说明:,7、Recordset 对象,Recordset 对象表示的是来自基本表或命令执行结果的记录全集。任何时候,Recordse

9、t 对象所指的当前记录均为集合内的单个记录。可使用 Recordset 对象操作来自提供者的数据。使用 ADO 时,通过 Recordset 对象可对几乎所有数据进行操作。所有 Recordset 对象均使用记录(行)和字段(列)进行构造。由于提供者所支持的功能不同,某些 Recordset 方法或属性有可能无效。Recordset主要操作功能如下(举例说明),通过举例说明以下功能:,打开 Recordset 时,当前记录位于第一个记录(如果有),并且 BOF 和 EOF 属性被设置为 False。如果没有记录,BOF 和 EOF 属性设置是 True。假设提供者支持相关的功能,可以使用 Mo

10、veFirst、MoveLast、MoveNext 和 MovePrevious 方法以及 Move 方法,和 AbsolutePosition、AbsolutePage 和 Filter 属性来重新确定当前记录的位置。仅向前 Recordset 对象只支持 MoveNext 方法。当使用 Move 方法访问每个记录(或枚举 Recordset)时,可使用 BOF 和 EOF 属性查看是否移动已经超过了 Recordset 的开始或结尾。,Recordset 对象可支持两类更新:立即更新和批更新。使用立即更新,一旦调用 Update 方法,对数据的所有更改将被立即写入基本数据源。也可以使用 A

11、ddNew 和 Update 方法将值的数组作为参数传递,同时更新记录的若干字段。如果提供者支持批更新,可以使提供者将多个记录的更改存入缓存,然后使用 UpdateBatch 方法在单个调用中将它们传送给数据库。这种情况应用于使用 AddNew、Update 和 Delete 方法所做的更改。调用 UpdateBatch 方法后,可以使用 Status 属性检查任何数据冲突并加以解决。,8、Command 对象(ADO),Command对象的主要目的是执行参数化的存储过程。其形式要么是临时准备(prepared),要么是持久的预编译(precompiled)过的SQL语句。如果想(存储)一个或

12、多个查询以供在同一Connection上多次执行,Command对象也是很有用的。当想创建Recordset时,一种高效的方法是绕过Command对象而采用Recordset.Open方法。,二、ADO应用技术,1、ADO数据库连接方式主要有以下三种:静态ODBC数据源DSN连接式举例:cnnData.Open DSN=Data_Nwind;UID=;PWD=;动态ODBC数据驱动连接式举例:cnnData.Open Driver=Microsoft Access Driver _(*.mdb);DBQ=Persist Security Info=False,ADO创建数据库连接思路,定义全局

13、数据库连接变量,自动生成连接参数ConnectionString,通过Conn.Open调用连接参数,开启建立数据库连接通道成功,2、如何添加一条记录,1)思路,建立数据库连接,添加数据准备工作,数据校验,打开要添加记录的数据表,添加更新数据-AddNew-Update,将变量值赋给字段,2)具体实现程序 cnLink.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Persist Security Info=False Set rstLink=New ADODB.Recordset rstLink.Open select*from 课程信息

14、表,cnLink,3,3 rstLink.AddNew For i=1 To 5 If Text1(i)Then rstLink(i).Value=Text1(i)Next rstLink.Update rstLink.Close,2、显示记录,1)思路建立数据库连接通过查询条件写SQL查询语句通过rst对象打开相应的表,并执行查询找出符合查询条件的记录将记录集结果返回到界面的变量中查询结束,返回查询结果,2)具体实现 Set cnLink=New ADODB.Connection cnLink.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source

15、=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)Then Text1(i).Text=rstLink(i).Value Next rstLink.close,3、如何移动浏览记录,1)思路建立数据库连接通过查询条件写SQL查询语句通过rst对象打开相应的表,并执行查询找出符合查询条件的记录通过四个按钮执行rst的 MoveFir

16、st、MoveLast、MoveNext 以及 MovePrevious 方法通过界面变量返回查询结果,2)实现方法Public Sub MoveAny(intChoice As Integer,_ rstTemp As Recordset)使用指定方法捕获 BOF 和 EOF。Select Case intChoice Case 1 rstTemp.MoveFirst Case 2 rstTemp.MoveLast Case 3 rstTemp.MoveNext If rstTemp.EOF Then MsgBox Already at end of recordset!rstTemp.Mo

17、veLast End If Case 4 rstTemp.MovePrevious If rstTemp.BOF Then MsgBox Already at beginning of recordset!rstTemp.MoveFirst End If End Select End Sub,4、删除记录,1)思路1建立数据库连接通过查询条件写SQL删除语句提出删除警告通过rst对象打开相应的表,并执行删除命令思路2建立数据库连接通过conn.Excute(SQL)直接执行删除命令,2)实现方法(2种)If vbOK=MsgBox(您真的要删除这条记录吗?,vbOKCancel+vbQuest

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

经营许可证:宁B2-20210002

宁公网安备 64010402000987号