Path: usenet.cise.ufl.edu!newsfeeds.nerdc.ufl.edu!news.magicnet.net!newspump.monmouth.com!newspeer.monmouth.com!newsfeed.corridex.com!nntp2.savvis.net!inetarena.com!not-for-mail
From: "Gerald Richter" <[email protected]>
Newsgroups: comp.lang.perl.announce,comp.lang.perl.modules
Subject: ANNOUNCE: DBIx::Recordset-0.19
Followup-To: comp.lang.perl.modules
Date: 6 Apr 1999 13:30:03 GMT
Organization: Posted via the Nacamar Network
Lines: 153
Approved: [email protected] (comp.lang.perl.announce)
Message-ID: <[email protected]>
NNTP-Posting-Host: halfdome.holdit.com
X-Disclaimer: The "Approved" header verifies header information for article transmission and does not imply approval of content.
Xref: usenet.cise.ufl.edu comp.lang.perl.announce:284 comp.lang.perl.modules:10034

The URL

   ftp://ftp.dev.ecos.de/pub/perl/dbi/DBIx-Recordset-0.19-beta.tar.gz

has entered CPAN as

 file: $CPAN/authors/id/GRICHTER/DBIx-Recordset-0.19-beta.tar.gz
 size: 57267 bytes
  md5: c3ec022a41cd7e1d99ddbc8f0b86fe9b


DBIx::Recordset is a perl module which handles a lot of always repeating
tasks in database access for you.

The goal is to make standard database access (select/insert/update/delete)
easier to handle (e.g. web application or scripts to enter/retrieve
data to/from a database). Special attention is made on web applications to
make
it possible to handle the state-less access and to process the posted data
of formfields.
The programmer only has to supply the absolutely necessary information, the
rest is done by DBIx::Recordset.

The main features of DBIx::Recordset are:

- it has a compact interface, normaly only one function call is necessary
 for setup and data retrival/inseration/deletion

- it takes care about type conversion and quoting

- it is able to access/modify tables via arrays and hashs

- it can automaticly create sub-objects for tables which are logical linked
 together

- it can automatily create joins based on logical links

- it has input/output filters on a per field/per type basis

- it can create WHERE expression from a hash, which is especially usefull in
 a cgi environement, where you can simply pass all paramters posted to your
cgi
 script to DBIx::Recordset and DBIx::Recordset creates an corresponding
SELECT.

- it can create previous/next buttons for html output

- it works together with HTML::Embperl for easily genration of HTML output

- it has an own database abtraction class DBIx::Compat which gives all the
 necessary information, so that DBIx::Recordset is able to work with
 different database systems

- The new class DBIx::Database is able to retrieve and store meta infomation
 of the database in a centralised location, which can be used for later
 setup. This is also usefull when running under mod_perl, because you can
do
 all the setup and configuration work at webserver startup time, speeding
up
 your scripts when a actual request is processed.


DBIx::Recordset is currently tested with:

- DBD::mSQL
- DBD::mysql
- DBD::Pg
- DBD::Solid
- DBD::ODBC
- DBD::Oracle (requires DBD::Orcale 0.60 or higher)
- DBD::Sybase (not fully tested)
- DBD::CSV


Changes sinces 0.18:

0.19  30 Mar 1999

 - changed order of group by and order by in select. Spotted by
   Roman Maeder.
 - DBIx::Recordset automaticly tried to determinated links between
   tables (see also DBIx::Database)
 - DBIx::Recordset will only insert a new record in the DB if
   a record contains any data. This avoids inserting a record
   that is only created when try to read an non existent record.
 - Added new attribute !WriteMode which lets you specify which
   write operation to the db are permited and which are not.
 - Added new attribute '!LinkName' which will automaticly select
   additional fields from links tables (DBMS must support LEFT JOIN)
 - Fixed a problem that occurs in cleanup when you use muliple
   nested links. (while (($k, $v) = each (%h)) is not reentrant!!)
 - Execute will not do a Search after INSERT/UPDATE/DELETE when an
   error has occured, so the error message is not overwritten
 - use croak instead of die
 - SQLDelete accepts empty WHERE, which will delete the whole table
 - Added new object DBIx::Database which will parse the metadata of
   the database and tried to automaticly determinate links between tables.
   All the information is stored for later access by DBIx::Recordset
   objects. This makes setup of a DBIx::Recordset object much faster,
   especially when you use it in the startup file of your web server.
   Also this gives you the possibility to speficy table attributes
   only once at startup time.
 - New method Links return the links of a DBIx::Recordset object
 - New method Link4Field return the link of the specified field if any.
 - tied hash now also support DELETE and CLEAR operation on a table.
 - Insert now skips undef values, because there is no need to insert
   NULL values.
 - Update now set undef to NULL, even for database that does not use
   placeholders.
 - Added Filters. Filters allows you to specify an input and/or an
   output function which transforms the correspondig fields before
   input/output. This could for example be used to transform database
   specific datatypes (e.g. date) to and from a common format, or just
   to a human readable format.
 - Fieldnames which are given to Update and Insert maybe prefixed with a
   \ to avoid any transformation. Suggested by Frank Ridderbusch.
 - Update and Insert converts numeric values to vaild numeric format, e.g.
   'foo' will be converted to 0 when inserting in an integer field. Use
   '\name' => 'foo' to avoid this conversion.
 - 'null' and 'not null' now allowed as unary operators in where
expression.
   Suggested by Malcolm Cook.
 - An value of undef is now allowed as key for the hash access. This is
   usefull when your primary key is an autoincrement value. Then you can
   add data with undef as key and call Flush to write out the record.
 - automaticly finish a statement handle, when all data is fetched to
   avoid unneccesaary open statement handles.
 - Make all the new features are working with DBD::Orcale. Many thanks
   to John Tobey for his help.
 - Adapted Compat.pm entries for DBD::Sybase. Help and testing from
   Malcolm Cook and Aaron Ross.
 - $DBIx::Recordset::Debug now allows more values, so you can better
   control what's being logged.
 - Added !LongNames parameter which forces the hash keys to the form
   table.field.
 - Added methods for begin/commit/rollback to make sure DBIx::Recordset
   internal data are correctly updated. Suggested by John Tobey.


---
Gerald Richter
ECOS  Electronic Communication Services
Internet - Faxabruf - Infodatenbanken

E-Mail:     [email protected]
WWW:        http://www.ecos.de
Tel:        +49-6133/925151
Fax:        +49-6133/925152
Faxabruf:   +49-6133/93910100