ADO数据访问技术及操作.ppt

上传人:小飞机 文档编号:6501315 上传时间:2023-11-07 格式:PPT 页数:61 大小:337.99KB
返回 下载 相关 举报
ADO数据访问技术及操作.ppt_第1页
第1页 / 共61页
ADO数据访问技术及操作.ppt_第2页
第2页 / 共61页
ADO数据访问技术及操作.ppt_第3页
第3页 / 共61页
ADO数据访问技术及操作.ppt_第4页
第4页 / 共61页
ADO数据访问技术及操作.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

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

1、第10章 ADO数据访问技术及操作,10.1 AD0概述,ADO访问数据是通过OLE DB来实现的,它是连接应用程序和OLE DB数据源之间的一座桥梁,它提供的编程模型可以完成大部分的访问和更新数据源操作。ADO对象模型定义了一个可编程的分层对象集合,它支持部件对象模型和OLE DB数据源。,ADO对象与数据集合关系图,ADO存取数据步骤,(1)创建一个到数据库的ADO连接,并打开数据库连接。(2)创建ADO记录集对象。(3)操作记录集,提取数据、修改数据等。(4)关闭记录集。(5)关闭连接。,10.2 ADO数据库访问对象,10.2.1 Connection对象,用于建立与数据库的连接,通过

2、连接可从应用程序访问数据源,对数据库进行访问和操作。保存诸如指针类型、连接字符串、查询超时、连接超时和默认数据库等连接信息。如果需要多次访问某个数据库,可以使用Connection对象来建立一个连接,也可以经由一个Command或Recordset对象传递一个连接字符串来创建某个连接。,10.2.2 Command对象,用于执行面向数据库的一次简单查询,此查询可执行如创建、添加、检索、删除或更新记录等动作。在建立Connection后,可以发出命令操作数据源。Command对象常用于定义查询参数或执行一个有输出参数的存储过程。如果Command对象执行查询并且该查询用于取回数据,此数据将以一个

3、Recordset对象返回,这意味着被检索的数据能够被Recordset对象的属性、集合、方法或事件进行操作。,游标(指针)类型,(1)动态游标(adOpenDymic):允许用户查看其他用户所做的添加、更改和删除。(2)键集游标(adOpenKeyset):类似动态游标,但用户无法查看其他用户所做的添加,并且它会防止用户访问其他用户已删除的记录,其他用户所做的数据更改仍然是可见的。(3)静态游标(adOpenStatic):提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当用户打开一个客户端Recordset对象时,这是唯一被允许的游标类型

4、。(4)仅向前游标(adOpenForwardOnly):只允许在Recordset中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。,10.2.3 Recordset对象,用于容纳一个来自数据库表的记录集。Recordset对象只代表一个记录集,一个Recordset对象由记录和列(字段)组成,这个记录集是一个连接的数据库中的表或者是Command对象的执行结果返回的记录集。在ADO对象模型中,Recordset对象是在行中检查和修改数据的最主要的方法,所有对数据的操作几乎都是在Recordset对象中完成的,用于指定行、移动行、添加、更改、删除记录。,10.2.4 Param

5、eter对象,提供有关被用于存储过程或查询中的一条单个参数的信息。在其被创建时被添加到Parameters集合。Parameters集合与一个具体的Command对象相关联,Command对象使用此集合将参数传递到存储过程和查询语句中,参数被用来创建参数化的命令。这些命令使用参数在命令执行前来改变命令的某些细节。,10.2.5 Field对象,ADO Field对象包含有关Recordset对象中某一列的信息。Recordset中的每一列对应一个Field对象,由Field对象组成Fields集合,使用Field对象的Value属性可设置或返回当前记录的数据。,10.2.6 Record对象,

