全面领会 ODBC技巧

时间:2023-03-10 14:14:56 松涛 计算机毕业论文 我要投稿
  • 相关推荐

全面领会 ODBC技巧

  在我们平凡无奇的学生时代,很多人都经常追着老师们要知识点吧,知识点也可以理解为考试时会涉及到的知识,也就是大纲的分支。哪些知识点能够真正帮助到我们呢?下面是小编整理的全面领会 ODBC技巧,仅供参考,大家一起来看看吧。

  目前,众多的厂商推出了行行色色的数据库系统 ,它们在性能、价格 和利用领域上各有千秋。一个综合信息系统 的各部门由于需求区别等原因,往往会存在多种数据库,它们之间的互连造访成为一个棘手 的问题,特别 是当用户需要 从客户机端造访不同的服务器时。

  微软提出的开放式数据库互连(Open-DataBase-Connectivity,即ODBC)成为目前一个强有力解决方案 ,并逐步成为Windows和Macintosh平台上的标准 接口,并推动 了这方面的开放性和标准 化。

  一、ODBC的产生 和发展

  关系型数据库产生 后很快就成为数据库系统 的主流产品,由于每个DBMS厂商都有自己的一套标准 ,人们很早就产生 了标准 化的想法,于是产生 了SQL,由于其语法规范逐渐为人所接管,成为RDBMS上的主导语言。最初,各数据库厂商为领会 决互连的问题,往往供给嵌入式SQL API,用户在客户机端要操作系统 中的RDBMS时,往往要在程序中嵌入SQL语句进行预编译。由于不同厂商在数据款式、数据操作、具体实现甚至语法方面都具有不同程度 的区别,所以彼此不能兼容。

  长期以来,这种API的非规范情况 令用户和RDBMS厂商都不能满意。在80年代后期,一些知名的厂商包孕Oracle、Sybase、Lotus、Ingres、Informix、HP、DEC等结成了SQL Access Group(简称SAG),提出了SQL API的规范核心:调用级接口(Call Level Interface),简称CLI。

  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法子 、标准 的数据类型表现等。

  由于ODBC思想上的先进性,且没有同类的标准 或产品与之竞争,它一枝独秀,推出后仅仅两三年就受到了众多厂家与用户的青睐,成为一种广为接管的标准 。目前,已经有130多家独立厂商发布了对ODBC的支撑,常见的DBMS都供给了ODBC的驱动接口,这些厂商包孕Oracle、Sybase、Informix、Ingres、IBM(DB/2)、DEC(RDB)、HP(ALLBASE/SQL)、Gupta、Borland(Paradox)等。目前,ODBC已经成为客户机/服务器系统 中的一个首要支撑技巧。

  二、ODBC的根基思想与特性

  ODBC的根基思想是为用户供给简略、标准 、透明的数据库连接 的公共编程接口,开发厂商根据 ODBC的标准 去实现底层的驱动程序,这个驱动对用户是透明的,并容许根据 不同的DBMS采纳不同的技巧加以优化实现,这就利于不断吸收 新的技巧而趋完善 。

  这同时也就是数据库驱动的思想,它很类似 于Windows中打印驱动的思想。在Windows中,用户安装不同的打印驱动程序,应用同样一条打印语句或操作,就可很容易地实现在不同打印机上打印输出,而不需要 领会 内部的具体原理。ODBC出现以后,用户安装不同的DBMS驱动就可用同样的SQL语句实现在不同DBMS上进行同样的操作,而且无需预编译。ODBC带来了数据库连接 法子 的变化,如图1所示。在传统法子 中,开发人员要熟识多个DBMS及其API,一旦DBMS端出现变动,则往往导致用户端系统 重新编建或者源代码的修正,这给开发和掩护工作带来了很大艰苦。在ODBC法子 中,不管底层网络环境如何,也无论采纳何种DBMS,用户在程序中都应用同一套标准 代码,无需逐个领会 各DBMS及其API的特性,源程序不因底层的变更而重新编建或修正,从而减轻了开发掩护的工作量,缩短了开发周期。

  @@12W03500.GIF;图1 数据库连接 法子 的转变 @@

  概括起来,ODBC具有以下机动的特性:

  1. 应用户程序有很高的互操作性,雷同的目标 代码实用于不同的DBMS;

  2. 由于ODBC的开放性,它为程序集成供给了方便,为客户机/服务器结构 供给了技巧支撑;

  3. 由于利用与底层网络环境和DBMS离开,简化了开发掩护上的艰苦。

  三、ODBC的系统结构 和实现

  ODBC是依赖分层结构 来实现的,如此可保证其标准 性和开放性。图2所示为ODBC的系统结构 ,它共分为四层:利用程序、驱动程序管理器、驱动程序和数据源。微软公司对ODBC规程进行了规范,它为利用层的开发者和用户供给标准 的函数、语法和差错代码等,微软还供给了驱动程序管理器,它在Windows中是一个动态链接库即ODBC.DLL。驱动程序层由微软、DBMS厂商或第三开发商供给,它必须 符合ODBC的规程,对于Oracle,它是ORA6WIN.DLL,对于SQL Server,它是SQLSRVR.DLL。

  @@12W03501.GIF;图2 ODBC系统结构 @@

  下面我们详细介绍各层的功效。

  1. 利用程序层(Application)

  应用 ODBC接口的利用程序可履行以下任务 :

  ①恳求与数据源的连接 和会话(SQLConnect);

  ②向数据源发送SQL恳求 (SQLExecDirct或SQLExecute);

  ③对SQL恳求的效果定义存储区和数据款式;

  ④恳求效果;

  ⑤处理 差错;

  ⑥如果需要 ,把效果返回给用户;

  ⑦对事务进行把持,恳求履行或回退操作(SQLTransact);

  ⑧终止对数据源的连接 (SQLDisconnect)。

  2. 驱动程序管理器(Driver Manager)

  由微软供给的驱动程序管理器是带有输入库的动态连接 库ODBC.DLL,其首要目标是装入驱动程序,此外还履行以下工作:

  ①处理 几个ODBC初始化调用;

  ②为每一个驱动程序供给 ODBC函数入口点;

  ③为ODBC调用供给参数和次序 验证。

  3. 驱动程序(Driver)

  驱动程序是实现ODBC函数和数据源交互的DLL,当利用程序调用SQL Connect或者SQLDriver Connect函数时,驱动程序管理器装入相应的驱动程序,它对来自利用程序的ODBC函数调用进行应答,遵守其请求履行以下任务 :

  ①建立 与数据源的连接 ;

  ②向数据源提交恳求;

  ③在利用程序需求时,转换数据款式;

  ④返回效果给利用程序;

  ⑤将运行差错款式化为标准 代码返回;

  ⑥在需要 时阐明和处理 光标。

  以上这些功效都是对利用程序层功效的具体实现。驱动程序的配置法子 可以划分为以下两种。

  (1)单层次(single-tier) 这种法子 下,驱动程序要处理 ODBC调用SQL语句,并直接节制数据库,因此具有数据存取功效。这种配置最常见的是同一台微机之上异种数据库通过ODBC存取,如在Powerbuilder中存取XBase、Excel、Paradox等数据文件,如图3所示。@@12W03502.GIF;图3 一层配置示意图@@

  (2)多层次(multiple-tier) 这种配置中驱动程序仅仅处理 ODBC调用,而将SQL语句交给服务器履行,然后返回效果。这种情况 往往是利用程序、驱动程序管理器、驱动程序驻留在客户机端,而数据源和数据存取功效放在服务器端。譬如用Foxpro或Excel存取SQL Server或Oracle上的数据,如图4所示。

  @@12W03503.GIF;图4 二层配置示意图@@

  有时在以上两者之间加上网关以解决通信 协议 的转换等问题,这时驱动程序要将恳求先传送给网关,如造访 DEC RDB和IBM AS/400时的配置,如图5所示。

  @@12W03504.GIF;图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的推广和规范,用户和开发商会更加依附于这一技巧。

  数据库集群的概念

  微软用集群这个词和行业内其他的公司的用法和意义是不一样的。微软用集群这个词指的是故障转移群体。

  业界其他一些公司定义集群,比如说Oracle是叫做可扩展性的升级群体(Cluster)。扩展性和可用性是两个很接近的概念,在很多的时候,他们两者会互相的影响,如果可用性不存在,扩展性也无从谈起。我现在要介绍的是关于SQL Server 2005在这方面的特性,是非常有利的一个特性。微软有一个叫做SSD(可扩展性共享数据库技术)。

  我们应该尽量谨慎使用SSD这一缩写,因为SSD在业界有其他的一些表示,我们在微软内部用SSD来谈可拓展性的需求。相对于Oracle,IC是一个比较类似的技术。这种SSD技术有一个局限性,要求数据库是只读的,但是同时又能够被多个SQL Server Instense进行并发的访问,从这个上面来说,和Lise提供的功能是一致的,但是具有一定的局限性。我们在美国有一个最大的零售商就是使用这种技术来构建它的数据仓库。这个零售商每周要更新一次数据库系统,同时又有多个SQL Server要同时访问这个数据库。正是基于这种并发访问技术,同时提高了很高的可用性,如果一个服务器宕掉了,其他的服务器还可以同时对外提供服务。像这个典型的案例,在我们在线的帮助和相应的白皮书中都有详细的描述。

  同时,我们也在使用相对于业界其他公司不同设计架构的一种方式来真正实现没有局限性,既有高扩展性又有高可用性的解决方案。还有很多用户在使用一种叫做数据路由的数据库。一个典型的案例是美国的MySpace公司,是美国最大的个人空间服务提供商,它就使用了数据路由数据库的技术来实现他对外用100个SQL Server的服务来集中对外提供服务。DID技术就能很好的平衡高可用性、扩展性这种综合的要求。而且从微软自身MSN.com网站也是使用同样的DID技术来提供高可用性、高拓展性的要求。

【全面领会 ODBC技巧】相关文章:

全面了解ODBC技术10-08

应用 ODBC技术访问数据源的方法及实例10-10

混凝土的施工温度与裂痕控制的领会09-27

根底公开室混凝土施工的几点领会09-27

Delphi 5 数据库应用中ODBC数据源的自动管理10-06

让特殊学生领会音乐的美妙特殊教育论文05-02

全面预算发展趋势-战略导向全面预算04-21

谈谈全面成本管理10-21

企业全面预算管理的研究10-28

实行全面预算管理的探索10-06