*) 基本概念:
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. jQuery双击编辑td数据

    html <td class="remark" style="width: 200px;"> {$vo.remark} </td> js ...

  2. Qt5.3.2_CentOS6.4(x86)_代码文件编码

    1.1.1.Qt5.3.2_MinGW 在Windows中安装时,默认的文件编码是 UTF8. 1.2.在 CentOS6.4中安装 qt-opensource-linux-x86-5.3.2.run ...

  3. Codeforces 38B - Chess

    38B - Chess 思路:懂点象棋的规则就可以,看看哪些点可以放马. 代码: #include<bits/stdc++.h> using namespace std; #define ...

  4. 雷林鹏分享:Ruby 块

    Ruby 块 您已经知道 Ruby 如何定义方法以及您如何调用方法.类似地,Ruby 有一个块的概念. 块由大量的代码组成. 您需要给块取个名称. 块中的代码总是包含在大括号 {} 内. 块总是从与其 ...

  5. LeetCode--028--实现strSTR()

    问题描述: 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返回  -1. 示例 ...

  6. boruvka算法

    算法正确性证明: 1.最优性:最小边一定包含在生成树中. 2.合法性:一定不会构成环.如果存在环说明一个点的最小连边有两个,显然矛盾. 算法时间复杂度证明: 每执行一次算法,所有联通块的大小都至少为2 ...

  7. robot framework学习笔记2

    声明:本笔记都只是自己根据大牛虫师的robot系列文档学习记录的,学习的话还请移步虫师博客:https://www.cnblogs.com/fnng/ 非常感谢大牛的分享,带小白一步一步入门   F5 ...

  8. 『Kaggle』Sklearn中几种分类器的调用&词袋建立

    几种分类器的基本调用方法 本节的目的是基本的使用这些工具,达到熟悉sklearn的流程而已,既不会设计超参数的选择原理(后面会进行介绍),也不会介绍数学原理(应该不会涉及了,打公式超麻烦,而且近期也没 ...

  9. Xshell如何设置,当连接断开时保留Session,保留原文字

    Xshell [1]  是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议.Xshell 通过互联网到远程主机的安全连接以及它 ...

  10. OAF 功能中的参数含义

    OA.jsp?OAFunc=POS_HT_SP_B_SUPP&OAPB=POS_SM_PRODUCT_BRANDING&OAHP=POS_SM_ADMIN_HOME&OASF= ...