Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Try one of these:</p> <p>OLE:</p> <pre><code>require 'win32ole' class AccessDbExample @ado_db = nil # Setup the DB connections def initialize filename @ado_db = WIN32OLE.new('ADODB.Connection') @ado_db['Provider'] = "Microsoft.Jet.OLEDB.4.0" @ado_db.Open(filename) rescue Exception =&gt; e puts "ADO failed to connect" puts e end def table_to_csv table sql = "SELECT * FROM #{table};" results = WIN32OLE.new('ADODB.Recordset') results.Open(sql, @ado_db) File.open("#{table}.csv", 'w') do |file| fields = [] results.Fields.each{|f| fields &lt;&lt; f.Name} file.puts fields.join(',') results.GetRows.transpose.each do |row| file.puts row.join(',') end end unless results.EOF self end def cleanup @ado_db.Close unless @ado_db.nil? end end AccessDbExample.new('test.mdb').table_to_csv('colors').cleanup </code></pre> <p>ODBC:</p> <pre><code> require 'odbc' include ODBC class AccessDbExample @obdc_db = nil # Setup the DB connections def initialize filename drv = Driver.new drv.name = 'AccessOdbcDriver' drv.attrs['driver'] = 'Microsoft Access Driver (*.mdb)' drv.attrs['dbq'] = filename @odbc_db = Database.new.drvconnect(drv) rescue puts "ODBC failed to connect" end def table_to_csv table sql = "SELECT * FROM #{table};" result = @odbc_db.run(sql) return nil if result == -1 File.open("#{table}.csv", 'w') do |file| header_row = result.columns(true).map{|c| c.name}.join(',') file.puts header_row result.fetch_all.each do |row| file.puts row.join(',') end end self end def cleanup @odbc_db.disconnect unless @odbc_db.nil? end end AccessDbExample.new('test.mdb').table_to_csv('colors').cleanup </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload