第8章_C#数据库编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第8章_C#数据库编程.ppt》由会员分享,可在线阅读,更多相关《第8章_C#数据库编程.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第8 8章章章章 ODBCODBC及及及及C#C#数据库编程数据库编程数据库编程数据库编程目前,众多的厂商推出了行行色色的数据库系统,它们在性能、价格和应用范围上各有千秋。一个综合信息系统的各部门由于需求差异等原因,往往会存在多种数据库,它们之间的互连访问成为一个棘手的问题,特别是当用户需要从客户机端访问不同的服务器时。微软提出的开放式数据库互连(Open DataBase Connectivity,即ODBC)成为目前一个强有力解决方案,并逐步成为Windows和Macintosh平台上的标准接口,并推动了这方面的开放性和标准化。ODBCODBC关系型数据库产生后很快就成为数据库系统的
2、主流产品,由于每个DBMS厂商都有自己的一套标准,人们很早就产生了标准化的想法,于是产生了SQL,由于其语法规范逐渐为人所接受,成为RDBMS上的主导语言。最初,各数据库厂商为了解决互连的问题,往往提供嵌嵌入式入式SQL API,用户在客户机端要操作系统中的RDBMS时,往往要在程序中嵌入SQL语句进行预编译。由于不同厂商在数据格式、数据操作、具体实现甚至语法方面都具有不同程度的差异,所以彼此不能兼容。这种API的非规范情况令用户和RDBMS厂商都不能满意。在80年代后期,一些著名的厂商包括Oracle、Sybase、Lotus、Ingres、Informix、HP、DEC等结成了SQL Ac
3、cess Group(简称SAG),提出了SQL API的规范核心:调用级接口(Call Level Interface),简称CLI。一、一、一、一、ODBCODBC的产生和发展的产生和发展的产生和发展的产生和发展1991 年11月,微软宣布了ODBC,次年推出可用版本。1992年2月,推出了ODBC SDK 2.0版。ODBC基于SAG的SQL CAE草案所规定的语法,共分为Core、Level 1、Level 2三种定义,分别规范了22、16、13共51条命令,其中29条命令甚至超越了SAG CLI中原有的定义,功能强大而灵活。它还包括标准的错误代码集、标准的连接和登录DBMS方法、标准
4、的数据类型表示等。由于ODBC思想上的先进性,且没有同类的标准或产品与之竞争,它一枝独秀,推出后仅仅两三年就受到了众多厂家与用户的青睐,成为一种广为接受的标准。目前,已经有130多家独立厂商宣布了对ODBC的支持,常见的DBMS都提供了ODBC的驱动接口,这些厂商包括Oracle、Sybase、Informix、Ingres、IBM(DB/2)、DEC(RDB)、HP(ALLBASE/SQL)、Gupta、Borland(Paradox)等。目前,ODBC已经成为客户机/服务器系统中的一个重要支持技术。二、二、ODBC的基本思想与特点的基本思想与特点ODBC的基本思想是为用户提供简单、标准、透
5、明的数据库连接的公共编程接口,开发厂商根据ODBC的标准去实现底层的驱动程序,这个驱动对用户是透明的,并允许根据不同的DBMS采用不同的技术加以优化实现,这就利于不断吸收新的技术而趋完善。这同时也就是数据库驱动的思想,它很类似于Windows中打印驱动的思想。在Windows中,用户安装不同的打印驱动程序,使用同样一条打印语句或操作,就可很容易地实现在不同打印机上打印输出,而不需要了解内部的具体原理。ODBC出现以后,用户安装不同的DBMS驱动就可用同样的SQL语句实现在不同DBMS上进行同样的操作,而且无需预编译。ODBC带来了数据库连接方式的变革,在传统方式中,开发人员要熟悉多个DBMS及
6、其 API,一旦DBMS端出现变动,则往往导致用户端系统重新编建或者源代码的修改,这给开发和维护工作带来了很大困难。在ODBC方式中,不管底层网络环境如何,也无论采用何种DBMS,用户在程序中都使用同一套标准代码,无需逐个了解各DBMS及其API的特点,源程序不因底层的变化而重新编建或修改,从而减轻了开发维护的工作量,缩短了开发周期。ODBC工作原理概述工作原理概述ODBC应用系统的体系结构应用系统的体系结构:一、用户应用程序 二、驱动程序管理器 三、数据库驱动程序四、ODBC数据源管理 ODBC访问数据库的工作流程访问数据库的工作流程客户程序A客户程序BODBC驱动程序管理器DBMS-A驱动
7、程序DBMS-B驱动程序数据库A数据库B应用程序应用程序使用ODBC接口的应用程序可执行以下任务:请求与数据源的连接和会话(SQLConnect);向数据源发送SQL请求(SQLExecDirct或SQLExecute);对SQL请求的结果定义存储区和数据格式;请求结果;处理错误;如果需要,把结果返回给用户;对事务进行控制,请求执行或回退操作(SQLTransact);终止对数据源的连接(SQLDisconnect)。驱动程序管理器驱动程序管理器 由微软提供的驱动程序管理器是带有输入库的动态连接库ODBC.DLL,其主要目的是装入驱动程序,此外还执行以下工作:处理几个ODBC初始化调用;为每一
8、个驱动程序提供ODBC函数入口点;为ODBC调用提供参数和次序验证。数据库驱动程序数据库驱动程序驱动程序是实现ODBC函数和数据源交互的DLL,当应用程序调用SQL Connect或者SQLDriver Connect函数时,驱动程序管理器装入相应的驱动程序,它对来自应用程序的ODBC函数调用进行应答,按照其要求执行以下任务:建立与数据源的连接;向数据源提交请求;在应用程序需求时,转换数据格式;返回结果给应用程序;将运行错误格式化为标准代码返回;在需要时说明和处理光标。ODBC数据源管理数据源管理 数据源:是最终用户需要访问的数据,包含了数据库位置和数据库类型等信息,是一种数据连接的抽象 数据
9、源对最终用户是透明的 ODBC给每个被访问的数据源指定唯一的数据源名(Data Source Name,简称DSN),并映射到所有必要的、用来存取数据的低层软件在连接中,用数据源名来代表用户名、服务器名、所连接的数据库名等最终用户无需知道DBMS或其他数据管理软件、网络以及有关ODBC驱动程序的细节开放数据库互连(Open Database Connectivity ODBC)ODBC是一个函数库,它提供了一个连接到底层数据库系统的公共应用程序接口 通过一个库驱动程序与底层数据库进行通信 通过ODBC可以使得数据库的更改变得非常容易,对应用程序来说只需改换一下驱动程序。查询不同的数据库,可以采
10、用相同的代码,而无需或者仅需极少地进行代码修改。通过ODBC访问数据库的基本步骤如下:创立并配置数据源;建立一个与数据源的对话连接;向数据源发出SQL请求;定义一个缓冲区和数据格式用于存储访问结果;提取结果;处理各种错误;向用户报告结果;关闭与数据源的连接 ODBC数据源的配置数据源的配置odbc中提供三种DSN。用户DSN只能用于本用户。系统DSN和文件DSN的区别在于连接信息的存放位置不同:系统DSN存放在odbc储存区里,而文件DSN则放在一个文本文件中ODBC(开放数据库互连开放数据库互连)是是 Microsoft引引进的一种早期数据库接口技术。进的一种早期数据库接口技术。它实际上是它
11、实际上是ADO的前身。的前身。ODBC、OLE DB及及ADOODBC(Open database connectivity)配置ODBC的步骤OLE DBADOODBCODBC:微软开发的用于连接各种关系型数据库的函数库,以动态链接库的形式提供给程序使用,其目的是给出统一的编程接口,从而简化数据库应用程序的编写。ODBC的构成:主要包括ODBC驱动程序管理器(odbc32.dll)及ODBC驱动程序(如:Oracle的驱动包含在sqora32.dll)。应用程序与驱动程序管理器交互,驱动程序管理器作用于数据库的对应驱动程序与数据库进行交互,不同的数据库产品用不同的驱动程序。OLE DB微软用
12、于替代ODBC的基于COM的方案其目的是给出操作各种数据源的统一编程接口。主要由OLE DB 提供者构成,相当于ODBC中的驱动程序。ADO(ActiveX Data Objects)在OLE DB函数库基础上,再次封装的一系列函数库,使得用户对OLE DB的使用更加简单。在各种Windows编程工具上,一般都提供了对ADO的支持,使用方式基本相同。同样,在ODBC基础上,也再次封装了另外的函数库:DAO及RDO。DAO及RDO是过时的技术。C#C#数据库编程数据库编程数据库编程数据库编程Connection(连接)连接)要访问数据库中的数据,首先需要建立与该数据库要访问数据库中的数据,首先需
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- _C 数据库 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内