第26章:连接器 / 26.1. MySQL Connector/ODBC / 26.1.2. 关于ODBC和MyODBC的一般信息
26.1.2.1. ODBC介绍
26.1.2.2. MyODBC体系结构
26.1.2.3. ODBC驱动管理器
26.1.2.4. MySQL ODBC驱动程序的类型

26.1.2.1. ODBC介绍

开放式数据库连接性(ODBC)是广泛接受的用于数据库访问的应用程序编程接口(API)。它基于针对数据库API的CLI(调用层接口)规范(来自X/Open和ISO/IEC),并采用了结构化查询语言(SQL)作为其数据库访问语言。

26.1.16节,“MyODBC API引用”中,概要介绍了MyODBC支持的ODBC功能。关于ODBC的更多信息,请参阅http://www.microsoft.com/data/

26.1.2.2. MyODBC体系结构

MyODBC体系结构建立在5个组件上,如下图所示:

MyODBC Architecture

·         应用程序:

应用程序指的是通过调用ODBC API来访问MySQL服务器上数据的程序。应用程序使用标准的ODBC调用与驱动管理器进行通信。应用程序不关心数据的存储位置,存储方式,甚至不关心为访问数据而进行的系统配置方式。它仅需要知道数据源名(DSN)。

对于所有的应用程序,无论它们使用OBDC的方式是什么,很多任务是共同的。这些任务包括:

o        选择MySQL服务器,并与之连接。

o        提交将要执行的SQL语句。

o        检索结果(如果有的话)。

o        处理错误。

o        提交或回滚包含SQL语句的事务。

o        断开与MySQL服务器的连接。

由于大多数数据访问工作是使用SQL完成,对于使用OBDC的应用程序来说,其主要任务是提交SQL语句,并检索由这些语句生成的结果。

·         驱动管理器:

驱动管理器是用于管理应用程序和驱动程序间通信的库。它负责执行下述任务:

o        解析数据源名(DSN)。

o        加载和卸载驱动程序。

o        处理ODBC调用,或将其传递给驱动程序。

·         MyODBC驱动程序:

MyODBC驱动程序是用于实施ODBC API所提供功能的库。它负责处理ODBC函数调用,将SQL请求提交给MySQL服务器,并将结果返回给应用程序。如有必要,驱动程序会更改应用程序的请求,以便该请求符合MySQL支持的语法。

·         ODBC.INI:

ODBC.INI是ODBC配置文件,其中保存了连接到服务器所需的驱动信息和数据库信息。驱动管理器将使用它来确定加载哪个驱动程序(使用数据源名)。驱动程序将根据指定的DSN使用它来读取连接参数。更多信息,请参见 26.1.2.3. ODBC驱动管理器 ODBC驱动管理器是用于管理ODBC应用程序和驱动程序间通信的库。其主要功能包括:

·         解析数据源名(DSN)。

·         加载和卸载驱动程序。

·         处理ODBC函数调用,或将其传递给驱动程序。

下面给出了一些常用的驱动程序:

·         Microsoft Windows ODBC驱动管理器(odbc32.dll),http://www.microsoft.com/data/

·         unixODBC Unix驱动管理器(libodbc.so),http://www.unixodbc.org

·         iODBC ODBC Unix驱动管理器(libiodbc.so),http://www.iodbc.org

从2.1.2版开始,UnixODBC也提供MyODBC 3.51。

26.1.2.4. MySQL ODBC驱动程序的类型

MySQL AB支持两种通过ODBC API访问MySQL功能的开放源码ODBC驱动程序: MyODBC (MyODBC 2.50)和MySQL ODBC 3.51驱动(MyODBC 3.51)。

注释: 从本节起,我们将这两类驱动程序统称为MyODBC。但当存在差异时,我们将使用它们的本名。