关系数据库提供的应用程序接口.ppt

上传人:牧羊曲112 文档编号:5928558 上传时间:2023-09-05 格式:PPT 页数:46 大小:500.50KB
返回 下载 相关 举报
关系数据库提供的应用程序接口.ppt_第1页
第1页 / 共46页
关系数据库提供的应用程序接口.ppt_第2页
第2页 / 共46页
关系数据库提供的应用程序接口.ppt_第3页
第3页 / 共46页
关系数据库提供的应用程序接口.ppt_第4页
第4页 / 共46页
关系数据库提供的应用程序接口.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《关系数据库提供的应用程序接口.ppt》由会员分享,可在线阅读,更多相关《关系数据库提供的应用程序接口.ppt(46页珍藏版)》请在三一办公上搜索。

1、第十二章关系数据库提供的应用程序接口,12.1ODBC12.2OLE DB12.3ADO,第12章 关系数据库提供的应用程序接口 本章重点介绍了ODBC(Open Database Connectivity,开放数据库互连)的特点、体系结构、ODBC DSN的创建过程,以及UDA(Universal Data Access,一致数据访问)技术的两层标准接口OLE DB和ADO。OLE DB是系统级的编程接口,它定义了一组COM接口,这组接口封装各种数据库系统的访问操作,为数据处理方和数据提供方建立了标准。OLE DB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作。AD

2、O是应用层级的编程接口。它利用OLE DB 提供的COM接口来访问数据,因此它适合于C/S(客户/服务器)系统和基于Web的应用,尤其在一些脚本语言中进行数据库访问操作是ADO主要优势。,121 ODBC 12.1.1 ODBC概述 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它提供了一组规范和一组对不同类型的数据库进行访问的标准API(应用程序编程接口)函数。这些API利用SQL来完成其大部分任务。一个基于ODBC的应用程序对

