You are viewing a plain text version of this content. The canonical link for it is here.
Posted to announce@perl.apache.org by Gerald Richter <ri...@ecos.de> on 2001/07/10 07:04:09 UTC
ANNOUNCE: DBIx::Recordset 0.24
The URL
ftp://ftp.dev.ecos.de/pub/perl/dbi/DBIx-Recordset-0.24.tar.gz
has entered CPAN as
file: $CPAN/authors/id/G/GR/GRICHTER/DBIx-Recordset-0.24.tar.gz
size: 92611 bytes
md5: 76835b342ac63d731a4eb9529613ee99
DBIx::Recordset is a perl module for abstraction and simplification of
database access.
The goal is to make standard database access (select/insert/update/delete)
easier to handle and independend of the underlying DBMS. 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, but DBIx::Recordset is not
limited to web applications.
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 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 use the DBI API to access the database, so it should work
with every database for which a DBD driver is available (see also
DBIx::Compat)
For more information look at perldoc DBIx::Recordset.
An introduction to DBIx::Recordset can be view with perldoc Intrors.pod.
The introduction can also be viewed online at
http://perl.apache.org/embperl/Intrors.pod.cont.html
DBIx::Recordset is tested with (but should also work with other DBMS)
- DBD::mSQL
- DBD::mysql
- DBD::Pg
- DBD::Solid
- DBD::ODBC
- DBD::Oracle
- DBD::Sybase
- DBD::CSV
- DBD::Informix
SYNOPSIS
use DBIx::Recordset;
# Setup a new object and select some recods...
*set = DBIx::Recordset -> Search ({'!DataSource' => 'dbi:Oracle:....',
'!Table' => 'users',
'$where' => 'name = ? and age > ?',
'$values' => ['richter', 25] }) ;
# Get the values of field foo ...
print "First Records value of foo is $set[0]{foo}\n" ;
print "Second Records value of foo is $set[1]{foo}\n" ;
# Get the value of the field age of the current record ...
print "Age is $set{age}\n" ;
# Do another select with the already created object...
$set -> Search ({name => 'bar'}) ;
# Show the result...
print "All users with name bar:\n" ;
while ($rec = $set -> Next)
{
print $rec -> {age} ;
}
# Setup another object and insert a new record
*set2 = DBIx::Recordset -> Insert ({'!DataSource' => 'dbi:Oracle:....',
'!Table' => 'users',
'name' => 'foo',
'age' => 25 }) ;
# Update this record (change age from 25 to 99)...
$set -> Update ({age => 99}, {name => 'foo'}) ;
Changes since 0.23:
- Added Code to DBIx::Database to Create/Modify/Drop tables
See CreateTables/DropTables
- *fieldname can take an array ref, to specify different
operators for multiple values which should compared to the same
field. This is handy for selecting a range.
- Filters are correctly apply if a arrayref with multiple value
are passed to a SELECT.
- Reset error code and string in DBIx::Database -> new
- If an array of values id passed in for one field and the operator
is '=' now the IN sql operator is used, instead of a set of '='.
- Set Postgres type 1005 to not numeric. Spotted by Michael Maruka.
- Ignore errors in ListFields when retrieving metadata for a table.
- Statement handle is closed as soon as possible, to avoid out of
cursors situations.
- new parameter $expr allow to group multiple sub expressions in
a sql where, therefore allowing more complex conditions.
- Added new parameter !MergeFunc which allow to specify a function
that is called, when multiple records with the same key are found
in a DBIx::Recordset::Hash object.
- Added some code to handle table- and fieldnames which include
spaces and special charaters. This is still experimental.
- Fixed problem with !TableFilter setup
- Set correct brackets when creating an left outer join. This is necessary
for some database to join more the two tables.
Enjoy
Gerald
-------------------------------------------------------------
Gerald Richter ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting
Post: Tulpenstrasse 5 D-55276 Dienheim b. Mainz
E-Mail: richter@ecos.de Voice: +49 6133 925131
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: announce-unsubscribe@perl.apache.org
For additional commands, e-mail: announce-help@perl.apache.org