sql-server - 配置 iodbc 以在 cygwin 下为 MS SQL Server 使用 FreeTDS

标签 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定义数据源的文件 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检查事情给
$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0812.0326

Enter ODBC connect string (? shows list): ?

DSN                              | Driver
------------------------------------------------------------------------------
my_db                            | FreeTDS

Enter ODBC connect string (? shows list): my_db
1: SQLDriverConnect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004
1: ODBC_Connect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004

最佳答案

iodbctest程序提示找不到 my_db ;这是您未正确配置的线索。

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

关于sql-server - 配置 iodbc 以在 cygwin 下为 MS SQL Server 使用 FreeTDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448631/

相关文章:

python - 哪个 Python (sqlalchemy) mssql DB API 在 Cygwin 中工作?

command-line - Cygwin - 从 "run command"静默运行脚本

sql - 如何编写 SQL 查询以从 ODBC 源选择行?

php - pdo 驱动程序不支持 Linux 上的事务

bash - 将 Cygwin/bash 结果输出到文本文件

sql-server - SSRS 中的自定义定时订阅计划

java - Hive 通过来自 Java 的 ODBC 问题 : parameters reordered

Oracle ODBC - 缺少驱动程序?

mysql - 如何将数据库更改部署到实时服务器?

c# - 为什么存储过程在代码中运行缓慢,但在 SSMS 中运行速度很快?