2015-07-05 88 views
1

我一直在使用RODBC和unixodbc將RODBC連接到OSX Yosemite上的SQL Server 2012幾個小時。我收到R中的錯誤是很普通:我的RODBC配置有什麼問題?

> 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命令連接到數據庫。有沒有人有任何想法我可能會解決這個問題或找到更詳細的錯誤日誌?

回答

2

爲了更好的錯誤信息,請注意這?warning

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

這可能會幫助您獲得更好的調試信息。

+0

謝謝尼爾。我已相應調整了警告長度。不幸的是,錯誤仍然是一樣的。但這確實有助於瞭解。 – user3079064

+0

如果它仍然像這樣被切斷並且沒有顯示實際的錯誤信息,那看起來像是一個錯誤;你可能想通過電子郵件向維護者發送這個消息。 –

+0

啊,謝謝你的跟進。事實證明,我以錯誤的方式設置了'warning.length'。我成功改變了長度,如下所示:'options(warning.length = 5000)'。我用'getOption(「warning.length」) [1] 5000'證實了這一點。我會用新的細節更新這個問題。再次感謝。 – user3079064