3、数据库的操作不依赖任何DBMS,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。即不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成:,1ODBC应用程序(Application)ODBC应用程序是用一般程序设计语言(如C语言等)编写的程序。2.ODBC API函数 3ODBC管理器(Administrator)该程序位于Windows95控制面板(ControlPanel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。4ODB

4、C驱动程序管理器(DriverManager)驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。应用程序不能直接调用 ODBC 驱动程序,只可调用ODBC驱动程序管理器提供的ODBC API函数,再由ODBC驱动程序管理器负责把相应的ODBC 驱动程序加载到内存中,同时把应用程序访问数据的请求传送给ODBC驱动程序。,5ODBC 驱动程序 ODBC 驱动程序具体负责把SQL请求传送到数据源的DBMS中,再把操作结果返回到ODBC驱动程序管理器。后者在把结果传送至客户端的应用程序。每种支持ODBC 的数据库都拥有自己的驱动程序,一种驱动程序只能固定地与对应的数据库通信,不能访问其他数据

5、库。6数据源 数据源就是需要访问的数据库。应用程序若要通过ODBC访问一个数据库,则首先要创建一个数据源,主要工作是指定数据源名(DSN,data source name),使其关联一个目的数据库以及相应的ODBC 驱动程序。所以说,数据源实际上是一种数据连接的抽象,指定了数据库位置和数据库类型等信息。,DSN有三种类型:(1)系统DSN即是面向系统全部用户的数据源,系统中的所有用户都可以使用。(2)用户DSN即是仅面向某些特定用户的数据源,只有通过身份验证才能连接。(3)文件DSN即是用于从文本文件中获取数据,提供多用户访问。各部件之间的关系如下:,工作流程:应用程序要访问一个数据库,首先必

6、须用ODBC管理器注册一个数据源。ODBC管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。应用程序将已创建好的数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接,为访问数据库做好准备。在ODBC中,ODBC API函数不能直接访问数据库的,必须通过ODBC驱动程序管理器与数据库交换信息。ODBC驱动程序管理器在应用程序和数据源之间起着转换与管理的作用。,12.1.2 创建ODBC DSN 创建ODBC DSN 是通过使用ODBC管理器来进行。下面就介绍用ODBC管理器来创建Access DSN的操作步骤。1创建Access DS

7、N(1)单击Windows任务栏的“开始”按钮,选择“设置”“控制面板”,展开“管理工具”,双击“数据源(ODBC)”图标,打开“ODBC数据源管理器”对话框窗口,如图12.1。,图12.1“ODBC数据源管理器”对话框,(2)在“ODBC数据源管理器”对话框中,选择“系统DSN”选项卡。如图12.2。图12.2“ODBC数据源管理器”对话框,(3)单击“添加”按钮,打开下图的“创建新数据源”对话框窗口。列表框里列出了对应于不同数据库的许多驱动程序名。不同的驱动程序名就对应创建不同的DSN。这里选择“Microsoft Access Drive(*.mdb)”,表示创建Access DSN。图

8、12.3“创建新数据源”对话框,(4)单击“完成”按钮,弹出“ODBC Microsoft Access 安装”对话框,如图12.4所示。在“数据源名”文本框中输入一个DSN名字。本例输入为“Access_1”。图12.4“ODBC Microsoft Access 安装”对话框,【说明】l 搜索已创建的数据库,表示刚创建的DSN与这个数据库对应。l“创建”按钮,将弹出“新建数据库”对话框,用于创建新的数据库,与刚创建的DSN对应。l“修复”或“压缩”按钮,用于修复或压缩现有的数据库。l“高级”按钮,将弹出“设置高级选项”对话框,用于输入登录密码和密码,给以后的操作带来便利。(5)在图12.4

9、“ODBC Microsoft Access 安装”对话框中,单击“确定”按钮,返回“ODBC 数据源管理器”对话框,如下图12.5 所示。在“系统数据源”列表中,可以看到新创建的DSN和对应的数据库驱动程序名已出现在列表中。单击此对话框中的“确定”按钮。这样创建连接到Access数据库的DSN的操作以完成。,图12.5“ODBC 数据源管理器”对话框,2创建SQL Server DSN(1)操作同前述的1)、2),直到弹出如下图12.6的“创建新数据源”对话框窗口,在“名称”列表中选择“SQL Server”。图12.6“创建新数据源”对话框(2)根据提示一步一步的进行设置即可。,122 O

10、LE DB UDA(Universal Data Access,一致数据访问)技术包括OLE DB和ADO两层标准接口。OLE DB是系统级的编程接口,它定义了一组COM接口,这组接口封装各种数据库系统的访问操作,为数据处理方和数据提供方建立了标准。OLE DB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作。因此,数据提供方只需进行一些简单的数据操作,数据处理方就可获得全部的数据控制能力。ADO是应用层级的编程接口。它利用OLE DB 提供的COM接口来访问数据,因此它适合于C/S(客户/服务器)系统和基于Web的应用,尤其在一些脚本语言中进行数据库访问操作是ADO主

11、要优势。图12.7 显示了统一数据访问的软件层次模型,图12.7 UDA的层次模型,如图所示,应用程序既可以通过ADO访问数据,也可以直接通过OLE DB访问数据,而ADO也是通过OLE DB访问底层数据的。可以说UDA(一致数据访问)技术的核心是OLE DB。OLE DB建立了数据访问的标准接口,它把所有的数据源经过抽象而形成行集(rowset)的概念。OLE DB模型主要包括如下一些COM对象:(1)数据源(Data Source)对象。它对应于一个数据提供者,它负责管理用户权限、建立与数据源的连接等初始操作。(2)会话(Session)对象。在数据源连接的基础上建立会话对象,会话对象提供

12、了事务控制机制。(3)命令(Command)对象。数据使用者利用命令对象执行各种数据操作,如查询、修改命令等。(4)行集(Rowset)对象。提供了数据的抽象表示,它可以是命令执行的结果,也可以有会话对象产生,它是应用程序主要的操作对象。,123 ADO OLE DB的对象模型简单、灵活。下面从应用层角度出发,介绍ADO技术。123.1 ADO技术 ADO对象模型定义了一组可编程的自动化对象,可应用于各种支持自动化特性的脚本语言。与一般的数据库接口相比,ADO可更好的用于网络环境,通过优化技术,它尽可能的降低网络流量;ADO的另一个特性是使用简单,因为它是面向高级用户的数据库接口,而且使用一组

