7

エラーが発生しました:

 [RODBC] ERROR: state 01000, code 0, message [unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found
 2: In odbcDriverConnect("driver={SQL Server};server=*******;database=****;trusted_connection=true") :
 ODBC connection failed

RODBCで動作させるために、ODBC用のドライバーをインストールするための詳細な手順を誰かが提供できますか?

注:MSSQLServerに接続しようとしています

4

2 に答える 2

8

ここでの私の仕事では、Centos5.8を使用しています。MS-SQLサーバーに接続する必要がある場合は、FreeTDSドライバーを使用します。私はここでそれについてもう少し話します:https ://stackoverflow.com/a/10196098/1332389 、私がインストールしたパッケージと依存関係を含みます。

サンプルの接続文字列は次のようになります。

data_odbc <- odbcDriverConnect(connection="Driver=FreeTDS;
                                           Server=dataserver1\\instancename(default: master);
                                           Port=1433;        
                                           Database=database_01;
                                           Uid=data_mgmt;
                                           Pwd=placeholder")

odbcinst.iniファイル(/ etc /内)を次のように構成しました。

# FreeTDS Drivers
# Manual setup, used for MS SQL
[FreeTDS]
Description     = FreeTDS for MSSQL
# 32 bit
Driver          = /usr/lib/libtdsodbc.so
Setup           = /usr/lib/libtdsS.so
# 64 bit
Driver64        = /usr/lib64/libtdsodbc.so
Setup64         = /usr/lib64/libtdsS.so
FileUsage = 1

セットアップしてから問題はありません。これがお役に立てば幸いです。他にご不明な点がありましたら、お答えいたします。

于 2012-06-18T20:21:33.450 に答える
4

LinuxでリモートRセッションを使用し、RJServerを使用して、EclipseでStatETから接続すると、同様の問題が発生しました。エラーは次のようになりました。

[RODBC] エラー: 状態 01000、コード 0、メッセージ [unixODBC][ドライバー マネージャー] lib '/usr/local/easysoft/sqlserver/lib/libessqlsrv.so' を開けません: ファイルが見つかりません

この問題を解決するのが難しいのは、エラー メッセージが誤解を招くことでした。メッセージに示されているファイルは完全に表示されています (テストできました)。「秘密」は、「ファイルが見つかりません」が別の依存ライブラリを参照していることです。

結論: リモート セッションで使用される LD_LIBRARY_PATH にいくつかの要素を追加しました。私の場合は /usr/local/easysoft/unixODBC/lib:/usr/local/easysoft/lib でした。

何を追加する必要があるかを理解するには、何が欠けているかを確認する必要があります。問題のライブラリで「ldd」コマンドを使用します。

于 2012-11-27T21:36:29.530 に答える