什么是ODBC ?

作者&投稿:张昭 (若有异议请与网页底部的电邮联系)
ODBC的概念是什么??~

ODBC(OpenDatabaseConnectivity,开放数据库互连)是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 ODBC是Open Database Connectivity的缩写,是MICROSOFT提出的数据库访问接口标准。ODBC定义了访问数据库的API一个规范,这些API独立于不同厂商的DBMS,也独立于具体的编程语言(但是MICROSOFT的ODBC文档是用C语言描述的,许多实际的ODBC驱动程序也是用C语言写就的。)ODBC规范后来被X/OPEN和ISO/IEC采纳,作为SQL标准的一部分,具体内容可以参看《ISO/IEC 9075-3:1995 (E) Call-Level Interface (SQL/CLI)》等相关的标准文件。 ODBC现在看来是一个比较古老的东西,在1996年左右就比较定型了,其最新的版本是3.52,MICROSOFT也不打算对它做什么大的更新,更多的目光应该被放到OLEDB、.NET DATA PROVIDER身上了。然而,正因为它是一个比较成熟和古老的规范,ODBC在大多数DBMS上都做可以使用,可以说一个像样的DBMS都应该支持ODBC 3.0或以上的版本。 如果你打算学习基于ODBC API的应用开发,最好的参考资料是MSDN。如果你打算学习如何开发一个ODBC DRIVER,最好的参考资料还是MSDN。如果你不打算采用ODBC API做开发,学习和了解ODBC也可以增加对DBMS的了解,也能更好地理解其他的数据库访问接口和技术。 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。 开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。它实际上是我们要在本章后面加以讨论的ADO的前身。Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。换句话说,访问DBF文件或Access Basic以得到MDB文件中的数据时,无需懂得Xbase程序设计语言。事实上,Visual C++就是这样一个程序设计平台,即Microsoft最初是以ODBC为目标的。 你会发现,ODBC工作起来和Windows一样枣它用包含在DLL内的驱动程序完成任务。其实,ODBC提供一套两个驱动程序:一个是数据库管理器的语言,另一个为程序设计语言提供公用接口。允许Visual C++用标准的函数调用经公用接口访问数据库的内容,是这两个驱动程序的汇合点。当然,还有其它和ODBC有关的实用程序类型的DLL。例如,一个这样的DLL允许你管理ODBC数据源。ODBC的实际管理接口出现在SYSTEM文件夹中的某个CPL(控制面板)文件中枣我们在后面要谈到这方面的问题。 ODBC的确能履行承诺,提供对数据库内容的访问,并且没有太多的问题。它没有提供数据库管理器和C之间尽可能最好的数据转换,这种情况是有的,但它多半能像广告所说的那样去工作。唯一影响ODBC前程的是,它的速度极低枣至少较早版本的产品是这样。ODBC最初面世时,一些开发者曾说,因为速度问题,ODBC永远也不会在数据库领域产生太大的影响。然而,以Microsoft的市场影响力,ODBC毫无疑问是成功了。今天,只要有两种ODBC驱动程序的一种,那么几乎每一个数据库管理器的表现都会很卓越。

----目前许多数据库系统均支持SQL,对于由SQL数据库组成的异构数据库系统,JDBC和ODBC为访问其异构成员提供了统一的方式,也为各异构成员之间的协作和多个成员之上的操作打下了基础。本文简单介绍了JDBC和ODBC对各个异构的数据库进行统一访问和协作的原理及其应用。

ODBC
----ODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语言。 ODBC总体结构有四个组件:
----· 应用程序 执行处理并调用ODBC API函数,以提交 SQL语句并检索结果。

----· 驱动程序管理器(Driver Manager) 根据应用程序需要加载/卸载驱动程序,处理ODBC函数调用,或把它们传送到驱动程序。

----· 驱动程序 处理ODBC函数调用,提交SQL请求到一个指定的数据源,并把结果返回到应用程序。如果有必要,驱动程序修改一个应用程序请求,以使请求与相关的DBMS支持的语法一致。

----· 数据源 包括用户要访问的数据及其相关的操作系统、DBMS及用于访问DBMS的网络平台。

----ODBC驱动程序的使用把应用程序从具体的数据库调用中隔离开来,驱动程序管理器针对特定数据库的各个驱动程序进行集中管理,并向应用程序提供统一的标准接口,这就为ODBC的开放性奠定了基础。

