ADO で DB にアクセス
ID・パスワード設定付きのDBにMDB経由でアクセスしてテーブルを検索したいと思い
こんな感じ↓でやってたけど、どうもうまくいかない。
指定のMDBファイルはDBのテーブルへのリンクが張ってあるんですけど
これでコネクションを確立しようとするとエラーが返ってくる。
Open の第2,第3引数にIDとパスワードを設定するパターンでも駄目。
(エラーをこぴって持って帰って来れば良かった)
connection= WIN32OLE.new("ADODB.Connection") connstr = "Driver={Microsoft Access Driver (*.mdb)};" connstr << "DBQ=#{mdb_file_name};" connstr << "User ID=#{user_id};Password=#{password};" connection.Open(connstr)
どうにも行き詰まったのでネットで検索した所、データソース名でもいける事を発見。
こんな感じ↓に変更
connection= WIN32OLE.new("ADODB.Connection") statement = "DSN=#{data_source_name};User ID=#{user_id};Password=#{password};" connection.Open(statement)
MDBファイルのパスを指定するのではなく、データソースに登録してある名称を指定するとうまくいきました。
MDB経由では駄目なんだろうか・・・・。
結局MDBもデータソース見てるから一緒なんですけどね。
あとは参照用のオプションパラメータをどう設定するのかが謎
for read only を単純にSQLに付けるだけでいいのかな。
って、データソースを登録する際に参照パラメータを設定すればいいのか・・・今気が付いた。
でも、設定してない人もいるかもしれないしなぁ。