>===== Original Message From "Florian G. Pflug" <fgp / phlo.org> =====
>On Fri, May 04, 2001 at 10:43:32PM +0900, Renald Buter wrote:
>> On Fri, May 04, 2001 at 03:02:00PM +0100, ruby-talk / ruby-lang.org wrote:
>> > Actually, the only interface i know (a very little bit) which works 
(partly)
>> > like this is the db-interface
>> > in visual basic. But of course, this can be implemented in ruby in a much
>> > more elegant way...
>> Hmmm. I like the DBI approach better, or even de JDBC approach. Using DBI
>> would allow Perl converts (like me :) to adapt more easily...
>Since I never used Perl, but of course want to steal any good idea I can
>find for my interface ( if I actually get to write it).....
>
>How does the Perl DBI Interface work?

Go to http://search.cpan.org/search?module=DBI and look at the
documentation if you want the full thing.

The basic design is like this.

You instantiate a new DBI handle with a "connect" statement.
Among other things that connect statement names a database
driver (for instance DBD::Oracle, DBD::Sybase).  That will
auto-load the required driver (if possible of course) and
then use it to connect to the database.

After that you send SQL statements to the database driver,
that returns statement handles.  The SQL can have
"placeholders" - fields with "?" in them in which you can
put data later.  (Executed by stored procedures if possible,
else the driver takes over producing the SQL.)

There are a ton of methods you can use on a statement
handle to fetch through data, execute, etc.

>> FWIW, I was just looking around for the same thing, but I did not code
>> anything yet, since a MySQL interface _is_ available -- which is enough for
>> me at the moment
>Well, I plan to build my library on top of libmysql-ruby (but of course also
>want to to support other dbs - but since I used only mysql until yet, I will
>start with this).

Everything has to start somewhere. :-)

I don't think that people point to DBI because its API is
utterly fantastic, they point at it because it does a very
good job of abstracting out databases.  Code written with
DBI and bog standard SQL will work against any relational
database you want - including the all Perl DBD::CSV (which
uses as "tables" simple files in CSV format).

Cheers,
Ben