gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:04:52 25 4
gpt4 key购买 nike

我的问题是关于

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com