我正在尝试从 Ruby 访问 Access 数据库。
dbh = DBI.connect('DBI:ODBC:test','','')
有效,但是
dbh = DBI.connect("DBI:ODBC:driver=Microsoft Access Driver (*.mdb);dbq=H:/test.accdb")
没有。
我不想在每台机器上设置访问驱动程序。
为什么第二行不起作用?
ODBC 驱动程序说我的程序无法识别数据库之类的东西。
还有另一个名称中带有 *.mdb和*.accdb 的 Access-ODBC 驱动程序。你必须选择这个。
我从未使用过新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