NAME
DBIx::SQLEngine::ReadMe - Introduction to DBIx::SQLEngine.
DESCRIPTION
The DBIx::SQLEngine class provides an extended interface for DBI
database handles, adding methods that support ad-hoc SQL generation and
query execution in a single call.
MOTIVATION
This is the most recent version of a collection of libraries that I've
used over the last several years to develop business data applications
and object-relational mapping toolkits.
Its goal is to simplify dynamic query execution with the following
capabilities:
* Data-driven SQL: Ad-hoc generation of SQL statements from Perl data
structures in a variety of formats.
* High-Level Interface: Standard operations are handled by a single
method call each. Error handling is standardized.
* Full API Access: Pass-through arbitrary SQL and allow access to
entire DBI API for cases when high-level interfaces are insufficient
or inconvenient.
* Portability: Dynamic subclassing (via DBIx::AnyDBD) to allow
platform-specific support for driver idiosyncrasies and DBMS
workarounds.
DEPENDENCIES
This module requires these other modules and libraries:
DBI 1.0
DBIx::AnyDBD 2.0
Class::MakeMethods 1.003
Class::MakeMethods::Template 1.003
You must also have at least one working DBD module installed. (If you
run into trouble, check that your DBI and DBD modules are up-to-date; in
particular, if you are using DBD::CSV or DBD::AnyData, make sure you
have upgraded to SQL::Statement 1.0 or later.)
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
In order for the test to succeed, you must also have at least one
working DBD module installed, and must provide a DSN to which the script
can connect with permissions to create tables.
STATUS AND SUPPORT
This version is routine release of DBIx::SQLEngine intended for public
use.
The proposed CPAN module list entry is as follows:
Name DSLI Description
-------------- ---- ---------------------------------------------
DBIx::
::SQLEngine bdpo Extends DBI with high-level operations
Further information and support for this module is available at
http://www.evoscript.org.
Please report bugs or other problems to "<
[email protected]>".
See the DBIx::SQLEngine::ToDo manpage for bugs and missing features.
SEE ALSO
See the DBIx::SQLEngine manpage for interface documentation.
See the DBIx::SQLEngine::Changes manpage for revision history.
Similar Modules
Several other CPAN modules provide a similar wrapper around DBI for
purposes of simplification, abstraction, or portability.
Most of these provide simple wrappers around DBI's connect, prepare, and
fetch methods, but do not appear to support any kind of cross-DBMS
portability mechanism. See the DBIx::Abstract manpage, the
DBIx::AbstractLite manpage, and the DBIx::Broker manpage for examples of
this group. (Single-platform solutions like the MySQL::Easy manpage are
also available.)
Some provide at least some cross-DBMS support via specialized subclasses
for the DBDs they support. See the DBIx::SearchBuilder manpage, the
DBIx::Easy manpage, and the DBIx::DWIW manpage for examples of this
group. An incomplete but interesting newcomer is available in the
DBIx::Portable manpage.
The DBIx::Recordset framework provides similar functionality, including
a substantial library of cross-DBMS compatibilty information. It also
includes a tied-hash interface that allows automatic updates on
retrieved rows. See the DBIx::RecordSet manpage, the DBIx::Database
manpage, the DBIx::Compat manpage
The Alzabo framework provides similar functionality, including
DBMS-specific SQL generation, as part of an RDBMS-OO mapper; see the
Alzabo::Driver manpage and the Alzabo::SQLMaker manpage.
CREDITS AND COPYRIGHT
Developed By
M. Simon Cavalletto,
[email protected]
Evolution Softworks, www.evoscript.org
Contributors
Piglet / EJ Evans,
[email protected]
Eric Schneider,
[email protected]
Copyright
Copyright 2001, 2002 Matthew Cavalletto.
Portions copyright 1997, 1998, 1999, 2000, 2001 Evolution Online
Systems, Inc.
License
You may use, modify, and distribute this software under the same terms
as Perl.