【问题标题】:What could be wrong with my RODBC configuration?我的 RODBC 配置可能有什么问题?
【发布时间】:2015-09-22 19:01:05
【问题描述】:

我已经使用 RODBC 和 unixodbc 将 RODBC 连接到 OSX Yosemite 上的 SQL Server 2012 工作了几个小时。我在 R 中收到的错误非常普遍:

> odbcDriverConnect("DSN=ISTSQL;UID=sa;PWD=***")
[1] -1
Warning messages:
1: In odbcDriverConnect("DSN=ISTSQL;UID=sa;PWD=***") : [RODBC] ERROR: state ±6S, code 20013, message 
2: In odbcDriverConnect("DSN=ISTSQL;UID=sa;PWD=***") : [RODBC] ERROR: state ±6S, code 0, message 
3: In odbcDriverConnect("DSN=ISTSQL;UID=sa;PWD=***") :
  ODBC connection failed
Warning messages:
1: In strsplit(msgs[i], "\n") : input string 1 is invalid in this locale
2: In strsplit(msgs[i], "\n") : input string 1 is invalid in this locale

我的/etc/freetds.conf 文件包括以下内容:

[ISTSQL]
    host = ip.address
    port = 1433
    tds version = 8.0

我的/etc/odbcinst.ini文件如下:

[MSSQL]
Description = Microsoft SQL Server driver
Driver      = /usr/local/Cellar/freetds/0.95.8/lib/libtdsodbc.so
UsageCount  = 1

而我的/etc/odbc.ini文件如下:

[ISTSQL]
Driver      = MSSQL
Servername  = ISTSQL
Port        = 1433
Database    = TMS
TDS_Version = 8.0

我可以通过tsql 命令和isql 命令从命令行连接到数据库。有谁知道我如何解决这个问题或找到更详细的错误日志?

【问题讨论】:

    标签: sql-server r osx-yosemite rodbc unixodbc


    【解决方案1】:

    如需更好的错误信息,请在?warning 中注明:

    Warnings will be truncated to 'getOption("warning.length")'
         characters, default 1000, indicated by '[... truncated]'.
    

    这可能会帮助您获得更好的调试信息。

    【讨论】:

    • 谢谢你,尼尔。我已经相应地调整了警告长度。不幸的是,错误仍然相同。但这确实很有帮助。
    • 如果它仍然像那样被切断并且没有向您显示实际的错误消息,那似乎是一个错误;你可能想给维护者发电子邮件。
    • 啊,谢谢你的跟进。事实证明,我以错误的方式设置了warning.length。我成功更改了长度如下:options(warning.length=5000)。我通过getOption("warning.length") [1] 5000 确认了这一点。我将使用新的详细信息更新问题。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 2017-03-08
    • 2014-01-13
    • 2014-04-11
    • 2011-09-11
    • 2013-07-17
    • 1970-01-01
    • 2012-11-06
    • 2014-05-31
    相关资源
    最近更新 更多