The following module was proposed for inclusion in the Module List:
modid: SQL::Exec
DSLIP: bdphp
description: Simple thread and fork safe database access
userid: MATHIAS (Mathias Kende)
chapterid: 7 (Database_Interfaces)
communities:
similar:
DBI::Simple, DBIx::Simple, DBIx::DWIW, DBIx::Wrapper,
DBIx::SimpleGoBetween, DBIx::Sunny, SQL::Executor
rationale:
SQL::Exec is (another) interface to the DBI which strive for
simplicity. Its main functionalities are: - DBMS independent. The
module offers specific support for some DB server but can work with
any DBD driver. - Extremely simple, a query is always only one
function or method call - everything is as (in)efficient: you choose
the function to call based only on the data that you want to get
back, not on some supposed performance benefit - supports both OO
and functional paradigm with the same interface and functionalities
- hides away all DBIism, the user does not need to set any options,
they are handled by the library with nice defaults. - safe:
SQL::Exec verify that what happens is what you meant - Not an ORM,
nor a query generator: the user controls his SQL. - easy to extends
to offer functionalities specific to one DB server Due to its usage
of DBIx::Connector and SQL::SplitStatement, SQL::Exec has this
additional features: - handle transparently network failure,
fork/thread, etc. - safely handle multi statement query and
automatic transaction.
All this means that SQL::Exec is extremely beginners friendly, it
can be used with no advanced knowledge of Perl and code using it can
be easily read by people with no knowledge of Perl at all, which is
interesting in a mixed environment.
Also, the fact that SQL::Exec does not try to write SQL for the
programmer (this is a feature, not a bug), ease the migration to
other tools or languages if a big part of the application logic is
written in SQL.
Thus SQL::Exec is optimal for fast prototyping, for small
applications which do not need a full fledged ORM, for migrating SQL
code from/to an other environment, etc. It is usable (thanks to
DBIx::Connector) in a CGI scripts, in a mod_perl program or in any
web framework as the database access layer.
There is quiet a lot of other interfaces to the DBI, with some of
them claiming simplicity. Here is a list of some of these modules,
classified by how they are not SQL::Exec: - These modules are SQL
generator: DBIx::SimplePerl, DBIx::Perlish, DBIx::Easy,
DBIx::SQLEngine (and purely OO), DBIx::PDlib, SQL::DB,
DBIx::Wrapper, DBIx::Custom , DBIx::Abstract - These modules are
ORM: DBI::Easy, DBI::Lite, DBIx::Skinny - These modules handle only
MySQL: DBI::Simple (unregistered), DBIx::DWIW (and purely OO),
SQL::Easy, DBIx::Sunny (and SQLite) - These modules are purely OO:
DBIx::SimpleQuery, DBIx::Simple, and others already listed - This
module has no error control (this is a design decision):
DBIx::SimpleGoBetween - SQL::Executor (which did not exist when I
created SQL::Exec) is close to SQL::Exec (even the name), but it is
an SQL generator augmented to ease the usage of SQL and lack some of
the high level function of SQL::Exec (also it is only OO).
Finally, the name for this module comes from the fact that it is
centred around SQL execution, not the DBI.
enteredby: MATHIAS (Mathias Kende)
enteredon: Mon Jan 14 22:58:04 2013 GMT
The resulting entry would be:
SQL::
::Exec bdphp Simple thread and fork safe database access MATHIAS
Thanks for registering,
--
The PAUSE
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=73900000_e404825856a249ba&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=73900000_e404825856a249ba&SUBMIT_pause99_add_mod_insertit=1
Peek at the current permissions:
https://pause.perl.org/pause/authenquery?pause99_peek_perms_by=me&pause99_peek_perms_query=SQL%3A%3AExec