




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,第十二章关系数据库提供的应用程序接口,12.1ODBC12.2OLEDB12.3ADO,.,第12章关系数据库提供的应用程序接口本章重点介绍了ODBC(OpenDatabaseConnectivity,开放数据库互连)的特点、体系结构、ODBCDSN的创建过程,以及UDA(UniversalDataAccess,一致数据访问)技术的两层标准接口OLEDB和ADO。OLEDB是系统级的编程接口,它定义了一组COM接口,这组接口封装各种数据库系统的访问操作,为数据处理方和数据提供方建立了标准。OLEDB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作。ADO是应用层级的编程接口。它利用OLEDB提供的COM接口来访问数据,因此它适合于C/S(客户/服务器)系统和基于Web的应用,尤其在一些脚本语言中进行数据库访问操作是ADO主要优势。,.,121ODBC12.1.1ODBC概述ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它提供了一组规范和一组对不同类型的数据库进行访问的标准API(应用程序编程接口)函数。这些API利用SQL来完成其大部分任务。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。即不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。一个完整的ODBC由下列几个部件组成:,.,1ODBC应用程序(Application)ODBC应用程序是用一般程序设计语言(如C语言等)编写的程序。2.ODBCAPI函数3ODBC管理器(Administrator)该程序位于Windows95控制面板(ControlPanel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。4ODBC驱动程序管理器(DriverManager)驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。应用程序不能直接调用ODBC驱动程序,只可调用ODBC驱动程序管理器提供的ODBCAPI函数,再由ODBC驱动程序管理器负责把相应的ODBC驱动程序加载到内存中,同时把应用程序访问数据的请求传送给ODBC驱动程序。,.,5ODBC驱动程序ODBC驱动程序具体负责把SQL请求传送到数据源的DBMS中,再把操作结果返回到ODBC驱动程序管理器。后者在把结果传送至客户端的应用程序。每种支持ODBC的数据库都拥有自己的驱动程序,一种驱动程序只能固定地与对应的数据库通信,不能访问其他数据库。6数据源数据源就是需要访问的数据库。应用程序若要通过ODBC访问一个数据库,则首先要创建一个数据源,主要工作是指定数据源名(DSN,datasourcename),使其关联一个目的数据库以及相应的ODBC驱动程序。所以说,数据源实际上是一种数据连接的抽象,指定了数据库位置和数据库类型等信息。,.,DSN有三种类型:(1)系统DSN即是面向系统全部用户的数据源,系统中的所有用户都可以使用。(2)用户DSN即是仅面向某些特定用户的数据源,只有通过身份验证才能连接。(3)文件DSN即是用于从文本文件中获取数据,提供多用户访问。各部件之间的关系如下:,.,.,工作流程:应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源。ODBC管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。应用程序将已创建好的数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接,为访问数据库做好准备。在ODBC中,ODBCAPI函数不能直接访问数据库的,必须通过ODBC驱动程序管理器与数据库交换信息。ODBC驱动程序管理器在应用程序和数据源之间起着转换与管理的作用。,.,12.1.2创建ODBCDSN创建ODBCDSN是通过使用ODBC管理器来进行。下面就介绍用ODBC管理器来创建AccessDSN的操作步骤。1创建AccessDSN(1)单击Windows任务栏的“开始”按钮,选择“设置”“控制面板”,展开“管理工具”,双击“数据源(ODBC)”图标,打开“ODBC数据源管理器”对话框窗口,如图12.1。,.,图12.1“ODBC数据源管理器”对话框,.,(2)在“ODBC数据源管理器”对话框中,选择“系统DSN”选项卡。如图12.2。图12.2“ODBC数据源管理器”对话框,.,(3)单击“添加”按钮,打开下图的“创建新数据源”对话框窗口。列表框里列出了对应于不同数据库的许多驱动程序名。不同的驱动程序名就对应创建不同的DSN。这里选择“MicrosoftAccessDrive(*.mdb)”,表示创建AccessDSN。图12.3“创建新数据源”对话框,.,(4)单击“完成”按钮,弹出“ODBCMicrosoftAccess安装”对话框,如图12.4所示。在“数据源名”文本框中输入一个DSN名字。本例输入为“Access_1”。图12.4“ODBCMicrosoftAccess安装”对话框,.,【说明】l搜索已创建的数据库,表示刚创建的DSN与这个数据库对应。l“创建”按钮,将弹出“新建数据库”对话框,用于创建新的数据库,与刚创建的DSN对应。l“修复”或“压缩”按钮,用于修复或压缩现有的数据库。l“高级”按钮,将弹出“设置高级选项”对话框,用于输入登录密码和密码,给以后的操作带来便利。(5)在图12.4“ODBCMicrosoftAccess安装”对话框中,单击“确定”按钮,返回“ODBC数据源管理器”对话框,如下图12.5所示。在“系统数据源”列表中,可以看到新创建的DSN和对应的数据库驱动程序名已出现在列表中。单击此对话框中的“确定”按钮。这样创建连接到Access数据库的DSN的操作以完成。,.,图12.5“ODBC数据源管理器”对话框,.,2创建SQLServerDSN(1)操作同前述的1)、2),直到弹出如下图12.6的“创建新数据源”对话框窗口,在“名称”列表中选择“SQLServer”。图12.6“创建新数据源”对话框(2)根据提示一步一步的进行设置即可。,.,122OLEDBUDA(UniversalDataAccess,一致数据访问)技术包括OLEDB和ADO两层标准接口。OLEDB是系统级的编程接口,它定义了一组COM接口,这组接口封装各种数据库系统的访问操作,为数据处理方和数据提供方建立了标准。OLEDB还提供了一组标准的服务组件,用于提供查询、缓存、数据更新、事务处理等操作。因此,数据提供方只需进行一些简单的数据操作,数据处理方就可获得全部的数据控制能力。ADO是应用层级的编程接口。它利用OLEDB提供的COM接口来访问数据,因此它适合于C/S(客户/服务器)系统和基于Web的应用,尤其在一些脚本语言中进行数据库访问操作是ADO主要优势。图12.7显示了统一数据访问的软件层次模型,.,图12.7UDA的层次模型,.,如图所示,应用程序既可以通过ADO访问数据,也可以直接通过OLEDB访问数据,而ADO也是通过OLEDB访问底层数据的。可以说UDA(一致数据访问)技术的核心是OLEDB。OLEDB建立了数据访问的标准接口,它把所有的数据源经过抽象而形成行集(rowset)的概念。OLEDB模型主要包括如下一些COM对象:(1)数据源(DataSource)对象。它对应于一个数据提供者,它负责管理用户权限、建立与数据源的连接等初始操作。(2)会话(Session)对象。在数据源连接的基础上建立会话对象,会话对象提供了事务控制机制。(3)命令(Command)对象。数据使用者利用命令对象执行各种数据操作,如查询、修改命令等。(4)行集(Rowset)对象。提供了数据的抽象表示,它可以是命令执行的结果,也可以有会话对象产生,它是应用程序主要的操作对象。,.,123ADOOLEDB的对象模型简单、灵活。下面从应用层角度出发,介绍ADO技术。123.1ADO技术ADO对象模型定义了一组可编程的自动化对象,可应用于各种支持自动化特性的脚本语言。与一般的数据库接口相比,ADO可更好的用于网络环境,通过优化技术,它尽可能的降低网络流量;ADO的另一个特性是使用简单,因为它是面向高级用户的数据库接口,而且使用一组简化的接口用以处理各种数据源。下面先给出ADO的对象模型图:,.,图12.8ADO的对象模型图,.,在ADO模型中,主体对象只有三个:Connection、Command、Recordset,其他四个集合对象Errors、Propertie、Parameters和Fields分别对应Errors、Propertie、Parameters和Fields对象,这些对象组成了ADO对象模型。典型的ADO应用是:(1)使用Connection对象与数据源建立连接;(2)然后用一个Command对象给数据库发出操作命令;(3)Recordset对象对结果集数据进行维护或者浏览等操作。Command命令所使用的命令语言与底层所使用的OLEDB数据源有关,不同的数据源可以使用不同的命令语言,对于关系型数据库,通常使用SQL作为命令语言。Command对象是可选对象,它是否有效取决于OLEDB数据提供者是否实现了Icommand接口。,.,下面对ADO的各个对象进行讨论。(1)Connection对象。利用Connection对象可以实现与数据源建立连接。(2)Command对象。Command对象代表一个操作命令,主要是通过调用其各种方法来执行针对数据源的有关操作。(3)Recordset对象。Recordset对象代表一个表的记录集或命令执行的结果,在记录集中,总有一个当前记录。记录集是ADO管理数据的基本对象,它是一种表状结构,每一行对应一个记录(Record),每一列对应一个域(Field)。Recordset对象也可通过游标对记录进行访问,在ADO中,游标分为四种:静态游标。提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等等,但其他用户所做的操作反映不出来。,.,动态游标。允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作直接反映出来。前向游标。允许各种前向移动操作,不能向后移动,并且其他用户所做的操作直接反映出来。键集(Keyset)游标。类似于各种动态游标,也能看到其他用户所作的数据修改,但不能看到其他用户新加的记录,也不能访问其他用户删除的记录。ADO提供了两种的记录修改方式。一种为立即修改方式,一旦调用Update方法,则对数据的修改也立即更新底层的数据源;一种为批修改方式,对数据的修改仅局限于缓存中进行,适当时候才用UpdatebBatch方法把所有的修改去更新底层的数据源。递交之后,可用Status属性检查数据冲突。Recordset对象是ADO数据操作的核心。它既可以作为Connection对象或Command对象执行特定方法的结果数据集;也可独立于这两个对象而单独使用。,.,1232在VB中使用ADO控件来访问数据库下面介绍如何使用ADO来访问数据库。VisualBasic(VB)是一种面向对象的可视化编程工具,具有简单易学、灵活方便等特点,且提供方便使用的API函数集和工具集。前端的VB与后端的数据库相结合,能够实现高效的客户/服务器方案。本书后面在介绍通过ODBCDSN进行应用程序开发时,主要以VB来作为应用程序的开发语言。VB可使用的控件分成两类:(1)内部控件,是一些常用的控件,总是出现在工具箱中;(2)ActivexX控件或可插入对象,不直接出现在工具箱中。但可把他们添加到工具箱后使用。,.,1数据连接对象介绍VisualBasci6.0提供了一个新的数据库接对象:ADODB,简称ADO。ADO对象中最常用的属性是Connection和Recordset。Connection属性实现连接对象,它可以是SQLServer,Oracle,Access,或者ODBC等;Recordset对象实现为当前ADO对象所连接的表进行各种操作。微软公司提供了一个控件Adodc控件,它是一个封装了ADODB对象大部功能的控件,不是VB6.0内部的部件,属于外部控件。因此,当你需要它的时候,你必须调用“部件”对话框,将它加入到工具箱中,方法如下:进入VB,右击工具箱,在弹出的菜单中选择“部件”窗体中选择“控件”选项卡,如图12.9。然后在控件列表框选择下列控件(打勾表示选中):,.,MicrosoftADODataContrl6.0(SP4)(ODLEDB);MicrosoftDataGridDataContrl6.0(SP4)(ODLEDB)。图12.9“部件”窗体,.,单击“确定”按钮,选中的ADO控件将添加到工具箱,如图12.10所示。图12.10把ADO控件添加到工具箱中,.,2ADODB对象连接连接ACCESS数据库要使用ADODB对象连接,你首先在VB模块或窗体声明一个新的ADODB对象,然后使用这个新的ADODB对象设置数据源,例如我们要连接到ACCESS数据库xsd1,方法如下:DimconAsNewADODB.Connection定义一个名为con的ADODB连接对象con.OpenProvider=Microsoft.Jet.OLEDB.4.0;DataSource=E:asscesxsd1.mdb;PersistSecurityInfo=False打开连接con对象的open方法就是打开一个数据连接,“Provider”是指数据连接提供程序,它是微软公司提供的一套数据连接对象,当连接到不同的数据库,你需要使用不同的数,.,据连接对象。上面就是指示con对象连接到Access数据库,“Datasource”是指你的Access数据库所在的路径。上面的连接方法是把数据连接指向绝对路径。我们开发一个项目的时候是不用绝对路径的,而是使用相对路径,这样的好处是当你的程序移动到其它盘符或电脑的时候,程序还可以运行。VB中有一个对象,它是指当前的程序:app对象,app对象里有一个属性是指当前程序所在的路径“app.Path”,上面的连接可以这样改为:con.OpenProvider=Microsoft.JetOLEDB4.0;DataSource=PersistSecurityInfo=False,.,(2)连接SQLServer数据库当你的程序后台是SQLServer数据库时,你要连接你所指定的数据库,你必须首先启动SQL服务器,然后才可以连接到你所需要的数据库。连接SQLServer数据库,没有路径之分。有两种连接方法,一种是以WINDOWNT集成安全模式;另一种是指定用户名和密码的方式。SQLServer数据库本身自带几个数据库,我们就以它自带的数据库为例,设置连接。以WINDOWNT集成安全模式的连接方法如下:DimconAsNewADODB.Connectioncon.OpenProvider=SQLOLEDB.1;IntegratedSecurity=SSPI;PersistSecurityInfo=False;InitialCatalog=Northwind以SQLServer数据库自带的帐号“sa“登录连接(它默认无密码):DimconAsNewADODB.Connectioncon.OpenProvider=SQLOLEDB.1;PersistSecurityInfo=False;UserID=saPWD=;InitialCatalog=Northwind,.,3ADODC控件连接ADODC控件是一个封装了ADODB对象大部功能的控件,上面已经说明调用该控件的方法。只要你把ADODC控件添加到你的程序中,就可以使用它来操作数据库。在使用ADODC控件进行数据库操作之前,得设置它的连接属性:“ConnectionString”,该属性是指示ADODC控件所要使用的数据连接提供程序及其数据库。设置其方法有两种:第一种方法,是直接调用前面创建的DSN数据源或是直接在属性面板里的“ConnectionString”属性进行适时连接,方法如下:在属性面板里找到“ConnectionString”属性,点击其右边的按钮,将出现一个“属性页”对话框,如下图12.11所示。选择“UseConnectionString”,点击右边的“Build”按钮,则出现“数据连接属性”对话框,如图12.12所示。,.,图12.11“属性页”对话框,.,图12.12“数据连接属性”对话框,.,选择你所需的连接数据提供程序。当你需要连接到Access数据库时,选择“MicrosoftJet4.0OLEDBProvider”,点击“下一步”则跳转到“连接”页,如图12.13所示,单击“选择或输入数据库名称(D)”后面的“”按钮,选择你的数据库所在的路径。当数据库设置有密码时,在密码处输入密码。点击“测试连接”,当连接成功时,则返回一个连接成功的对话框,否则将显示其错误。:,.,图12.13选择你的数据库所在的路径,.,第二种方法是在程序里设置其属性,例如有一个名为“adodc1”的adodc控件,设置如下:Adodc1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=PersistSecurityInfo=False如是SQLServer数据库,则更改其属性即可。4把ADO对象连接的数据库表填充到RecordSet对象前面我们提到过ADO其重要的一个对象:“Recordset”,它是你所要操作的结果集。我们设置好ADO的连接属性后,必须设置其recordset对象。Recordset对象有很多属性及方法,以下我们会逐步的了解其常用的属性和方法。使用ADO操作数据库的方法如下:,.,(1)ADODB对象创建一个工程,在其窗体中添加中一个“DataGrid”控件,用来展示程序返回的结果;一个ADO控件,用于记录的选择。如图12.14所示。图12.14嵌入ADO控件的窗体,.,在窗体的“load”事件中添加如下代码:PrivateSubForm_Load()Adodc1.ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;DataSource=PersistSecurityInfo=FalseAdodc1.CommandType=adCmdText命令类型Adodc1.RecordSource=select*fromordersSetDataGrid1.DataSource=Adodc1EndSub程序中定义了一个名为“rs”的Recordset对象,Recordset对象的Open方法的第一个参数是所要操作的表或SQL语句,第二个参数是连接对象,第三个是指示所要进行的操作,后面的二个可省。Set是VB6.0中的关键字,当你在程序代码中要把某个控件连接到表的某个字段时,该关键字不可缺少。,.,设置ADO控件的属性,使其与数据库连接。()在数据控件Adodc1的属性窗口中单击ConnectingString属性单击“”按钮,弹出“属性页”对话框,如图12.15所示。在其中选择“UseODBCDataSourceName”,并从其列表中选择“Acces_1”或可直接输入,单击“确定”。这样可使数据控件Adodc1与Access数据库xsd1连接起来。,.,图12.15“属性页”对话框,.,()在数据控件Adodc1的属性窗口中单击RecordSource属性。然后单击“”按钮,弹出“记录源”对话框。在“CommandType”中选择2-adCmdTable。在“TableStoredProcedureName”中选择或直接输入“Ask_1”,单击“确定”按钮。这样使数据控件Adodc1进一步与数据库xsd1中的Ask_1表发生关联。如下图12.16所示。图12.16设置“记录源”对话框,.,()设置表格控件DataGrid1的各项属性:置DataSource属性为Adodc1,使表格控件与数据源连接;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年金融反欺诈技术升级与大数据应用趋势分析报告
- 艺术品数字化交易平台市场竞争力分析报告2025
- 2025年事业单位工勤技能-江西-江西药剂员一级(高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西计算机信息处理员三级高级历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西图书资料员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东放射技术员四级(中级工)历年参考题库含答案解析
- 2020-2025年房地产估价师之开发经营与管理高分通关题型题库附解析答案
- 2025年事业单位工勤技能-北京-北京信号工-机车信号设备维修五级(初级工)历年参考题库典型考点含答案解析
- 2025年银行金融类-金融考试-银行业专业人员中级(法规+公司信贷)历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-劳动关系协调员-劳动关系协调员技师(二级)历年参考题库含答案解析(5套)
- WB/T 1036-2006菱镁制品用玻璃纤维布
- 【词汇】高中英语新教材词汇总表(共七册)
- 北京市各县区乡镇行政村村庄村名明细
- 笔迹、指纹鉴定申请书
- 长沙市历年中考数学试卷,2014-2021年长沙中考数学近八年真题汇总(含答案解析)
- 【英语】人教版英语八年级英语下册阅读理解专题复习练习(含解析)
- 《植物生理学》课件第四章+植物的呼吸作用
- 2022年出差管理制度员工出差管理制度
- 工作责任心主题培训ppt课件(PPT 26页)
- 完整解读新版《英语》新课标2022年《义务教育英语课程标准(2022年版)》PPT课件
- 国家公交都市评价指标体系
评论
0/150
提交评论