ruby - DBI + ruby​​-odbc 失败,涉及 Bundler

标签 ruby odbc unixodbc exasolution

我正在使用带有 unixodbc 的 dbiruby-odbc gems 连接到 Exasol,它工作正常,加载如下:

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.require(在 Gemfile 中使用 gem 'ruby-odbc', require: 'odbc_utf8')还是使用需要 'bundler/setup'需要 '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

编辑:没有 Bundler 的工作方式只适用于 Ruby 1.9.3。在我看来,这像是一个范围问题,因为 driver_name 是一个作为参数传递给引发异常的方法的变量。

最佳答案

请尝试安装:gem install dbd-odbc

关于ruby - DBI + ruby​​-odbc 失败,涉及 Bundler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10481881/

相关文章:

ruby - 安装 gem 时无法将 "\x89"从 ASCII-8BIT 转换为 UTF-8 xxx

ruby-on-rails - Nokogiri gem 安装在 Capistrano 部署中失败

Postgresql ODBC 驱动程序 32 位

python - pyodbc - "Data source name not found, and no default driver specified"

ruby - 摩卡模拟进行另一项测试

iphone - 如何使用 RubyMotion 检测 UISlider 是否被点击?

ODBC Firebird 驱动程序无法连接到数据源;库“gds32.dll”加载失败

c++ - 在 Debug模式下使用针对 XP (v141_xp) 的 Visual C++ 2017 链接 ODBCCP32.lib 时出现 LNK1103

sql-server - 在 Linux/Ubuntu 上使用 Nodejs + MSSQL

macos - 如何使用 unixodbc 和 freetds 在 Mac 上安装 RODBC?