13、简化的接口用以处理各种数据源。下面先给出ADO的对象模型图:,图12.8 ADO的对象模型图,在ADO模型中,主体对象只有三个:Connection、Command、Recordset,其他四个集合对象Errors、Propertie、Parameters和Fields分别对应Errors、Propertie、Parameters和Fields对象,这些对象组成了ADO对象模型。典型的ADO应用是:(1)使用Connection对象与数据源建立连接;(2)然后用一个Command对象给数据库发出操作命令;(3)Recordset对象对结果集数据进行维护或者浏览等操作。Command命令所使用的

14、命令语言与底层所使用的OLE DB数据源有关,不同的数据源可以使用不同的命令语言,对于关系型数据库,通常使用SQL作为命令语言。Command对象是可选对象,它是否有效取决于OLE DB数据提供者是否实现了Icommand接口。,下面对ADO的各个对象进行讨论。(1)Connection对象。利用Connection对象可以实现与数据源建立连接。(2)Command对象。Command对象代表一个操作命令,主要是通过调用其各种方法来执行针对数据源的有关操作。(3)Recordset对象。Recordset对象代表一个表的记录集或命令执行的结果,在记录集中,总有一个当前记录。记录集是ADO管理数

15、据的基本对象,它是一种表状结构,每一行对应一个记录(Record),每一列对应一个域(Field)。Recordset对象也可通过游标对记录进行访问,在ADO中,游标分为四种:静态游标。提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等等,但其他用户所做的操作反映不出来。,动态游标。允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作直接反映出来。前向游标。允许各种前向移动操作,不能向后移动,并且其他用户所做的操作直接反映出来。键集(Keyset)游标。类似于各种动态游标,也能看到其他用户所作的数据修改,但不能看到其他用户新加的记录,也不能访问其他用户删除的记录。ADO提供

16、了两种的记录修改方式。一种为立即修改方式,一旦调用Update方法,则对数据的修改也立即更新底层的数据源;一种为批修改方式,对数据的修改仅局限于缓存中进行,适当时候才用UpdatebBatch方法把所有的修改去更新底层的数据源。递交之后,可用Status属性检查数据冲突。Recordset对象是ADO数据操作的核心。它既可以作为Connection对象或Command对象执行特定方法的结果数据集;也可独立于这两个对象而单独使用。,1232 在VB 中使用ADO控件来访问数据库 下面介绍如何使用ADO来访问数据库。Visual Basic(VB)是一种面向对象的可视化编程工具,具有简单易学、灵活

17、方便等特点,且提供方便使用的API函数集和工具集。前端的VB与后端的数据库相结合,能够实现高效的客户/服务器方案。本书后面在介绍通过 ODBC DSN进行应用程序开发时,主要以VB来作为应用程序的开发语言。VB可使用的控件分成两类:(1)内部控件,是一些常用的控件,总是出现在工具箱中;(2)Activex X控件或可插入对象,不直接出现在工具箱中。但可把他们添加到工具箱后使用。,1数据连接对象介绍 Visual Basci 6.0提供了一个新的数据库接对象:ADODB,简称ADO。ADO对象中最常用的属性是Connection和Recordset。Connection 属性实现连接对象,它可以

18、是SQL Server,Oracle,Access,或者ODBC等;Recordset对象实现为当前ADO对象所连接的表进行各种操作。微软公司提供了一个控件Adodc控件,它是一个封装了ADODB对象大部功能的控件,不是VB6.0内部的部件,属于外部控件。因此,当你需要它的时候,你必须调用“部件”对话框,将它加入到工具箱中,方法如下:进入VB,右击工具箱,在弹出的菜单中选择“部件”窗体中选择“控件”选项卡,如图12.9。然后在控件列表框选择下列控件(打勾表示选中):,Microsoft ADO Data Contrl 6.0(SP4)(ODLEDB);Microsoft DataGrid Da

