AS400 with Ruby on Rails



我正在尝试使用RubyonRails访问我们的AS400数据库,使用"dbi"gem和"dbd-odbc"gem。

我找到了这个代码来构建。当我传入服务器地址时。。。原始代码似乎使用DSN,但我想在代码中传递IP、数据库名称和库,以防止需要任何DSN。

require 'dbi'
dbh = DBI.connect('DBI:ODBC:SYSTEM=<ip_address>;DBQ=<db_name>;DFTPKGLIB=<library_name>;LANGUAGEID=ENU', 'UID=<user_name>', 'PWD=<password>')
sth = dbh.prepare('select count(*) from my_table')
sth.execute
# Print out each row
while row=sth.fetch do
  p row
end
sth.finish
dbh.disconnect

它给了我一个错误。。。

DBI::InterfaceError: Unable to load driver 'ODBC'

正确的语法是什么?

这对我很有效-同样,只需将身份验证部分放在DBI.connect函数的第一个参数中即可:

首先安装gems:dbi、dbd-odbc、ruby odbc。如果没有ruby odbc gem ,我也会遇到同样的错误

然后:

require 'odbc'
require 'dbi'
dbh = DBI.connect('DBI:ODBC:SYSTEM=MYAS400;DBQ=TABLE_NAME;DFTPKGLIB=SCHEMA_NAME;DRIVER=Client Access ODBC Driver (32-bit);LANGUAGEID=ENU;USERID=SUPERADMIN;PWD=SUPERSECURE')

我不知道Ruby中的具体工作原理,但在连接字符串中,我看不出你在哪里提到了试图用来连接的驱动程序。

看起来像这样的行:

dbh = DBI.connect('DBI:ODBC:SYSTEM=<ip_address>;DBQ=<db_name>;DFTPKGLIB=<library_name>;LANGUAGEID=ENU', 'UID=<user_name>', 'PWD=<password>')

需要是这样的东西来指示ODBC应该用来连接的驱动程序:

dbh = DBI.connect('DBI:ODBC:Driver=iSeries Access ODBC Driver;SYSTEM=<ip_address>;DBQ=<db_name>;DFTPKGLIB=<library_name>;LANGUAGEID=ENU', 'UID=<user_name>', 'PWD=<password>')

相关内容

  • 没有找到相关文章

最新更新