*) 基本概念:
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. Unity寻路的动态烘焙

    随着Unity5.6的推出,我们终于迎来了NavMesh的动态烘培,我们期待已久的功能终于来了,不用再研究A*算法了,话说改进的网格寻路更加方便高效. 网址:https://blog.csdn.net ...

  2. SQLServer创建用户、数据库、表、约束、存储过程、视图

    --创建登录账户和数据库用户 ' exec sp_grantdbaccess 'sysAdmin','aa' --给数据库用户赋权限 grant select,update,insert,delete ...

  3. springboot入门(一)--快速搭建一个springboot框架

    原文出处 前言在开始之前先简单介绍一下springboot,springboot作为一个微框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  4. Java EE、Java SE和Java ME

    Java SE=Java Standard EditionJava EE=Java Enterprise EditionJava ME=Java Mobile Edition SE主要用于桌面程序,控 ...

  5. mybatis: 多对多查询[转]

    加入3个包 log4j-1.2.17.jar mybatis-3.3.0.jar mysql-connector-java-5.1.8.jar log4j需要配置 log4j.properties # ...

  6. English trip -- VC(情景课)2 A At school

    xu言: Sometimes, I feel very confused. However, there will always be a weak light in a corner to ligh ...

  7. 3-13《元编程》第5章Class Definitions 3-14(5-4Singleton Classes,2小时)3-15(3小时✅)

    类宏 环绕别名 singleton class Class就是增强的模块,类定义也就是模块定义. 5.1 Class Definitions Demystified 5.11 Inside Class ...

  8. Android控件Gridview实现多个menu模块,可添加可删除

    此案例主要讲的是Android控件Gridview(九宫格)完美实现仿支付宝首页,包含添加和删除功能:Fragment底部按钮切换的效果,包含四个模块,登录页面圆形头像等,一个小项目的初始布局. 效果 ...

  9. Android 7.0正式版工厂镜像下载

    Android 7.0正式版工厂镜像下载 从3月份上线首个开发者预览版(Developer Preview)之后,经过近6个月时间的打磨,谷歌今天开始向Nexus设备推送Android 7.0 Nou ...

  10. mysql日期查询大全

    -- 查询昨日一整天的数据 DAY) ,'%Y-%m-%d 23:59:59') AS '昨日结束时间' -- 查询今日开始到当前时间的数据 DAY) ,'%Y-%m-%d %H:%i:%s') AS ...