mysql odbc驱动架构_ODBC的基础架构

*) 基本概念:

1. 应用程序(Application)

2. ODBC驱动管理器(ODBC Driver Manager)

负责管理应用程序和驱动程序间的通信,主要功能包括:解析DSN (数据源名称,ODBC的数据源名称在ODBC.INI文件中配置),加载和卸载驱动程序,处理ODBC调用,将其传递给驱动程序.

3. ODBC驱动(ODBC Driver)

实现ODBC API所提供的功能,它负责处理ODBC函数调用,将SQL请求提交给具体的数据库服务器,并将结果返回给应用程序.

4. ODBC数据源管理器 (ODBC Administrator)

用于配置具体ODBC驱动的数据源信息

5. DSN (Data Source Name)

*) 应用阶段的基础架构

1. 以mysql-odbc为例, 具体阐释ODBC在应用层的一个架构

如下为linux版的应用层架构

19e0217938c480be7cedd504c22a7c37.png

2. 以下为windows版的应用层架构

62c3c9bf4a8cffeb070a27a0ab3a911a.png

两者的主要区别在于, linux主要采用odbc.ini和odbcinst.ini来管理数据源和驱动类型, 而windows则采用注册表(registry)的方式来存储.

*) 安装的基础架构

linux版

linux版的驱动管理器它并不是系统的一部分, 需要用户自己编译安装unixODBC, 其数据源的配置管理需要用户自己去配置odbc.ini, odbcinst.ini.

odbcinst.ini的配置一般如下:

[mysql]

Driver=/usr/local/lib/libmyodbc5.so

SETUP=/usr/local/lib/libmyodbc5.so

UsageCount=1

windows版

windows的驱动管理器由系统自带. 具体的驱动安装程序, 则由两个dll组成, 一个为具体的driver dll, driver是会被驱动管理器加载, 并作应用程序和后端具体数据库进行数据交互的桥梁, 另一个为setup dll, 这个dll的主要作用是用于配置数据源信息.

以mysql为例, mysql-connector/odbc安装之后:

(1). 在安装路径下C:\Program Files\MySQL\Connector ODBC 5.3目录下, 能发现myodbc5w.dll (driver dll), myodbc5S.dll (setup dll),

(2). 同时在HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI目录项下写入如下具体信息

dd0d877c58d489138a905d67703558f0.png

Driver键对应myodbc5w.dll, Setup键对应myodbc5S.dll的绝对路径信息.

*) 数据源配置的基础架构

linux版

以mysql为例, 需要编辑odbc.ini文件

[ODBC Data Sources]

myodbc = MyODBC 2.50 Driver DSN

[myodbc]

Driver = /usr/local/lib/libmyodbc.so

Description = MyODBC 2.50 Driver DSN

SERVER = localhost

PORT = 3306

USER = root

Password = 123456

Database = test

OPTION = 3

SOCKET =

windows版

启用odbc数据源配置器, 其读取数据源驱动类型, 用户可以选择系统/用户/文件DSN. 当选择具体的驱动和DSN类型之后, odbc数据源配置管理器会依据选择的ODBC驱动, 会加载对应的setup dll(动态链接库), 打开具体的图形配置窗口, 当用户可视化配置好相关的参数后, 该setup dll会把相关信息写入到注册表中(实现了ODBC规范中的ConfigDSN).

在注册表的HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI的目录项中, 写入如下信息.

081ef45aad537397d208684fa1986446.png

*) 总结

知道odbc的组成/安装/配置/运行时的架构之后, 对odbc整个会有更深入的理解, 能理解odbc整个体系是如何运行起来的, 同时为具体编写某个odbc driver实现提供了理论基础.

*) 参考资料:

www.cnblogs.com/linmzh/archive/2012/10/19/2730579.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值