代码之家  ›  专栏  ›  技术社区  ›  David Nehme

Ruby和Acdb(MS Access)

  •  10
  • David Nehme  · 技术社区  · 15 年前

    如果我有一个基本的Windows XP系统、Ruby和一个MS Access 2007文件(比如c:/foo/bar.accdb)文件,那么读取该.accdb文件的侵入性最小的方法是什么?

    • 需要在XP系统上安装什么。
    • 具体的连接字符串是什么?
    6 回复  |  直到 9 年前
        1
  •  10
  •   KevenDenen    9 年前

    沿着这些线的东西应该能让你开始。当然,您需要修改一些值,如路径、文件名、sqlstation等。

    使用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)
    
        2
  •  6
  •   Arnaud    15 年前

    你可以使用Ruby库续集( http://sequel.rubyforge.org/documentation.html )具有ADO适配器

        3
  •  3
  •   David Mullet    15 年前

    你可以通过Ruby使用ADO Win 32 图书馆。

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

        4
  •  1
  •   onedaywhen    15 年前

    如果您可以使用ADO,那么您将发现ADO库已经安装在Windows XP框中(否则分发mdac)。然后,您只需要ace dlls及其OLE DB提供程序,可从Microsoft下载中心免费获得:

    2007 Office System Driver: Data Connectivity Components

        5
  •  1
  •   T0xicCode    15 年前

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

        6
  •  0
  •   metrix    10 年前

    如果Sequel和ADO即使在添加了2007 Office系统驱动程序之后也不能工作:请检查您运行的是32位还是64位版本的Ruby。我必须将我的版本压缩到32位才能使事情正常工作。