私はこの問題でここ数日苦労しており、アイデアがありません。SQL Server のサポートを追加する必要がある、やや古いアプリケーションに取り組んでいます。ローカルで動作させることができました (Ubuntu 12.04) が、Ubuntu 8.04 インスタンスの Rackspace で再現しようとすると、次のエラーが発生します。
irb > require 'rubygems'
irb > require 'tiny_tds'
irb > TinyTds::Client.new(:host => 'X.X.X.X', :user name => 'xxx', :password => 'xxx')
irb: symbol lookup error: /opt/ruby-enterprise-1.8.7-2012.02/lib/ruby/gems/1.8/gems/tiny_tds-0.6.0.rc1/lib/tiny_tds/tiny_tds.so: undefined symbol: dbsetluser
私が実行しているスタックは次のとおりです。
- Ubuntu 8.04
- リー 1.8.7-2012.02
- FreeTDS 0.92.377 (ソースからコンパイル)
- TinyTDS 0.6.0.rc1 (0.5.1も試しました)
isql を使用して SQL Server に正常に接続できるので、FreeTDS と ODBC が正しく設定されていると思います。しかし、Ruby から TinyTds に接続しようとすると、上記のエラーが発生します。
rails-sqlserver-adapter の Google グループに投稿しようとしましたが、フォーラムはモデレートされているようで、私の質問はまだ表示されていません。
TinyTdsがライブラリを見つけられないことに関係していると確信していますが(どこかで利用できるはずです)、これを達成する方法がわかりません。
最後の手段として、12.04 でサーバーをゼロから構築するつもりですが、既存のシステムを動作させたいと考えています。
更新:
@Casperの提案に従って、接続を試みましodbc
たが、別のエラーが発生しました
irb > require ‘odbc’
irb > ODBC.connect('dsn', 'username', 'password')
[unixODBC][FreeTDS][SQL Server]Unable to connect to data source`
isql と sqsh に正常に接続できますが。
ありがとう