【发布时间】:2010-11-10 08:25:55
【问题描述】:
如果我有一个基本的 windows xp 系统、ruby 和一个 ms access 2007 文件(比如 c:/foo/bar.accdb)文件,那么读取该 .accdb 文件的侵入性最小的方法是什么。
- xp系统需要安装什么。
- 具体的连接字符串是什么。
【问题讨论】:
标签: ruby ms-access windows-xp
如果我有一个基本的 windows xp 系统、ruby 和一个 ms access 2007 文件(比如 c:/foo/bar.accdb)文件,那么读取该 .accdb 文件的侵入性最小的方法是什么。
【问题讨论】:
标签: ruby ms-access windows-xp
这些方面的内容应该可以帮助您入门。当然,您需要修改一些值,例如;路径、文件名、SQL语句等
使用 Jet 引擎的 MDB 文件(Access 2003 及更早的格式)
require 'win32ole'
connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=c:\path\filename.mdb')
使用 ACE 引擎的 ACCDB 文件(Access 2007 和更新的格式)
require 'win32ole'
connection = WIN32OLE.new('ADODB.Connection')
connection.Open('Provider=Microsoft.ACE.OLEDB.12.0;
Data Source=c:\path\filename.accdb')
要执行不返回数据的 SQL 查询,请使用:
connection.Execute("INSERT INTO Table VALUES ('Data1', 'Data2');")
执行返回记录集的查询:
recordset = WIN32OLE.new('ADODB.Recordset')
recordset.Open(SQLstatement, connection)
【讨论】:
你可以使用 Ruby 库 Sequel (http://sequel.rubyforge.org/documentation.html),它有 ADO 适配器
【讨论】:
您可以通过 Ruby 的 win32ole 库来使用 ADO。
完整的细节和代码可以在here找到。
【讨论】:
如果您可以使用 ADO,那么您会发现 ADO 库已经安装在 Windows XP 机器上(否则分发 MDAC)。那么您所需要的只是 ACE dll 及其 OLE DB Provider,可从 Microsoft 下载中心免费获得:
【讨论】:
正如这篇博文所解释的那样(Ruby on Windows: Using Ruby & ADO to Work with MS Access Databases,您可以使用 ADO 连接到 MS Access 2007 数据库。
【讨论】:
如果在添加 2007 Office 系统驱动程序后 Sequel 和 ADO 仍无法工作:请检查您运行的是 32 位还是 64 位版本的 Ruby。我必须将我的版本降低到 32 位才能正常工作。
【讨论】: