0

我正在尝试从 Ruby 访问 Access 数据库。

dbh = DBI.connect('DBI:ODBC:test','','') 

有效,但是

 dbh = DBI.connect("DBI:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=H:/test.accdb")

没有。

我不想在每台机器上设置访问驱动程序。

为什么第二行不起作用?

ODBC 驱动程序说我的程序无法识别数据库之类的东西。

4

2 回答 2

0

还有另一个名称中带有 *.mdb*.accdb 的 Access-ODBC 驱动程序。你必须选择这个。

于 2013-01-04T12:59:55.110 回答
0

我从未使用过新accdb格式,但我通过Jet 引擎mdb和续集成功连接到-files ..

如果它适用于您的 accdb 文件,您可以测试我的代码示例:

require 'sequel'

Dir['*.mdb'].each{|mdb|
      print "Check #{mdb}"
      @db = Sequel.ado(:conn_string=>"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=#{mdb}")
      begin
        @db.test_connection 
        puts " ok"
      rescue Sequel::DatabaseConnectionError
        puts " error"
      end
}

如果您更喜欢 winole-variant,您可以查看如何查询 MS Access 数据库表,并使用 Ruby 和 win32ole 将信息导出到 Excel?

http://rubyonwindows.blogspot.de/2007/06/using-ruby-ado-to-work-with-ms-access.html

于 2013-01-03T17:45:59.577 回答