Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4400555
  • 博文数量: 291
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7924
  • 用 户 组: 普通用户
  • 注册时间: 2016-07-06 14:28
  • 认证徽章:
个人简介

阿里巴巴是个快乐的青年

文章分类

全部博文(291)

文章存档

2018年(21)

2017年(4)

2016年(5)

2015年(17)

2014年(68)

2013年(174)

2012年(2)

分类: Mysql/postgreSQL

2013-02-01 18:16:49

    本文以Linux/Unix为蓝本介绍ODBC的原理、安装、配置和编程。 

一、原理 


 

                                                图1 ODBC原理图 

    先普及几个知识: 

    数据源:是ODBC与数据库之间建立连接的依据,包括数据源名称、数据源描述、数据库驱动程序、数据库服务器地址、数据库端口号、数据库名称等。 

    ODBC驱动程序:ODBC与数据库之间的接口。 

    驱动程序管理器:将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序执行完操作后得到结果返回给应用程序。 

    ODBC API:应用程序与ODBC之间的接口。 

    ODBC管理器:管理数据源、驱动程序。 

    用户通过ODBC管理器配置数据源,并获得数据源名称,应用程序提供数据源名称给ODBC,ODBC以此建立与相应数据库的连接。 

    有关ODBC原滋原味的信息请看这里,绝对有惊喜。 


二、安装 

1、源码安装 

    先下载最新的unixODBC源码包( http://www.unixodbc.org/unixODBC-2.3.1.tar.gz)放到适合自己的目录下,比如:/usr/local,然后运行下述命令: 

    #tar zxvf unixODBC-2.3.1.tar.gz 

    #cd unixODBC-2.3.1 

    #./configure --prefix=/usr/local/unixODBC-2.3.1 --includedir=/usr/include --libdir=/usr/lib -bindir=/usr/bin --sysconfdir=/etc 

    #make 

    #make install 

    安装成功后,unixODBC所需的头文件都被安装到了/usr/inlucde下,编译好的库文件安装到了/usr/lib下,与unixODBC相关的可执行文件安装到了/usr/bin下,配置文件放到了/etc下。 

2、二进制安装 

    #yum install unixODBC 

    #yum install unixODBC-devel 

    安装成功后,各个部分与源码安装时所列的位置相同。 


三、配置 

    ODBC的配置可以用ODBCConfig来完成(前提是已安装此程序,默认在/usr/bin下),这种方式跟Windows几乎一样,界面也基本一样,在此不略去不表。 

    当然也可以通过手工配置文件来完成ODBC的配置,下面会详细介绍。 

    需要注意的是,ODBC由微软提出,而后由于其显而易见的好处,以至于别的平台也纷纷加入此行列,Linux/Unix也不能免俗。 

    题外话:用过Windows ODBC 数据源的同学都知道,其提供了3种DSN:用户DSN、系统DSN和文件DSN。其中,用户DSN会把相应的配置信息写入用户注册表中且只允许创建此DSN的登录用户使用,而系统DSN会将配置信息写入系统注册表中且允许所有登录用户使用,与前两者不同的是文件DSN将配置信息写入磁盘上某个文件中且允许所有登录用户使用,神奇的是它还可以在没有任何用户登录的情况下,提供对对数据库DSN的访问支持,用户也可以以此为模板复制若干份到别的机器上来快速完成ODBC配置。 Linux/Unix的ODBC配置正如Windows ODBC的文件DSN一样,将配置信息写入文件(/etc/odbcinst.ini和/etc/odbc.ini)。 

    Linux/Unix的ODBC配置包括驱动配置和DSN配置,odbcinst的详细信息可以参看这里: 

1、驱动配置

  

2、DSN配置 

    [MySQL-test] 

    Description = MySQL test database 

    Trace = Off 

    TraceFile = stderr 

    Driver = MySQL 

    SERVER = 192.168.1.26 

    USER = pharvey 

    PASSWORD = 

    PORT = 3306 

    DATABASE = test 

    看到木有,这两文件都以ini为扩展名,完全没有类Unix的范儿,甚至可以说毫无节操,。。。 


四、编程 


    可以用ODBC API编程,也可以用QT之类提供的组件来编程,在此介绍ODBC API C编程,具体步骤如下:

    (1)设定ODBC环境句柄并设置参数(SQLAllocHandle 

    (2)设定连接句柄并设置超时参数(SQLAllocHandle

    (3)连接数据库(SQLConnect 

    (4)分配SQL语句的句柄并进行查询(SQLAllocHandle

    (5)关于关闭连接和释放句柄(SQLDisconnect 和 SQLFreeHandle

    (6)错误信息处理

    (7)获取本机DSN信息


    这里,还有一篇不错的文章可以参考。。。呵呵。。。


阅读(10217) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

scq2099yt2013-02-01 18:34:17

文明上网,理性发言...

评论热议
请登录后评论。

登录 注册