6、ADO Record对象用于容纳记录集中的一行,或者文件系统的一个文件或目录。Record对象可以访问数据类型相同或者不同的数据集。,10.2.7 Stream对象,用于读/写及处理二进制数据或文本。Stream对象可通过三种方法获得。方法(1):通过指向包含二进制或文本数据的对象(通常是文件)的URL来获得。此对象可以是简单的文档、表示结构化文档的Record对象或文件夹。方法(2):通过将Stream对象实例化来获得。这些Stream对象可用来存储用于应用程序的数据。跟与URL相关联的Stream或Record的默认Stream不同,实例化的Stream在默认情况下与基本源没有关联。方法(

7、3):通过打开与Record对象相关联的默认Stream对象来获得。打开Record时便可获取与Record对象相关联的默认流,只需打开该流便可删除一个往返过程。,10.2.8 Error对象,ADO Error对象包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。ADO会在每次错误产生时创建一个Error对象,每个Error对象包含此次错误的详细信息,并且Error对象被存储在Errors集合中,要访问这些错误信息,就必须引用某个具体的连接。,10.2.9 Property对象,ADO对象有两种类型的属性:内置属性和动态属性。内置属性是在ADO中实现并可立即用于任何新对象的属性,此时

8、使用MyObject.Property语法。ADO Property对象表示ADO对象的动态特性,这种动态特性是被Provider定义的。每个与ADO对话的Provider拥有不同的方式与ADO进行交互。,10.3高级语言操作ADO接口,10.3.1 在VB 6.0中使用ADO,1直接用ADO代码操作数据库(1)在VB 6.0中新建工程,选择“标准EXE”。(2)在新工程中单击工具箱上的Button图标,在窗体上放置Button控件,在新建Button的属性窗口将名称修改为“CommandSearch”,Caption属性修改为“执行查询”。(3)双击“执行查询”按钮,打开代码编辑器,输入代码

9、示例ADOVB6FormMain.frm。(4)单击“启动”图标运行程序。,2使用ADO控件操作数据,(1)首先在工具箱上单击鼠标右键,选择“部件”,弹出“部件”对话框。在控件栏下选择“Microsoft ADO Data Control 6.0(OLEDB)”复选框,单击“确定”按钮。在新工程中单击工具箱上首先在工具箱上单击鼠标右键,选择“部件”,弹出如图10.4所示“部件”对话框。在控件栏下选择“Microsoft ADO Data Control 6.0(OLEDB)”复选框,单击“确定”按钮。,图10.4“部件”对话框,(2)完成此步骤后,在工具箱上出现ADODC控件。(3)选择“AD

10、ODC”控件,添加到界面上,名称为“Adodc1”。在“ADODC”控件上单击鼠标右键,选择“ADODC Properties”,打开“属性页”对话框,如图10.5所示。,图10.5“属性页”对话框,(4)单击“Build”按钮,打开“数据链接属性”对话框,如图10.6所示。,图10.6“数据链接属性”对话框,(5)选择“Microsoft OLE DB Provider for SQL Server”命令,单击“下一步”按钮,设置连接,如图10.7所示。输入服务器名称“COMPUTER”,输入用户名“sa”及密码“test,选择“允许保存密码”,选择数据库“AddressBook”,单击“测

11、试连接”按钮,如果成功则数据库连接配置完成,如果出现错误,请按照错误提示修改,完成后单击“确定”按钮。,图10.7“数据链接属性”对话框-连接,(6)打开“RecordSource”选项卡,选择Command Type为“1-adCmdText”,在Command Text处输入“Select*from Person”,如图10.8所示。,图10.8 RecordSource设置,(7)窗体增加三个Lable,分别修改其Caption属性为:“姓名”、“性别”、“民族”。增加三个Text控件,分别将其DataSource设置为“Adodc1”控件。DataField字段分别设置为personN

12、ame、personSex、personNation,如图10.9所示。,图10.9 界面设置,(8)运行程序,结果如图10.10所示,可以单击Adodc1的左右箭头实现数据浏览。,图10.9 界面运行效果,10.3.2 在VC 6.0中使用ADO,1VC 6.0中ADO数据访问技术开发步骤用#import语句来引用支持ADO的组件类型库(*.tlb),类型库被定义在msado15.dll的附属资源中,只需要直接用#import引用它即可。可以直接在Stdafx.h文件中加入下面语句来实现。在程序初始过程中需要初始化组件,一般可以用“CoInitialize(NULL);”来实现,这种方法在结

