From: Mark Carter Date: 2005-02-15T21:54:53+09:00 Subject: Excited n00b I jobby out VBA code for a living, although I use python wherever I can. I thought I'd try out Ruby to see what all the fuss was about. So far, I'm impressed. Here's a little proggy that I knocked out to dump the table structure of a database: require 'win32ole' def schema() @MDB_FILE_NAME = "C:\\mcarter\\srel\\2292-Stargate\\demo.mdb" # Create the object conn=WIN32OLE.new("ADODB.Connection") conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=\"#{@MDB_FILE_NAME}\"" conn.open #http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthopenschema.asp #http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstschemaenum.asp adSchemaTables = 20 #constant rs = conn.OpenSchema(adSchemaTables) rs.MoveFirst if !rs.eof while !rs.eof yield rs rs.MoveNext end rs.close() conn.close end schema { | table | puts "NEW TABLE" for field in table.Fields puts "%-15s %10s" % [field.name, field.value] end puts } OK, it could do with some refactoring, but I was just trying to get something working. I think that impresses me about this block stuff is that it's a really neat way to hide messy implementation details. ADODB has a slightly strange way of iterating over records (the !rs.eof bit); but that doesn't matter because it's all hidden away. I just iterate over the recordset like it was a normal list. I'm tempted to stick around to see what other goodies Ruby has in store. What I'm actually trying to do is read a database, bump the date values of some of the fields, create some new records, and put the result into a new database. Before I completely re-invent the wheel, is there a ruby library that is likely to be of assistance?