RODBC を使用して、cygwin で R から SQL Server データベースに接続しようとしています。
RODBCパッケージが必要libiobbc
とlibiodbc-devel
するドライバー マネージャーを提供することを理解しています。
をインストールfreetds
しました。これは、MS SQL サーバー データベースに接続できる ODBC ドライバーを提供することを理解しています。コマンドライン ツールを使用しtsql
て、SQL Server に接続できることを確認しました。
RODBC
R のライブラリから SQL Server データベースに接続できるように、ドライバー マネージャー (iODBC) をドライバー (freeTDS) にポイントするタスクを理解しました。
freeTDSのユーザー ガイドでは、freeTDS が提供するドライバーは にある必要があり/usr/local/freetds/lib/libtdsodbc.so
、次のような方法でこのドライバーを idobc に定義する必要があることが示唆されています。
;
; odbcinst.ini
;
[FreeTDS]
Driver = /usr/local/freetds/lib/libtdsodbc.so
しかしlibtdsodbc.so
、私のシステムにはありません。cygwin パッケージfreetds
では提供されていないようです (インストールされているバイナリとサポート ファイルのリスト) 。
freeTDS ドライバーを使用して MS SQL に接続するように idobc を構成するにはどうすればよいですか?
編集
私のシステム上に/lib/cygtdsodbc.dll
ある同僚。/usr/lib/cygtdsodbc.dll
これは に相当する cygwinlibtdsodbc.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