@@;图2 odbc体系结构@@下面我们详细介绍各层的功能。1. 应用程序层(application)使用odbc接口的应用程序可执行以下任务:①请求与数据源的连接和会话(sqlconnect);②向数据源发送sql请求(sqlexecdirct或sqlexecute);③对sql请求的结果定义存储区和数据格式;④请求结果;⑤处理错误;⑥如果需要,把结果返回给用户;⑦对事务进行控制,请求执行或回退操作(sqltransact);⑧终止对数据源的连接(sqldisconnect)。2. 驱动程序管理器(driver manager)由微软提供的驱动程序管理器是带有输入库的动态连接库,其主要目的是装入驱动程序,此外还执行以下工作:①处理几个odbc初始化调用;②为每一个驱动程序提供odbc函数入口点;③为odbc调用提供参数和次序验证。3. 驱动程序(driver)驱动程序是实现odbc函数和数据源交互的dll,当应用程序调用sql connect或者sqldriver connect函数时,驱动程序管理器装入相应的驱动程序,它对来自应用程序的odbc函数调用进行应答,按照其要求执行以下任务:①建立与数据源的连接;②向数据源提交请求;③在应用程序需求时,转换数据格式;④返回结果给应用程序;⑤将运行错误格式化为标准代码返回;⑥在需要时说明和处理光标。以上这些功能都是对应用程序层功能的具体实现。驱动程序的配置方式可以划分为以下两种。(1)单层次(single-tier) 这种方式下,驱动程序要处理odbc调用sql语句,并直接操纵数据库,因此具有数据存取功能。这种配置最常见的是同一台微机之上异种数据库通过odbc存取,如在powerbuilder中存取xbase、excel、paradox等数据文件,如图3所示。@@;图3 一层配置示意图@@(2)多层次(multiple-tier) 这种配置中驱动程序仅仅处理odbc调用,而将sql语句交给服务器执行,然后返回结果。这种情况往往是应用程序、驱动程序管理器、驱动程序驻留在客户机端,而数据源和数据存取功能放在服务器端。譬如用foxpro或excel存取sql server或oracle上的数据,如图4所示。@@;图4 二层配置示意图@@有时在以上两者之间加上网关以解决通信协议的转换等问题,这时驱动程序要将请求先传送给网关,如访问dec rdb和ibm as/400时的配置,如图5所示。@@;图5 三层配置示意图@@4. 数据源数据源由用户想要存取的数据和它相关的操作系统、dbms及网络环境组成。四、一致性级别从应用程序观点来看,最理想的情况是每个数据源和驱动程序都支持同一套odbc函数调用和sql语句。但是由于形形色色的dbms在实现上有很大的差异,它们所依赖的系统和环境也各不相同,在对odbc支持的程度上就不一致。一致性级别(conformance levels)建立了对众多功能的标准划分,为应用程序和驱动程序提供帮助和选择的依据。它划定了驱动程序所支持的odbc函数和sql语句的范围,我们可以用sqlgetinfo、sqlgetfunctions、sqltypeinfo三个函数获知驱动程序所支持的功能集。odbc从api和sql语法两方面划分级别。1. api的一致性odbc将函数调用划分为三级。(1)核心api 它包括了与sag的cli相匹配的基本功能,包括:分配与释放环境、连接及语句句柄;连接到数据源;准备并执行sql语句或立即执行sql语句;为sql语句和结果列中的参数分配存储器;从结果中检索数据,检索结果的信息;提交和撤消事务处理;检索错误信息。(2)一级api 它包括了核心api的全部功能,比如用特定驱动程序的对话框连接到数据源;设置和查询语句值和连接选项;送部分或全部参数值;检索部分和全部结果;检索目录信息;检索关于驱动程序和数据源的信息。(3)二级api 其功能包括核心和一级api的全部功能;浏览可获得的连接和可获得的数据源列表;发送参数值数组,检索结果数组;检索参数个数及参数描述;应用可卷动的光标;检索sql语句和本机表格;检索各种目录信息;调用转换dll。2. sql语法的一致性级别从sql方面可划分为最小的sql语法、核心sql语法和扩展sql语法三个等级。五、odbc的应用与前景odbc的出现给用户描绘了一个诱人的前景,即网络中的windows用户可以方便地访问各种数据库。现在,在微软推出的许多产品中都提供了odbc支持,如visal basic 3.0、visal c1.5、excel 5.0、word 6.0、foxpro、access等。同时其他一些应用软件和开发工具也提供了对odbc的支持。因此用户只要安装不同的odbc驱动程序,就可存取相应的数据库产品,而不管用户使用何种前台应用软件,也不管后台是何种数据库,这个存取的过程是一致的。但是由于odbc产生的时间还不长,其应用也同时存在着一些问题。首先,它的层次比较多,表现在性能上比专有的api要慢,这是其标准化和开发性所带来的必要的代价;其次,由于odbc规定了三个层次的一致性级别,应用程序与驱动程序之间的匹配就会出现一些问题和矛盾,比如某些驱动程序支持的级别比较低,而应用程序要求的比较高;再者,由于不同的驱动程序为不同的开发商所开发,测试工作不能统一,而现有的开发和测试工具并不很完善;同时,在非sql的数据库系统上的应用也存在一些问题。微软公司将odbc作为一项很重要的技术,它已承诺进一步改进odbc技术,为驱动程序开发者提供更先进的开发和测试工具,还将交付系统管理和监控工具,它还将与dbms厂商和第三方厂商建立更密切的合作,以期使驱动程序支持更高级别的一致性,并在规范化方面有所完善。目前,odbc已为数据库供应商组织内部所认可,同时为众多应用软件厂商和第三方开发商所使用,相信随着sql的推广和规范,用户和开发商会更加依赖于这一技术。
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回电子论文列表