ActiveRecord から ODBC 接続

mdbtools がうまくいかないけど、ActiveRecordODBC Adapter を見つけたのでこれはいけると思い

activerecord-odbc-adapter (2.0)
odbc-rails (1.5)

2 つを gem からインストールしてもうまくいかなくて、

For accessing ODBC data sources from the Ruby language

ODBC Binding for Ruby

ここから 0.9994 のものをインストール。呼び出し側はこんな↓感じで、データソース名か、mdbファイル指定で直接取れたらいいなぁと思って書いてみた。

require 'rubygems'
require 'active_record'

ActiveRecord::Base.establish_connection(
  :adapter  => "odbc",
  :dsn => "test"
#  :conn_str => "Driver={Microsoft Access Driver (*.mdb)};DBQ=test.mdb;"
)

class User < ActiveRecord::Base
end

p User.find(:all)

結構時間かかったんだけどなぁ・・・結局

ODBCAdapter: Unsupported database (access)

だった orz

追記

/usr/lib/ruby/gems/1.8/gems/activerecord-odbc-adapter-2.0/lib/active_record/vendor

この辺りにあるファイルを真似て ODBCExt モジュールを定義した上で odbc_adapter.rb にある dbmsNameToSym の変換定義を追加すればいいのかなぁ・・・と模索してみたけど orz