• 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版的应用层架构

    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 FilesMySQLConnector ODBC 5.3目录下, 能发现myodbc5w.dll (driver dll), myodbc5S.dll (setup dll),
      (2). 同时在HKEY_LOCAL_MACHINESOFTWAREODBCODBC.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_USERSOFTWAREODBCODBC.INI的目录项中, 写入如下信息.

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

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

  • 相关阅读:
    spring boot 启动报错(spring-boot-devtools热部署后):The elements [spring.resources.cache-period] were left unbound. Update your application's configuration
    一分钟搞定:spring boot 热部署 (基于Idea)
    如何将新项目添加到github仓库中?只需简单几步~即可实现
    spring boot 日志文件配置(logback-spring.xml)亲测可用!
    java后台读取/解析 excel表格
    String字符串存入数据库中超出最大长度(oracle varchar2 4000)?应合理分条存储(java实现-工具/方法)
    笔试题-sql语句
    总结--看帖收“货”
    Oracle-1
    蓝桥杯- 基础练习: 字母图形
  • 原文地址:https://www.cnblogs.com/mumuxinfei/p/3720799.html
Copyright © 2020-2023  润新知