13、束时要关闭初始化的COM,可以用语句“CoUnInitialize();”来实现。直接使用ADO。,ADO库中三个基本接口,(1)_ConnectionPtr接口:返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。(2)_CommandPtr接口:返回一个记录集。它提供了一种简单的方法来执行返回记录集的存储过程和SQL语句。(3)_RecordsetPtr接口:一个记录集对象。与以上两种对象相比,它对记录集提供了更多的控制功能,如记录锁定、游标控制等。,2使用ADO控件操作数据,(1)通过MFC AppWizard(exe)新建基本对

14、话框程序,假定工程名为ADOVC6。(2)在窗体上放置一个“Button”按钮,按钮“ID”属性改为“IDC_BUTTONOPER”,按钮标题改为“操作数据”,双击按钮,出现添加成员函数提示,如图10.11所示,单击“OK”按钮,进入代码编辑区域。,图10.11 VC界面及添加函数操作,(3)输入相应的OnButtonopen代码,完成数据库连接建立、数据遍历、数据添加、数据删除等功能。源代码参见:代码示例ADOVC6ADOVC6Dlg.cpp。,10.3.3 在Delphi 7中使用ADO,1Delphi 7中ADO简介 基于Delphi的数据库应用程序不能直接访问数据,需要使用附带的BDE

15、(Borland Database Engine,Borland数据库引擎)、ADO接口或ODBC接口等来对数据资源直接进行访问。,ADO组件功能,(1)TADOConnection:用来建立与ADO数据库之间联系的组件,各种ADO的数据集及操作组件可以共用这种联系来执行命令,读取数据,并执行相应的操作。(2)TADODataSet:主要用来读取数据,并对读取的数据执行相应的操作。它能从单个数据表格或多个数据表格中读取数据。(3)TADOTable:主要用来从单个数据表中读取数据,完成相应操作。同TADODataSet一样,它可以直接与数据库相连,也可以通过TADOConnection来实现连

16、接。,(4)TADOQuery:通过使用SQL语句来读取数据,完成相应操作。同TADODataSet一样,它可以直接与数据库相连,也可以通过TADOConnection来实现连接。(5)TADOStoredProc:用来完成数据存储过程。同TADODataSet一样,它可以直接与数据库相连,也可以通过TADOConnection来实现连接。(6)TADOCommand:主要用来执行命令操作(SQL语句中不返回数据结果的命令)。它与一个相支持的数据集组件一起使用,同样可以用来从数据表格中读取数据。,2Delphi 7中数据控件简介,数据控制组件集中在Delphi开发环境Data Controls

17、(数据控制)组件页上,包括TDBGrid、TDBNavigator、TDBText和TDBImage等。应用程序通过这些组件可以浏览数据集中的数据信息,还可以编辑修改数据信息并将它们提交给数据库。,数据控制组件与数据集组件之间的联系是通过数据源组件TDataSource来实现的。在应用程序中创建数据控制组件的基本步骤如下。(1)在窗体中添加数据控制组件、数据集组件和数据源组件。(2)将此数据控制组件的DataSource属性设置为窗体上数据源组件的名称,这样就建立了数据控制组件与数据源组件之间的联系。(3)设置数据控制组件的DataField属性。TDBGrid组件和TDBNavigator组

18、件是访问数据集中所有的字段,所以没有这一属性。而其他的数据控制组件都需要设定DataSource属性来说明访问的是数据表格中的哪一部分。,3Delphi 7中数据操作示例,(1)新建Delphi 7工程,假定保存工程名为“ADODelphi7”,窗体单元保存为“uMain.pas”。(2)单击“ADO”组件页,选择ADOConnection组件,单击放置到窗体上。(3)在左侧“Object Inspector”属性窗体单击“ConnectionString”,打开连接字符串设置窗体,如图10.12所示,单击“Build”按钮打开“数据链接属性”对话框,如图10.13所示。,图10.12 连接字