----数据库独立性

----ODBC是为最大的互用性而设计的,要求一个应用程序有用相同的源代码(不用重新编译或重新链接)访问不同的数据库管理系统(DBMS)的能力。

----ODBC定义了一个标准的调用层接口(CLI)。这包含 X/Open和ISO/IEC的CLI规范中的所有函数,并提供应用程序普遍需要的附加函数。每个支持ODBC的DBMS需要不同的库或驱动程序,驱动程序实现ODBC API中的函数。当需要改变驱动程序时,应用程序不需要重新编译或者重新链接,只是动态加载新的驱动程序,并调用其中的函数即可。如果要同时访问多个DBMS系统,应用程序可加载多个驱动程序。如何支持驱动程序取决于操作系统,例如,在Windows操作系统上,驱动程序是动态链接库(DLL)。

----使用相同源代码的应用程序访问不同的DBMS,体现了 ODBC的数据库独立性。

----对数据库特殊功能的支持

----各个DBMS参照的标准、提供的功能不尽相同,应用程序如何以统一的接口使用各个DBMS特有的功能呢?

----一方面,ODBC为所有DBMS功能都定义了公共接口。这些DBMS功能比多数DBMS支持的更多,但只要求驱动程序实现这些功能的一个子集。另一方面,ODBC定义了API和SQL语法一致层,它规定驱动程序应支持的基本功能。 ODBC还提供两个函数(SQLGetInfo和SQLGetFunctions)返回关于驱动程序和DBMS能力的一般信息及驱动程序支持的函数列表。因此,应用程序可以检查DBMS支持的特殊功能。

----这样,编写应用程序时,就可以检查并自动使用各个驱动程序对应的DBMS所支持的特殊功能。这样做的优点是当增加DBMS支持的功能时,应用程序不需要改变,只需安装更新的驱动程序,应用程序便可以自动发现并使用这些功能。

----互操作能力

----通过使用多个驱动程序可以同时访问多个DBMS系统。 ODBC提供的Driver Manager实现所有的ODBC函数,多数是传递调用给驱动程序中的ODBC 函数,并静态链接应用程序,或在应用程序运行时加载它。这样,应用程序在Driver Manager 中按名调用驱动ODBC函数,而不是通过每个驱动程序中的指针。当应用程序需要通过特定的驱动程序时,它首先需要一个标识驱动程序的连接句柄。Driver Manager加载驱动程序,并存储每个驱动程序中的函数地址。要使驱动程序调用一个ODBC函数,可在应用程序调用 Driver Manager中的函数,并为驱动程序传送连接句柄,然后Driver Manager使用以前存储的地址来调用函数。

----ODBC可以同时连接到多个DBMS,解决了同时访问多个DBMS的问题,提供了异构成员数据库之间互操作的能力。

JDBC
----JDBC(Java DataBase Connectivity)是Java与数据库的接口规范,JDBC定义了一个支持标准SQL功能的通用低层的应用程序编程接口(API),它由Java 语言编写的类和接口组成,旨在让各数据库开发商为Java程序员提供标准的数据库API。 JDBC API定义了若干Java中的类,表示数据库连接、SQL指令、结果集、数据库元数据等。它允许Java程序员发送SQL指令并处理结果。通过驱动程序管理器,JDBC API可利用不同的驱动程序连接不同的数据库系统。
----JDBC与ODBC都是基于X/Open的SQL调用级接口, JDBC的设计在思想上沿袭了ODBC,同时在其主要抽象和SQL CLI实现上也沿袭了ODBC,这使得JDBC容易被接受。JDBC的总体结构类似于ODBC,也有四个组件:应用程序、驱动程序管理器、驱动程序和数据源。

----JDBC保持了ODBC的基本特性,也独立于特定数据库。使用相同源代码的应用程序通过动态加载不同的JDBC驱动程序,可以访问不同的DBMS。连接不同的DBMS时,各个DBMS之间仅通过不同的URL进行标识。JDBC的 DatabaseMetaData接口提供了一系列方法,可以检查DBMS对特定特性的支持,并相应确定有什么特性,从而能对特定数据库的特性予以支持。与ODBC一样,JDBC也支持在应用程序中同时建立多个数据库连接,采用JDBC可以很容易地用SQL语句同时访问多个异构的数据库,为异构的数据库之间的互操作奠定基础。

