2

dbiunixodbc でおよびgems を使用して Exasol に接続していますが、次のruby-odbcようにロードして正常に動作します。

require 'dbi'
require 'odbc_utf8'

Bundler をミックスに追加すると、ruby-odbc が odbc 構成を見つけられないようです。

Could not load driver (undefined method `driver_name' for ODBC:Module)
/usr/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:318:in `rescue in load_driver'
/usr/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:242:in `load_driver'
/usr/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:160:in `_get_full_driver'
/usr/lib/ruby/gems/1.9.1/gems/dbi-0.4.5/lib/dbi.rb:145:in `connect'

Bundler.requiregem 'ruby-odbc', require: 'odbc_utf8'Gemfileで)またはrequire 'bundler/setup'andを介して必要とするかどうかは関係ありませんrequire 'odbc_utf8'

これは私が接続しようとする方法です:

DBI.connect('DBI:ODBC:exa', config['username'], config['password'])

重要な場合、これは私の.odbc.ini外観です:

[exa]
Driver = /opt/EXASolution_ODBC-4.0.8/lib32/libexaodbc-uo22.so
EXAHOST = 192.168.235.84..86:8563

edit : Bundler なしで動作する方法は、Ruby 1.9.3 でのみ動作します。driver_name例外を発生させるメソッドに引数として渡される変数と同様に、スコープの問題のように見えます。

4

1 に答える 1