>===== 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