配置iodbc以在cygwin下使用FreeTDS for MS SQL Server

时间:2013-08-26 16:25:09

标签: sql-server cygwin odbc freetds iodbc

我正在尝试使用RODBC在cygwin下从R连接到SQL Server数据库。

我安装了libiobbclibiodbc-devel,据我所知,它提供了RODBC软件包所需的驱动程序管理器。

我安装了freetds,据我所知,它提供了一个可以连接到MS SQL服务器数据库的ODBC驱动程序。我使用其tsql命令行工具确认我可以建立与SQL Server的连接。

我现在理解将驱动程序管理器(iODBC)指向驱动程序(freeTDS)的任务,这样我就可以从R的RODBC库连接到SQL Server数据库

User Guide to freeTDS暗示freeTDS提供的驱动程序应该在/usr/local/freetds/lib/libtdsodbc.so,并且类似下面的内容应该将此驱动程序定义为idobc:

;
; odbcinst.ini
;
[FreeTDS]
Driver = /usr/local/freetds/lib/libtdsodbc.so

但我的系统上没有libtdsodbc.so,而且似乎cygwin包freetds没有提供它(listing of installed binaries and support files

如何配置idobc以使用freeTDS驱动程序连接到MS SQL?

修改

位于我的系统上的/lib/cygtdsodbc.dll/usr/lib/cygtdsodbc.dll的同事。这可能是libtdsodbc.so的cygwin等价物吗?

我创建了一个odbcinst.ini文件,其中包含以下内容以定义驱动程序:

[ODBC Drivers]
FreeTDS = Installed

[FreeTDS]
Driver = /usr/lib/cygtdsodbc.dll

和使用上面定义的驱动程序定义数据源odbc.ini的{​​{1}}文件:

my_db

运行[ODBC Data Sources] my_db = FreeTDS [my_db] Driver = /usr/lib/cygtdsodbc.dll Database = db_name Host = server_dns_name Port = 1433 检查结果

iodbctest

1 个答案:

答案 0 :(得分:0)

iodbctest程序表示无法找到 my_db ;这是你的线索,它没有正确配置。

再看一下FreeTDS用户指南,特别是odbc.ini中哪些属性可以和不可以。您需要odbc.ini中的服务器 servername 属性,具体取决于您是否要使用freetds.conf文件来标识服务器。