19、ta Contrl 6.0(SP4)(ODLEDB)。图12.9“部件”窗体,单击“确定”按钮,选中的ADO控件将添加到工具箱,如图12.10所示。图12.10 把ADO控件添加到工具箱中,2 ADODB对象连接 连接ACCESS数据库 要使用ADODB对象连接,你首先在VB模块或窗体声明一个新的ADODB对象,然后使用这个新的ADODB对象设置 数据源,例如我们要连接到ACCESS数据库xsd1,方法如下:Dim con As New ADODB.Connection 定义一个名为con的ADODB连接对象 con.Open Provider=Microsoft.Jet.OLEDB.4.0;

20、Data Source=E:asscesxsd1.mdb;Persist Security Info=False 打开连接 con对象的open方法就是打开一个数据连接,“Provider”是指数据连接提供程序,它是微软公司提供的一套数据连接对象,当连接到不同的数据库,你需要使用不同的数,据连接对象。上面就是指示con对象连接到Access数据库,“Data source”是指你的Access数据库所在的路径。上面的连接方法是把数据连接指向绝对路径。我们开发一个项目的时候是不用绝对路径的,而是使用相对路径,这样的好处是当你的程序移动到其它盘符或电脑的时候,程序还可以运行。VB中有一个对象,它是

21、指当前的程序:app对象,app对象里有一个属性是指当前程序所在的路径“app.Path”,上面的连接可以这样改为:con.Open Provider=Microsoft.Jet OLE DB 4.0;Data Source=Persist Security Info=False,(2)连接SQL Server数据库 当你的程序后台是SQL Server数据库时,你要连接你所指定的数据库,你必须首先启动SQL服务器,然后才可以连接到你所需要的数据库。连接SQL Server数据库,没有路径之分。有两种连接方法,一种是以WINDOWNT集成安全模式;另一种是指定用户名和密码的方式。SQL Ser

22、ver数据库本身自带几个数据库,我们就以它自带的数据库为例,设置连接。以WINDOWNT集成安全模式的连接方法如下:Dim con As New ADODB.Connection con.Open Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind 以SQL Server 数据库自带的帐号“sa“登录连接(它默认无密码):Dim con As New ADODB.Connection con.Open Provider=SQLOLEDB.1;Pers

23、ist Security Info=False;User ID=sa PWD=;Initial Catalog=Northwind,3ADODC控件连接 ADODC控件是一个封装了ADODB对象大部功能的控件,上面已经说明调用该控件的方法。只要你把ADODC 控件添加到你的程序中,就可以使用它来操作数据库。在使用ADODC 控件进行数据库操作之前,得设置它的连接属性:“ConnectionString”,该属性是指示 ADODC控件所要使用的数据连接提供程序及其数据库。设置其方法有两种:第一种方法,是直接调用前面创建的DSN数据源或是直接在属性面板里的“ConnectionString”属性进

24、行适时连接,方法如下:在属性面板里找到“ConnectionString”属性,点击其右边的按钮,将出现一个“属性页”对话框,如下图12.11所示。选择“Use Connection String”,点击右边的“Build”按钮,则出现“数据连接属性”对话框,如图12.12所示。,图12.11“属性页”对话框,图12.12“数据连接属性”对话框,选择你所需的连接数据提供程序。当你需要连接到Access数据库时,选择“Microsoft Jet 4.0 OLE DB Provider”,点击“下一步”则跳转到“连接”页,如图12.13所示,单击“选择或输入数据库名称(D)”后面的“”按钮,选择你

25、的数据库所在的路径。当数据库设置有密码时,在密码处输入密码。点击“测试连接”,当连接成功时,则返回一个连接成功的对话框,否则将显示其错误。:,图12.13 选择你的数据库所在的路径,第二种方法是在程序里设置其属性,例如有一个名为“adodc1”的adodc控件,设置如下:Adodc1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Persist Security Info=False 如是SQL Server数据库,则更改其属性即可。4把ADO对象连接的数据库表填充到RecordSet对象 前面我们提到过ADO其重要

