2009-09-14 47 views
5

我試圖使用Ruby在Ubuntu 9.04上連接到SQL Server。我翻譯並隨後在得到OSX從這裏談論到SQL Server列出的所有步驟:RubyODBC無法分配SQLHENV

http://toolmantim.com/articles/getting_rails_talking_to_sqlserver_on_osx_via_odbc

一切工作的freetds的unixODBC的和結束。我可以看到並使用tsql查詢數據庫。

當我嘗試使用IRB我碰到下面的錯誤在Ruby中訪問數據庫:

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特定的錯誤。 – 2009-11-04 20:15:06

+0

這也解決了我的問題......上帝!謝謝!! – mickey 2009-11-19 02:07:59

+0

我想補充一點,在使用Ruby Enterprise Edition時似乎都有效。按照稀土元素1.8.7-2010.01的規定,常規的寶石安裝工具正常工作 – 2010-04-14 15:42:49

0

順便說一句,下面的說明來重新編譯Ruby的ODBC在Ubuntu 9.10(業報)所需的安裝任libiodbc2-dev的或的unixODBC-dev軟件包的。使用了unixODBC-DEV,而不是當

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

..但沒有問題:當使用libiodbc2-dev的,我有段故障我的Ruby程序嘗試時。

0

蒂姆摩根的解決方案不適合我。但是我能夠從這裏得到的東西通過安裝libodbc - 紅寶石(0.9995),較舊版本的工作:

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

其他細節可從卡斯滕Gehling的博客:

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

但要小心 - Ubuntu的更新管理器會很高興地將此版本的libodbc-ruby升級到破損的0.9997-2。我意外地用這種方式覆蓋了舊版本,最終只能回到這裏,試圖弄清楚我上次如何修復它。

0

好吧,似乎我的其他答案停止爲我工作。 This thread幫助我以另一種方式解決問題,我想在此分享。

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 

如果您不在64位平臺上,則需要下載不同的Debian軟件包。

基本上,解決問題的辦法是安裝ruby-odbc Ubuntu軟件包的0.9995版本。

2

系統

Ubuntu 9。10 64位

我必須指定在rubyodbc的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-odbc-dir=/usr/lib/odbc --disable-dlopen 
make 
sudo make install 
1

我有同樣的問題。

但在CentOS 5.5 Ubuntu的不

試了很多論壇/沒有快樂的解決方案。

錯誤消息提示缺少對unixODBC的引用。 哪個設置使用LD_LIBRARY_PATH變量。 找到另一種設置路徑的方式,通過創建
/etc/ld.so.conf.d/odbc.conf。 將unixODBC位置添加到文件即/ usr/local/lib。 運行,sudo ldconfig。