"Harlan Pankau" <hpankaux / earthlink.net> wrote in message
news:Xns92F965DFB28DDhpankauxearthlinknet / 207.217.77.26...
> I have created several desktop database applications with MS Access. I
> want to freely distribute them to my friends but don't want them to have
> to purchase Access. My questions are:
>
> 1) How difficult is it to create small database intensive applications
> with Ruby? (Much SQL for combos and listboxes).

There is Ruby DBI as a generic DB interface - requires some DB installed -
but is supposedly easy to work with.
I'm not an expert on DBI though.

You can continue to use MS Access databases and create them in Ruby if you
like.
It is legal to redistribute the Access runtime dll's (not the GUI) and you
can use Ruby via WIN32OLE to access COM objects. I believe there is also a
DBI binding for Access which is probably easier but more limited than doing
COM directly. You could look at the source for the DBI binding.

If you search a month back or so Shannon Fang worked a lot with this.
I've been working directly with Access databases via DAO COM interface (C++,
not Ruby though) and it is fairly easy to work with.

> 2) My applications use extensive reporting. Is this hard with Ruby?

As easy in Ruby as in any language, but it really depends on what you want -
GUI, log file, remote logging?

> 3) Is the code portable to other OS like Mac?

Generally speaking Ruby code is very portably, but there are some corners
here and there - there some problems with Fox GUI toolkit AFAIK - but they
are being worked on. The major problem is in finding a cross platform
database.

> 4) What would my users need to run my programs?

Depending on the database - they'd need the database runtime independently
of Ruby, then the Ruby installation - which is a one click install on
Windows and sometimes installed on Linux with additional installs. Ruby is
in Mac OS  X v.?. You probably also have to download some database specific
driver for Ruby at RAA.

> 5) Is Ruby the best choice for this type of application? Speed of
> execution is not as important as flexibility and usability.

It is very suitable for the purpose - but in the end it depends on whether
you can find a suitable database that actually has a mature Ruby interface -
generally Perl has more mature bindings to most things, but if Ruby supports
something it is a much more pleasent experience to do it in Ruby.

If it doesn't bother you to run on Windows only,  I'd suggest continuing to
use MS Access - the easiest way to install the Access JET database engine is
to install Microsoft data access components (MDAC) avaialble at various SDK
CD's and online at Microsofts site. Go with the raw DAO COM objects, not ADO
as they are just and adaption layer to a newer interface which cannot do
everything (might not be entirely true for latest Access version - I haven't
investigated).

On the other hand, if you are not handing out a CD, it may be a problem with
all the software end users must install. Text file formats can be a good
solution - XML, YAML or plain text can handly fairly large amounts of data
these days. Ruby has good support for this.

Mikkel