*) 基本概念:
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版的应用层架构

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

 

  两者的主要区别在于, 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目录项下写入如下具体信息

  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的目录项中, 写入如下信息.

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

*) 参考资料:
  www.cnblogs.com/linmzh/archive/2012/10/19/2730579.html

ODBC的基础架构的更多相关文章

  1. IT基础架构规划方案三(IT基础软件和系统规划)

    IT基础软件和系统规划 操作系统选型规划方案 根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选型规划,根据不同的 ...

  2. MVP社区巡讲-云端基础架构:12月5日北京站 12月12日上海站

    紧跟当今的技术发展趋势还远远不够,我们要引领变革!加入本地技术专家社区,获取真实案例.实况培训演示以及探讨新一代解决方案.在此活动中,您将: 了解如何运用开源(OSS)技术.Microsoft 技术及 ...

  3. IT基础架构规划方案一(网络系统规划)

    背景                   某集团经过多年的经营,公司业务和规模在不断发展,公司管理层和IT部门也认识到通过信息化手段可以更好地支撑公司业务运营.提高企业生产和管理效率.同时随着新建办公 ...

  4. IT基础架构规划方案二(计算机系统与机房规划规划)

    计算机系统规划       服务器硬件选型规划方案       根据对某集团的实际调研,获取了企业业务应用系统的建设情况,随着企业信息化建设的推进,需要对各种信息化管理系统和应用系统的服务器选型进行选 ...

  5. IT基础架构规划方案之实际网络设计案例

    根据某集团总部新办公大楼.厂房和分支机构(店面)的情况,以及IT部门对网络节点数.网络应用和分支机构(店面)的初步规划,对企业的总体网络拓扑结构进行设计,如下图. 设备选型和部署参考: 类型 设备选型 ...

  6. [翻译]用 Puppet 搭建易管理的服务器基础架构(4)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第四部分. 原文地址:http://blog.jobbole.com/89214/ 本文由 伯乐在线 - Wing 翻译,黄利民 校稿 ...

  7. [翻译]用 Puppet 搭建易管理的服务器基础架构(3)

    我通过伯乐在线翻译了一个Puppet简明教程,一共分为四部分,这是第三部分. 本文由 伯乐在线 - Wing 翻译,黄利民 校稿.未经许可,禁止转载!英文出处:Manuel Kiessling.欢迎加 ...

  8. [Search Engine] 搜索引擎分类和基础架构概述

    大家一定不会多搜索引擎感到陌生,搜索引擎是互联网发展的最直接的产物,它可以帮助我们从海量的互联网资料中找到我们查询的内容,也是我们日常学习.工作和娱乐不可或缺的查询工具.之前本人也是经常使用Googl ...

  9. 移动互联网实战--Web Restful API设计和基础架构

    前言: 在移动互联网的大潮中, Web Restful API逐渐成为Web Server重要的一个分支. 移动端和服务端的交互, 主流的方式还是通过Http协议的形式来进行. 请求以Get/Post ...

随机推荐

  1. [原][osg][gdal]两种方式修改tiff高程

    因为对于globalmap不熟悉,不怎么怎么修改高程,好像也没有这功能. 干脆自己手动修改了高程图tiff了 由于自身一直使用osg的 自己使用了osgDB直接读取tiff,修改后保存的. 同事小周一 ...

  2. [ios]"The identity used to sign the executable is no longer valid"错误解决方法

    重新去开发者网站,申请一遍profiles 参考:http://www.bubuko.com/infodetail-982908.html 我出现这个错误的情况,程序提交app store之后,第二天 ...

  3. CodeForces - 369C - Valera and Elections

    369C - Valera and Elections 思路:dfs,对于搜索到的每个节点,看他后面有没有需要修的路,如果没有,那么这个节点就是答案. 代码: #include<bits/std ...

  4. jsp session/application

    session的增加读取 session.setAttribute("username", "张三"); String u = (String) session ...

  5. WPF中为窗体设置背景图片

    在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景. 在WPF 利用Expression Blend工具如何达到这种效果 ...

  6. java通过java.net.URL发送http请求调用接口

    一般在*.html,*.jsp页面中我们通过使用ajax调用接口,这个是我们通常用的.对于这些接口,大都是本公司写的接口供自己调用,所以直接用ajax就可以.但是,如果是多家公司共同开发一个东西,一个 ...

  7. poj2417 Discrete Logging BSGS裸题

    给a^x == b (mod c)求满足的最小正整数x, 用BSGS求,令m=ceil(sqrt(m)),x=im-j,那么a^(im)=ba^j%p;, 我们先枚举j求出所有的ba^j%p,1< ...

  8. Linux磁盘管理,vi编辑器以及包管理器

    一.Linux磁盘管理 Linux磁盘管理常用的三个命令为df,du,fdisk df:列出文件系统的整体磁盘使用量,利用这个命令来获取磁盘被占用了多少空间,,目前还剩下多少空间用法:df [-ahi ...

  9. 使用HTTPS与SSL来保证安全性

    原文链接:https://developer.android.com/training/articles/security-ssl.html SSL,安全套接层(TSL),是一个常见的用来加密客户端和 ...

  10. React Js 之JSX

    React使用JSX作为模板替换JavaScript,它不是必须的,但是它是推荐使用.原因如下: 1.它比传统的JavaScript更快,因为编译代码的时候,JSX做了相应的优化 2.它是类型安全的, ...