19、符串设置窗体,图10.13“数据库链接属性”对话框,(4)选择“Microsoft OLE DB Provider for SQL Server”命令,单击“下一步”按钮打开“连接”选项卡,如图10.14所示。输入服务器名称“COMPUTER”,输入用户名“sa”及密码“test”,选择“允许保存密码”,然后选择示例数据库“AddressBook”。单击“测试连接”按钮,如果成功则数据库连接配置完成。如果出现错误,请按照给出的提示进行修改,完成后单击“确定”按钮,得到ADOConnection连接字符串:“Provider=SQLOLEDB.1;Password=test;Persist Se

20、curity Info=True;UserID=sa;InitialCatalog=AddressBook;Data Source=COMPUTER”。,图10.13“数据库链接属性”对话框,(5)选择ADOTable组件,单击放置到窗体上。在左侧“Object Inspector”属性窗体单击“Connection”,出现下拉列表,其中有“ADOConnection1”,选择它作为ADOTable的数据连接对象。在属性页单击“TableName”,出现下拉列表,其中有数据库中的表名,选择“Person”表。如果选择时出现弹出框,请输入数据库密码,如果需要关闭这个弹出框,将ADOConnect

21、ion的“LoginPrompt”的属性设置为False。,(6)单击“Data Access”组件页,选择DataSource组件,单击放置到窗体上。在左侧“Object Inspector”属性窗体单击“DataSet”,出现下拉列表,其中有“ADOTable1”,选择它作为DataSource的数据集对象。,(7)单击“Data Controls”组件页,选择DBGrid组件,单击放置到窗体上。在左侧“Object Inspector”属性窗体单击“DataSource”,出现下拉列表,其中有“DataSource1”,选择它作为DBGrid的数据源。选择“DBNavigator”,单击

22、放到窗体上,同样将“DataSource”属性设置为“DataSource1”。完成后界面如图10.15所示。此时,单击ADOTable1的“Active”属性,设置为“True”,则数据库数据可以出现在界面上。,图10.15 ADO数据库程序设计界面,(8)单击“Run”运行按钮,运行程序,界面如图10.16所示,能够显示数据库数据,同时在界面上可以直接修改数据,也可以通过控制按钮增加、删除、修改数据。,图10.16 ADO数据库程序运行界面,10.4 应用案例Delphi中使用ADO开发个人通讯录系统,使用前面章节建立好的AddressBook数据库及其Person表,实现一个在Delph

23、i 7中使用ADO相关控件开发的个人通讯录系统,能够显示记录的内容,并具有添加、删除、保存、取消功能,程序的运行结果如图10.17所示。,图10.17 ADO数据库应用程序运行结果,开发步骤,(1)按照节步骤,建立工程Delphi7Abook,分别放置ADOConnection组件、ADOTable组件、DataSource组件、DBGrid组件、DBNavigator组件到窗体,并设置其连接关系,将ADOConnection连接到AddressBook的Person表。,开发步骤,(2)在界面上放置10个TLable及10个TDBEdit,分别设置属性如图10.18所示,将TDBEdit对象

24、关联到相应的数据库字段,方法如下:选择TDBEdit组件,在左侧“Object Inspector”属性窗体单击“DataSource”,出现下拉列表,其中有“DataSource1”,选择它作为数据源;单击“DataField”将会出现Person表的各个字段,选择对应的字段。,图10.18 ADO数据库应用程序设计界面,(3)将ADOTable的Active属性设置为“True”,连接数据库。(4)在窗体添加两个“TButton”按钮,分别设置Name属性为“btnExecSQL”、“btnBrowEdit”,分别设置Caption属性为“执行SQL语句”、“遍历并修改数据”。放置一个TA

25、DOQuery控件,名称为“ADOQuery1”,设定其Connection为“ADOConnection1”。,(5)双击“执行SQL语句”按钮,打开编辑界面,输入如下btnExecSQLClick处理函数代码。代码参见:代码示例Delphi7AbookUnit1.pas。(6)双击“遍历并修改数据”按钮,打开编辑界面,输入btnBrowEditClick处理函数代码。代码参见:代码示例Delphi7AbookUnit1.pas。,10.5 小结,ADO数据访问技术及操作ADO的9个数据访问对象 使用ADO存取数据的步骤VB 6、VC 6、Delphi 7中使用ADO的方法在Delphi中使用ADO开发个人通讯录系统,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号