ruby和accdb(ms访问)

ruby和accdb(ms访问),ruby,ms-access,windows-xp,Ruby,Ms Access,Windows Xp,如果我有一个基本的windows xp系统、ruby和一个ms access 2007文件(比如c:/foo/bar.accdb),那么读取该.accdb文件的侵入性最小的方法是什么 xp系统上需要安装什么 什么是特定的连接字符串 您可以通过Ruby的win32ole库使用ADO 可以找到完整的详细信息和代码。如果可以使用ADO,则可以找到已安装在Windows XP设备上的ADO库(否则,请分发MDAC)。然后,您只需要ACE DLL及其OLE DB提供程序,可从Microsoft下载中心免

如果我有一个基本的windows xp系统、ruby和一个ms access 2007文件(比如c:/foo/bar.accdb),那么读取该.accdb文件的侵入性最小的方法是什么

  • xp系统上需要安装什么
  • 什么是特定的连接字符串

您可以通过Ruby的win32ole库使用ADO


可以找到完整的详细信息和代码。

如果可以使用ADO,则可以找到已安装在Windows XP设备上的ADO库(否则,请分发MDAC)。然后,您只需要ACE DLL及其OLE DB提供程序,可从Microsoft下载中心免费获得:


您可以使用Ruby library Sequel(),它有ADO适配器,正如这篇博文所解释的(,您可以使用ADO连接MS Access 2007数据库。

应该从这些方面着手。当然,您需要修改一些值,如;path、filename、SQLstatement等

使用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)

如果Sequel和ADO在添加2007 Office system驱动程序后仍无法工作:请检查是否运行32位或64位版本的Ruby。我必须将我的版本降低到32位才能正常工作。

我需要使用:Provider=Microsoft.ACE.OLEDB.12.0Yup,它使用新版本的Access数据库引擎ACE作为与旧的喷气式发动机相反。