2009-09-14 18 views
5

Rubyを使用してUbuntu 9.04でSQL Serverに接続しようとしています。RubyODBC SQLHENVを割り当てることができません

http://toolmantim.com/articles/getting_rails_talking_to_sqlserver_on_osx_via_odbc

すべてはFreeTDSのとunixODBCの先端に取り組んでいる:私はここからSQL Serverに話してOSXを得るにまとめられているすべてのステップを翻訳し、続きます。私は、tsqlを使ってデータベースを見て、照会することができます。

私はIRBを使用してルビーからデータベースにアクセスしようとすると、私は次のエラーを取得する:

DBI :: DatabaseError:インターン(0)[RubyODBC] SQLHENV

は誰もこれに遭遇し、持って割り当てることができませんこれを解決するために私は何ができますか?

答えて

0

私は実際に私の質問を提出した後、これを稼働させています。私がやったことは、libdbd-odbc-rubyとlibdbi-rubyをアンインストールしてから、まずlibdbi-rubyをインストールしてから、libdbd-odbc-rubyをインストールして再インストールすることでした。私はそれらを前もってインストールしたときに、何かが台無しにならなければならないと思う。

5

私はUbuntu 9.10(Karmic Koala)にアップグレードしたときにこのエラーが発生しました。 Ubuntuパッケージのインストール順序に関するヒントが私にとってうまくいかなかった。

ruby​​-odbcを手作業でコンパイルしたようです。

wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz 
tar xzvf ruby-odbc-0.9997.tar.gz 
cd ruby-odbc-0.9997 
ruby extconf.rb --with-dlopen 
make 
sudo make install 
+0

ありがとうございました。ついに私が抱えていた問題を解決しました。 Karmic固有のバグでなければなりません。 –

+0

これも私の問題を解決...神!ありがとう!! – mickey

+0

Ruby Enterprise Editionを使用しているときに、すべてが動作しているようだと付け加えたいと思います。通常のol 'gem install stuffはREE 1.8.7-2010.01現在動作しています –

0

BTW、指示に従うことlibiodbc2-DEVまたはunixODBCの-devパッケージのいずれかのインストールを必要とUbuntuの9.10にルビー-ODBC(カルマ)を再コンパイルします。 libiodbc2-devのを使用している場合は、私のRubyプログラムをしようとしたとき、私は、セグメンテーションフォールトを得た:問題なし..but

connection.select_all('select top 15 * from log_device_healths') 

を代わりにunixODBCのは-devを使用した場合。

0

Tim Morganの解決策は私には役に立たなかった。

http://gehling.dk/2010/02/the-woes-of-libodbc-ruby1-8-and-debian-ubuntu/

http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_i386.deb

追加の詳細は、カーステンGehlingのブログから入手できます。しかし、私はここからlibodbc-ルビー(0.9995)の古いバージョンをインストールすることで、作業のものを得ることができましたUbuntuのUpdate Managerはこのバージョンのlibodbc-rubyを喜んで0.9997-2の壊れ目に「アップグレード」します。私は間違いなく古いバージョンをこの方法で上書きして、ここで最後に終わり、前回の修正方法を見つけようとしました。

0

まあ、私の他の答えは私のために働いていないようです。 This threadは別の方法で問題を解決するのを助け、私はここでそれを共有したがっています。あなたは64ビットプラットフォームではない場合

sudo gem uninstall ruby-odbc 
sudo rm /usr/local/lib/site_ruby/1.8/x86_64-linux/odbc.so 
cd /tmp 
wget http://mirrors.kernel.org/ubuntu/pool/universe/libo/libodbc-ruby/libodbc-ruby1.8_0.9995-1_amd64.deb 
sudo dpkg -i libodbc-ruby1.8_0.9995-1_amd64.deb 

は、あなたが別のDebianパッケージをダウンロードする必要があります。

基本的に、問題を解決するのは、バージョン0.9995のruby-odbc Ubuntuパッケージをインストールすることです。

2

システム

Ubuntu 9。10 64ビット

私は同じ問題を抱えていた

 
wget http://www.ch-werner.de/rubyodbc/ruby-odbc-0.9997.tar.gz 
tar xzvf ruby-odbc-0.9997.tar.gz 
cd ruby-odbc-0.9997 
ruby extconf.rb --with-odbc-dir=/usr/lib/odbc --disable-dlopen 
make 
sudo make install 
1

をインストールrubyodbcにODBCディレクトリを指定する必要がありました。

しかしCentOSに5.5に

をUbuntuのではないではありません喜びと多くのフォーラム/ソリューションをしようとしました。

エラーメッセージは、unixODBCへの参照がないことを示しています。 LD_LIBRARY_PATH変数を使用して設定したもの。 パスを設定する別の方法が見つかりました。
/etc/ld.so.conf.d/odbc.confを作成してください。 ファイルにunixODBCの場所、つまり/ usr/local/libを追加します。 sudo ldconfigを実行します。

関連する問題