sql-server - 通过 RODBC 连接到 SQL Server 数据库

标签 sql-server r odbc freetds rodbc

我的问题是关于

Trying to connect to an ODBC server using RODBC in ubuntu

How to specify include and lib directories when locally installing RODBC?

但我找不到合适的答案来解决我的问题。

我想使用 RODBC 连接到远程服务器上的 SQL Server 数据库。

我已经安装了 unixodbc 和 freetds,并且可以在终端中使用 T-SQL 连接,所以连接存在。

但是当尝试在 R 中连接时(所有敏感信息已被 *** 替换):

odbcConnect(dsn="TESTSQL", uid=***, pwd=***)

我得到:

Warning messages:
1: In RODBC::odbcDriverConnect("DSN=TESTSQL;UID=***;PWD=***") : [RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open         lib '/usr/local/Cellar/freetds/0.95.18/lib/libtdsodbc.so' : file not found
2: In RODBC::odbcDriverConnect("DSN=TESTSQL;UID=***;PWD=***") :
  ODBC connection failed

odbc.ini 文件是:

[ODBC Data Sources]
TESTSQL     = Test database

[TESTSQL]
Driver      = MSSQL
Servername  = ***.**.**.**
Port        = **
Database    = ****
TDS_Version = 8.0

我已经安装了最新版本的 freetds,即 1.00.27,因此我很惊讶这个库 libtdsodbc.so 丢失了。

这正常吗?您会建议安装版本 0.95.18 还是继续使用 1.00.27 并寻找丢失的库?

最佳答案

我必须删除 freetds:

brew remove freetds

然后重新安装它,指定 --with-unixodbc 以创建 libtsdodbc.so:

brew install freetds --with-unixodbc

在 odbc.ini 中,我必须注意不要混淆“Server”和“Servername”,并将驱动程序链接到 libtdsodbc.so,这样我的 odbc.ini 看起来像:

[ODBC Data Sources]
TESTSQL     = Test database

[TESTSQL]
Driver      = /usr/local/lib/libtdsodbc.so
Server      = ***.**.**.**
Port        = **
Database    = ****
TDS_Version = 8.0

并使用 RODBC 包连接

ch1 <- odbcConnect(dsn="TESTSQL", uid=***, pwd=***)
> ch1
RODBC Connection 5
Details:
  case=nochange
  DSN=TESTSQL
  UID=****
  PWD=******

它有效!

此页面的更多详细信息

http://eriqande.github.io/2014/12/19/setting-up-rodbc.html

关于sql-server - 通过 RODBC 连接到 SQL Server 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43506411/

相关文章:

sql-server - SQL Server 2008 R2 Enterprise 180天试用版-透明数据加密(TDE)错误

sql-server - 自定义 SQL Server 性能计数器

在 R 中读取两行标题

php - 根据相同的id显示记录,但删除sql上的相似性

MySQL ODBC 驱动程序 5.2w 导致日期时间错误 5.1.10 工作正常

.net - 将 Microsoft.SqlServer.Types 与 Dapper 一起使用时的 RuntimeBinderInternalCompilerException

mysql - 关于MySQL的两个基本问题

performance - 转置数组以使用按列操作是否有益?

r - 捕获段错误、内存未映射错误

database - 是否有 REST 数据库连接标准?