vity 发表于 2013-12-02 11:44

openbsd5.4刚安装了unixODBC,FreeTDS,为perl连接 ms sql 2008 准备(已完成)

本帖最后由 vity 于 2013-12-03 00:36 编辑

1,安装 unixODBC 很顺利,这个东西需要一个驱动,指的就是 FreeTDS 给的库。

2,安装 FreeTDS 费了一些周折, configure 时 ,除了指定安装目录、 支持 unixODBC 外,还得设置一个openbsd 特别的 --disable-threadsafe 。因为 openbsd 没有 gethostbyname_r() 函数。 配置文件中,需要指定 "tds version = 8.0"。 tsql 访问 ms sql 2008 没问题。

3,unixODBC的配置 odbc.ini 中,需要指定 "TDS_Version = 8.0"。 isql 访问 ms sql 2008 没问题。

4,配置文件关系
   对于 isql 访问 ms sql 2008 来说, unixODBC 中的 odbc.ini 文件负责描述 数据连接池,所需要的信息是驱动程序、数据库登录信息、版本号,三者缺一不可。 driver 变量可以参考 odbcinst.ini 的描述从而缩写;如果 odbc.ini 采用 servername 指向 FreeTDS,则采用freetds.conf 中的描述 ,好处是 可以指定 charset;如果 odbc.ini 使用 server 变量,则需详细写 数据库登录信息。odbc.ini 中的 driver 变量实际上应该填写 freetds 编译出来的 libtdsodbc.so

5,perl 的特殊需求
   对于 perl ,编译环境 ODBCINI 指定的文件为服务器登录所需的所有配置,一般就指向 odbc.ini。在这个文件中,driver 变量不能参照 odbcinst.ini 的定义,要写全路径!!驱动指定为 freetds 后,就可以采用 servername 这个变量了,freetds 负责解析这份登录信息。

-- 目前,测试 isql, tsql, perl 都可以访问 ms sql 2008 ,返回查询记录 --

[主要参考]以下连接,请注意前文第 2 条和第 5 条
http://www.cnblogs.com/davyfamer/archive/2012/05/31/2528818.html

zeissoctopus 发表于 2013-12-02 13:29

多謝分享!
页: [1]
查看完整版本: openbsd5.4刚安装了unixODBC,FreeTDS,为perl连接 ms sql 2008 准备(已完成)