26、的一个对象:“Recordset”,它是你所要操作的结果集。我们设置好ADO的连接属性后,必须设置其recordset 对象。Recordset对象有很多属性及方法,以下我们会逐步的了解其常用的属性和方法。使用ADO操作数据库的方法如下:,(1)ADODB对象 创建一个工程,在其窗体中添加中一个“DataGrid”控件,用来展示程序返回的结果;一个 ADO控件,用于记录的选择。如图12.14所示。图12.14 嵌入ADO控件的窗体,在窗体的“load”事件中添加如下代码:Private Sub Form_Load()Adodc1.ConnectionString=Provider=Micros

27、oft.Jet.OLEDB.4.0;Data Source=Persist Security Info=False Adodc1.CommandType=adCmdText 命令类型 Adodc1.RecordSource=select*from orders Set DataGrid1.DataSource=Adodc1 End Sub 程序中定义了一个名为“rs”的Recordset对象,Recordset对象的Open方法的第一个参数是所要操作的表或SQL语句,第二个参数是连接对象,第三个是指示所要进行的操作,后面的二个可省。Se t是VB6.0中的关键字,当你在程序代码中要把某个控件连

28、接到表的某个字段时,该关键字不可缺少。,设置ADO控件的属性,使其与数据库连接。()在数据控件Adodc1的属性窗口中单击ConnectingString属性单击“”按钮,弹出“属性页”对话框,如图12.15所示。在其中选择“Use ODBC Data Source Name”,并从其列表中选择“Acces_1”或可直接输入,单击“确定”。这样可使数据控件Adodc1 与Access数据库xsd1连接起来。,图12.15“属性页”对话框,()在数据控件Adodc1的属性窗口中单击RecordSource属性。然后单击“”按钮,弹出“记录源”对话框。在“Command Type”中选择2-adC

29、mdTable。在“Table Stored Procedure Name”中选择或直接输入“Ask_1”,单击“确定”按钮。这样使数据控件Adodc1进一步与数据库xsd1中的Ask_1表发生关联。如下图12.16所示。图12.16 设置“记录源”对话框,()设置表格控件DataGrid1的各项属性:置DataSource属性为Adodc1,使表格控件与数据源连接;置AllowAddNew属性为True,允许插入新记录;置AllowDelete属性为True,允许删除记录;置AllowUpdate属性为True,允许更新记录。运行工程,结果如下图12.17所示。,图12.17 ADO控件运用

30、示例,12.3.3 程序中ADO数据控件及绑定控件的属性设置 以上的工作大部分是设计界面中进行的,若要在运行时实现动态变化,则须在程序中对ADO数据控件及绑定控件的属性进行设置。主要设置ADO数据控件的ConnectionString属性、RecordSource属性,以及绑定控件的DataSource等属性。例如:在窗体的“load”事件中添加如下代码:Private Sub Form_Load()With adodc Adodc1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;Integrated Security=SSPI;Persi

31、st Security Info=False;Initial Catalog=Adodc1;Data Source=(local).RecordSource=”Select*From Ask_1”End With,Set DataGrid1.DataSource=adodc Adodc1 Set DataGrid1.AllowAddNew=True Set DataGrid1.AllowDelete=True Set DataGrid1.AllowUpdate=True End Sub 12.3.4 操作数据库 通过上面的介绍,相信大家已经了解怎么连接数据源,并简单地把所要操作的表填到RecordSet对象。经常用来操作数据库的控件有:TextBox,ComboBox控件,DataGrid控件等。它们都能和数据库连接的控件,均有DataSource属性,DataField属性。如是连接到ADODB对象,则把DataSource属性设置为ADODB所连接到的RecordSet对象;DataField属性用于设置为你所需表的字段;如是adodc控件,第一个属性设置为adodc控件,第二个属性设置为你所需的表的字段。当你把控件连接到数据库相关的字段后,你即可运用该控件操作数据库。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号