ruby和accdb(ms访问)

时间:2009-07-13 15:37:45

标签: ruby ms-access windows-xp

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

  • 需要在xp系统上安装什么。
  • 具体的连接字符串是什么。

6 个答案:

答案 0 :(得分:10)

这些方面的东西应该让你开始。当然,你需要修改一些值,比如;路径,文件名,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)

答案 1 :(得分:6)

你可以使用Ruby库Sequel(http://sequel.rubyforge.org/documentation.html),它有ADO适配器

答案 2 :(得分:3)

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

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

答案 3 :(得分:1)

如果您可以使用ADO,那么您会发现已经在Windows XP盒上安装了ADO库(否则分发MDAC)。然后,您需要的只是ACE dll及其OLE DB提供程序,可从Microsoft下载中心免费获得:

2007 Office System Driver: Data Connectivity Components

答案 4 :(得分:1)

正如此博客文章所解释的那样(Ruby on Windows: Using Ruby & ADO to Work with MS Access Databases,您可以使用ADO连接到MS Access 2007数据库。

答案 5 :(得分:0)

如果Sequel和ADO在添加2007 Office system驱动程序后仍无法运行:请检查您是运行32位还是运行64位版本的Ruby。我不得不将我的版本降低到32位以使事情正常工作。