4

RODBC を使用して、cygwin で R から SQL Server データベースに接続しようとしています。

RODBCパッケージが必要libiobbclibiodbc-develするドライバー マネージャーを提供することを理解しています。

をインストールfreetdsしました。これは、MS SQL サーバー データベースに接続できる ODBC ドライバーを提供することを理解しています。コマンドライン ツールを使用しtsqlて、SQL Server に接続できることを確認しました。

RODBCR のライブラリから 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
4

1 に答える 1

0

プログラムは、my_dbiodbctestが見つからないことを示しています。これは、正しく構成されていないという手がかりです。

FreeTDS ユーザー ガイドをもう一度見てください。具体的には、どのプロパティがodbc.ini. ファイルを使用してサーバーを識別する かどうかに応じて、 にserverまたはservernameプロパティが必要です。odbc.inifreetds.conf

于 2016-06-05T20:53:04.017 に答える