RubyをMicrosoftSQLServerに接続するのに問題があります。Mac OS Xを実行していますが、ターゲット環境はUbuntuLinuxです。
これが私が試したことです:
次に、これらのファイルを次の場所に配置しました/usr/local/etc
。
odbc.ini
odbcinst.ini
freetds.conf
次のように、ファイル内のFreeTDSドライバーへの参照をodbcinst.ini
ODBCドライバーファイルに追加しました。
;
; odbcinst.ini
;
;
[FreeTDS]
Driver = /usr/local/lib/libtdsodbc.so
次に、次のfreetds.conf
ようにファイルでサーバーを構成しました。
# Aries database server (SQL Server 2008)
[aries-db1]
host = xx.xx.xx.xx
port = 1433
tds version = 8.0
odbc.ini
そして最後に、次のようにファイルにODBCDSNを追加しました。
[aries-db1]
Driver = FreeTDS
Description = ODBC Connection via FreeTDS
Trace = 1
Servername = aries-db1
Database = MY_DB
UID = user1
PWD = pass1
サーバーがオンラインでポートが開いていることを確認できます(telnetおよびyougetsignal.comのポートチェックを使用)。
テストとして、私はこれを行いました:
tsql -S aries-db1 -U user1 -P pass1
そして、それはうまく接続しているようでした。無効な値を渡すと、予期されるエラーが発生しました。
最後に私の質問に:
これをRubyに拡張するにはどうすればよいですか?私がこれまで試したことは何もうまくいきませんでした。私はこのように続編を試しました:
require 'sequel'
Sequel.connect('aries-db1')['select * from foo'].all
そして、私はこのようなエラーを受け取ります:
Sequel::DatabaseConnectionError: ODBC::Error: S1000 (0) [unixODBC][FreeTDS][SQL Server]Unable to connect to data source
これは、ドライバー構成が正しく検出されていることを示していますが、何らかの理由で接続できません。
私もこのようにDBIを試しました:
DBI.connect('DBI:ODBC:aries-db1')
そして、私は同様のエラーを受け取ります。
助言がありますか?私は非常に近いように感じますが、これをトラブルシューティングするために次に何を試すべきかわかりません。