0

Rails を外部の MSSQL データベースに接続しています。database.yml では、アダプターは sqlserver です。

クエリのコード:

class External < ActiveRecord::Base
   def self.select_all_entries
      external_connection_hash = configurations["external_DB"]
      establish_connection external_connection_hash
      con = connection()

      side = con.execute("Select * from dbo.BBOrders").fetch_row;
      return side
   end
end

そして、エラーが発生します-未定義のメソッド "fetch_row" for -1:Fixnum

データベース情報は正しいです。別のテーブルにアクセスして同じ答えを得ようとしましたが、エントリのないテーブルにアクセスすると、別の例外がスローされるため、接続されていますが値が返されません。何か案は?

database.ymlを編集

development:
  adapter: sqlserver
  dsn: K_Connection
  #dsn: mydsn
  mode: odbc
  #mode: dblib
  encoding: utf8
  database: KTrade
  host: xxx.xxx.xxx.xxx
  username: tr
  password: tr2
4

2 に答える 2

0

そのためにGemが必要になると思います。DBI ODBC ドライブは、利用可能な多くのオプションの 1 つです。ただし、この URL ( http://www.easysoft.com/developer/languages/ruby/rails.html#introduction )の手順を試してください。

最終結果は次のようになります

require 'dbi' # Replace MY_DSN with the name of your ODBC data # source. Replace and dbusername with dbpassword with # your database login name and password. DBI.connect('dbi:ODBC:MY_DSN', 'dbusername', 'dbpassword') do | dbh | # Replace mytable with the name of a table in your database. dbh.select_all('select * from mytable') do | row | p row end end

于 2013-06-12T19:44:26.743 に答える