ODBC与Ruby连接字符串

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

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

工作,但

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

没有。

我不想在每台机器上设置Access Driver。

为什么第二条线不工作?

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

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

我从来没有使用新的accdb -format,但我通过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