----但是,JDBC除了具有ODBC的上述特点外,更具有对硬件平台、操作系统异构性的支持。这主要是因为ODBC使用的是C语言,而JDBC使用的是Java语言。Java语言具有与平台无关、移植性强、安全性高、稳定性好、分布式、面向对象等众多优点,而JDBC确保了“100%纯Java”的解决方案,利用Java的平台无关性, JDBC应用程序可以自然地实现跨平台特性,因而更适合于Internet上异构环境的数据库应用。

----此外,JDBC驱动程序管理器是内置的,驱动程序本身也可通过Web浏览器自动下载,无须安装、配置;而ODBC驱动程序管理器和ODBC驱动程序必须在每台客户机上分别安装、配置。

JDBC和ODBC在Internet上的应用
----JDBC和ODBC由于具有数据库独立性甚至平台无关性,因而对Internet上异构数据库的访问提供了很好的支持。
----在Internet上访问数据库通常采用三层模式。以JDBC为例,在三层模式中客户端的Java Applet主要作为用户界面,它不直接与数据库交换信息,而是通过自定义的应用层网络协议与应用服务器交互,应用服务器通过JDBC与数据库服务器交换信息,并实现应用逻辑。DM3的JDBC和ODBC驱动程序支持目前流行的ASP和JSP技术,可以分别借助ODBC和JDBC同时访问Internet上多个异构的数据库。

----ASP是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP使用VBScript之类的脚本语言,它在HTML代码中嵌入某种程序代码,由HTML代码负责描述信息的显示样式,由嵌入的程序代码来描述处理逻辑。在ASP 下,VBScript代码被ASP引擎在Web服务器端解释执行,执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。这里,VBScript代码可以通过ODBC访问多个异构的数据库。

----JSP是一种基于Java Servlet的Web开发技术,它和ASP 非常相似,但又有区别:在JSP下,嵌入HTML页面的程序代码是Java代码;页面中嵌入的程序代码被编译成Servlet(这种编译操作仅在对JSP页面的第一次请求时发生)并由Java 虚拟机执行。这里Java代码可以通过JDBC访问多个异构的数据库,其平台无关性特别好。当前,Internet上的数据库应用已越来越多,JDBC和ODBC必将在Internet上的异构数据库访问中发挥重要的作用。

1、ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分。

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

3、一种动态链接库 (DLL),支持 ODBC 的应用程序(如 Excel)可以用它来访问 ODBC 数据源。每个 ODBC 驱动程序针对一个数据库管理系统 (DBMS),如 SQL Server、Access 等等。

4、MyODBC是提供标准ODBC界面存取的程序,用VB、VC、BCB、Access等等透过ODBC直接存取数据库,减少Web Server更新MySQL数据库。

5、unixodbc是一个来连接数据库的组件。该版本主要是支持 64 位的 SQLLEN,修复了一些bug;另外驱动部分和图形化设置工具分开为两个独立的项目。它能让你在Unix/Linux系统下使用ODBC。

参考资料来源:百度百科—unixodbc

百度百科—myodbc

百度百科—ODBC驱动程序

百度百科—ODBC技术

百度百科—ODBC数据源



