2015-07-05 6 views
1

Я работал в течение нескольких часов при подключении RODBC к SQL Server 2012 на OSX Yosemite с использованием RODBC и unixodbc. Ошибка я получаю в 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

Смежные вопросы