我想用Ruby on Rails訪問我們的AS400數據庫,使用「dbi」gem和「dbd-odbc」gem。帶有Ruby on Rails的AS400
我發現這個代碼來建立。當我通過服務器地址... 看來,原始代碼使用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寶石和做-ODBC寶石有沒有需要安裝一個DSN服務器。我目前正在開發中,我不想這樣做,所以我不得不依賴生產服務器來安裝DSN。如果dbi和did-odbc寶石有驅動程序,我是否認爲DSN是不需要的? – Beengie 2014-10-06 15:05:49
DSN基本上只是應用名稱的連接字符串中的所有東西。你將不得不確保服務器安裝了驅動程序。 – clutton 2014-10-06 15:11:03
是否改變了連接字符串的工作? – clutton 2014-10-08 15:33:31