Я пытаюсь использовать RODBC для подключения к базе данных SQL Server из R под cygwin.Настройка iodbc для использования FreeTDS для MS SQL Server под cygwin
Я установил libiobbc
и libiodbc-devel
, которые, как я понимаю, предоставляют менеджеру драйверов, который необходим пакет RODBC.
Я установил freetds
, что я понимаю, предоставляет драйвер ODBC, который может подключаться к базе данных MS SQL. Я использовал свой инструмент командной строки tsql
, чтобы подтвердить, что могу подключиться к SQL Server.
теперь я понимаю задачу быть направлен менеджер драйверов (iODBC) с водителем (FreeTDS), так что я могу сделать соединение с базой данных SQL Server из библиотеки АиРа RODBC
В User Guide to freeTDS намекает, что драйвер, который обеспечивает FreeTDS должен быть /usr/local/freetds/lib/libtdsodbc.so
, и что-то вроде следующего должен определить этот драйвер idobc:
;
; odbcinst.ini
;
[FreeTDS]
Driver = /usr/local/freetds/lib/libtdsodbc.so
Но я не libtdsodbc.so
на моей системе, и, кажется, что пакет Cygwin freetds
не предоставить i t (listing of installed binaries and support files)
Как настроить idobc для использования драйвера freeTDS для подключения к MS SQL?
EDIT
Коллега расположен /lib/cygtdsodbc.dll
и /usr/lib/cygtdsodbc.dll
на моей системе. Может ли это быть эквивалентом cygwin libtdsodbc.so
?
Я создал odbcinst.ini
файл со следующим содержимым для определения драйвера:
[ODBC Drivers]
FreeTDS = Installed
[FreeTDS]
Driver = /usr/lib/cygtdsodbc.dll
и odbc.ini
файла, определяющего источник данных my_db
, используя драйвер, указанный выше:
[ODBC Data Sources]
my_db = FreeTDS
[my_db]
Driver = /usr/lib/cygtdsodbc.dll
Database = db_name
Host = server_dns_name
Port = 1433
работает iodbctest
чтобы проверить все остальное дает
$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0812.0326
Enter ODBC connect string (? shows list): ?
DSN | Driver
------------------------------------------------------------------------------
my_db | FreeTDS
Enter ODBC connect string (? shows list): my_db
1: SQLDriverConnect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004
1: ODBC_Connect = [iODBC][Driver Manager]Driver's SQLAllocEnv() failed (0) SQLSTATE=IM004
'/ usr/lib/cygtdsodbc.dll' является эквивалентом' libtdsodbc.so' (и '/ usr/lib' =='/lib' на Cygwin). Это похоже на проблему конфигурации; см. [глава 4 Руководства пользователя FreeTDS] (http://www.freetds.org/userguide/prepodbc.htm) для советов. – Yaakov