ODBC是一种连接数据库的开放标准。
ODBC(Open
DataBase
Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows
Open
Services
Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
它本身就是为了是数据库的使用者不必考虑使用的是何种数据库而只需要相同的操作而设计的。
ODBC是Open
Database
Connect即开放数据库互连的简称,它是由Microsoft
公司于1991
年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性。
ODBC
主要由驱动程序和驱动程序管理器组成。驱动程序是一个用以支持ODBC
函数调用的模块,每个驱动程序对应于相应的数据库,当应用程序从基于一个数据库系统移植到另一个时,只需更改应用程序中由ODBC
管理程序设定的与相应数据库系统对应的别名即可。驱动程序管理器可链接到所有ODBC
应用程序中,它负责管理应用程序中ODBC
函数与DLL
中函数的绑定。
ODBC
使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方,ODBC
都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是ODBC
一经推出就获得巨大成功的重要原因之一。
从结构上分,ODBC
分为单束式和多束式两类。
1.单束式驱动程序
单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。当用户进行数据库操作时,应用程序传递一个ODBC
函数调用给ODBC
驱动程序管理器,由ODBC
API
判断该调用是由它直接处理并将结果返回还是送交驱动程序执行并将结果返回。由上可见,单束式驱动程序本身是一个数据库引擎,由它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方。
2.多束式驱动程序
多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并不执行数据处理操作而用于远程操作的网络通信协议的一个界面。前端应用程序提出对数据库处理的请求,该请求转给ODBC
驱动程序管理器,驱动程序管理器依据请求的情况,就地完成或传给多束驱动程序,多束式驱动程序将请求翻译为特定厂家的数据库通信接口(如Oracle
的SQLNet)所能理解的形式并交于接口去处理,接口把请求经网络传送给服务器上的数据引擎,服务器处理完后把结果发回给数据库通信接口,数据库接口将结果传给多束式ODBC
驱动程序,再由驱动程序将结果传给应用程序。

ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

一个完整的ODBC由下列几个部件组成:

应用程序(Application)。

ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

ODBC API。

ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

各部件之间的关系如图下图所示:

应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C++ 5.0安装程序可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC5.0只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC 5.0的安装程序并选择所需的驱动程序。


汤旺河区18848532393: ODBC - 搜狗百科
陀黄鼻通: 开放数据库互连(Open Database Connectivity,ODBC)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)...

汤旺河区18848532393: 计算机中的简称JDBC和ODBC分别是什么意思? -
陀黄鼻通: ODBCODBC(Open DataBase Connectivity)是微软倡导的、当前被业界广泛接受的、用于数据库访问的应用程序编程接口(API),它以X/Open和 ISO/IEC的调用级接口(CLI)规范为基础,并使用结构化查询语言(SQL)作为其数据库访问语...

汤旺河区18848532393: 什么是ODBC啊?
陀黄鼻通: ODBC是一种软件,程序对数据库的访问技术,全称:open database conectivity,即开放式数据库互联

汤旺河区18848532393: ODBC是什么 -
陀黄鼻通: 开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术.它实际上是我们要在本章后面加以讨论的ADO的前身.Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法....

汤旺河区18848532393: ODBC标准接口是什么?
陀黄鼻通: 这是我的看法,请采纳. ODBC标准接口ODBC(OpenDatabaseConnectivity)的中文名字是开放式数据库连接,它是微软公司提出的数据库连接标准,使用ODBC方式连接数据库的第一步是创建数据源,比如我们可以利用WINDOWS下控制面板中的“32BITODBC”选项来创建驱动某种数据库的数据源,创建好数据源之后,我们就可以在本地计算机中利用定义好的数据源存取后台数据库中的数据了

汤旺河区18848532393: odbc数据源 - ODBC数据源什么意思啊?
陀黄鼻通: ODBC(Open DataBase Conectivity)是微软公司制定的标准编程接口,只要有相应的ODBC驱动程序,就可以通过ODBC连结操作各种不同的数据库.通常通过控制面板中...

汤旺河区18848532393: 请问各位什么是ODBC数据源管理器
陀黄鼻通: ODBC 是数据库和计算机系统进行通讯的管理器,没有它,你即便装了数据库,也不能将数据和其他计算机资源之间进行沟通. 在xp里你可以这样开:(因为我的系统是英文的,所以翻译的不一定准确) 开始菜单-->control panel(管理器)-->administrative tools(管理员工具)-->Data source(ODBD)ODBC 数据源管理器.

汤旺河区18848532393: 什么是ODBC接口 -
陀黄鼻通: ODBC 即(开放数据库联接 Open Database Connectivity)是一套 API,用这套 API 允许你书写可以应用在各种 RDBMS 服务器上互操作的应用.ODBC 提供一个与产品无关的在前端应用和后端数据库服务器之间的接口,允许用户可以书写可以运行于来自不同厂商的数据库服务器上的应用.

汤旺河区18848532393: 什么是ODBC?其作用是什么?
陀黄鼻通: 众多的厂商推出了行行色色的数据库系统,它们在性能、价格和应用范围上各有千秋... 微软提出的开放式数据库互连(Open-DataBase-Connectivity,即ODBC)成为一个...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网