Matthew Simon Cavalletto > DBIx-SQLEngine > DBIx::SQLEngine::Docs::Related

Download:
DBIx-SQLEngine-0.93.tar.gz

Annotate this POD

CPAN RT

New  2
Open  0
View/Report Bugs
Source  

NAME ^

DBIx::SQLEngine::Docs::Related - Survey of DBI Wrappers

SYNOPSIS ^

  http://search.cpan.org/search?mode=module&query=DBIx

DESCRIPTION ^

Several other CPAN modules provide a similar wrapper around DBI for purposes of simplification, abstraction, or portability.

Caution

I've commented on a few of these below, but please remember that these notes were written some time ago and may be somewhat out of date, and many modules have been omitted.

RELATED MODULES ^

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 DBIx::Abstract, DBIx::Broker, DBIx::Simple, and Sql::Simple for examples of this group. See also DBIx::AbstractLite, DBIx::Schema, DBIx::Wrap, and DBIx::YAWM. Single-platform solutions like MySQL::Easy are also available.

Some provide only SQL generation mechanisms. See SQL::Abstract.

Some provide at least partial cross-DBMS support via specialized subclasses for the DBDs they support. See DBIx::SearchBuilder, DBIx::Easy, and DBIx::DWIW for examples of this group.

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 DBIx::RecordSet, DBIx::Database, and DBIx::Compat.

The Rosetta framework provides a higher-level interface with a great deal of portability, including supports non-DBI and non-SQL datasources; see Rosetta for details.

The Alzabo framework provides similar functionality, including DBMS-specific SQL generation, as part of an RDBMS-OO mapper; see Alzabo::Driver and Alzabo::SQLMaker.

There are signs of ongoing development in the Class::DBI framework to support cross-DBMS portability, so check CPAN for the latest in this area.

The SQL::AnyDBD is new addition which uses DBIx::AnyDBD.

Some packages focus on storing libraries of pre-defined named queries. See SQL::Catalog, SQL::Library, DBIx::PhraseBook, Class::Phrasebook::SQL, and DBIx::Librarian.

Some packages focus on managing database schema information. See DBIx::DataSource, DBIx::Admin::TableInfo, DBIx::SystemCatalog.

For more information about the object mapping modules, see the Poop-Group comparison page at http://poop.sourceforge.net/.

Feature Matrix

Please note that much of this information was collected just from scanning documentation, and may be incorrect or out of date. (Corrections welcome!)

  DBI Wrapper     -- Maintains connection to DBI handle.
  One Call Query  -- Provides combined prepare/fetch/finish method.
  Data-driven SQL -- Generates queries from Perl-ish arguments.
  Schema Access   -- Detect or create tables and other structures.
  Named Configs   -- Manage connection params and query definitions.
  Portability     -- Consistent way of performing queries across platforms.
  Object Mapping  -- Treat rows of data as objects or tied references.

Comparison:

 __PACKAGE__            DBIWrap OneCall DataSQL NameCfg Schema  Portble ObjectM
 
 __DBI_Wrappers__
 DBIx::Abstract           Y       Y       Y       -       -       -       -
 DBIx::AbstractLite       Y       -       Y       -       -       -       -
 DBIx::Broker             Y       Y       Y       -       -       -       -
 DBIx::Browse             Y       Y       Y       -       -       -       -
 DBIx::DWIW               Y       Y       -       -       -       Y/-     -
 DBIx::Easy               Y       Y       Y       -       -       Y/-     -
 DBIx::Schema             Y       Y       Y       -       -       -       -
 DBIx::Simple             Y       Y       -       -       -       -       -
 DBIx::Wrap               Y       Y       Y       -       -       -       -
 DBIx::YAWM               Y       Y       Y       -       -       -       -
 MySQL::Easy              Y       Y       -       -       -       -       -
 SQL::AnyDBD/DBIx::AnyDBD Y       -       Y       -       -       Y       -
 Sql::Simple              Y       Y       Y       -       -       -       -
 
 __Named_Configs__
 DBIx::Librarian          Y       -       -       Y       -       -       -
 DBIx::PhraseBook         Y       Y       Y       Y/-     -       -       -
 DBIx::SearchProfiles     Y       Y       Y       Y       -       -       -
 SQL::Catalog             Y       -       -       Y       -       -       -
 
 __Query_Generation__
 Class::Phrasebook::SQL   -       -       -       Y       -       -       -       
 SQL::Abstract            -       -       Y       -       -       -       -
 SQL::Generator           -       -       Y       Y       -       -
 SQL::Library             -       -       -       Y       -       ?       -
 
 __Schema_Information__
 DBIx::Admin::TableInfo   Y       -       -       -       Y       -       -
 DBIx::DataSource         -       -       -       -       Y       Y       -
 DBIx::SystemCatalog      Y       -       -       -       Y       Y       -
 
 __Tied_Access__
 DBIx::RecordSet/Compat   Y       ?       Y       -       Y       Y       tie
 Tie::DBI                 Y       Y       -       -       -       -       tie
 Tie::RDBM/::Cached       Y       Y       -       -       Y/-     -       tie
 Tie::Table               Y       Y       -       -       -       -       tie

 __Object_Mappers__
 Alzabo                   Y       Y       Y       -?      Y       Y       Y
 Class::DBI/Ima::DBI      Y       Y       Y       Y?      ?       Y       Y
 Class::Tables            Y       Y       Y/-     -       Y       Y       Y
 DBIx::SearchBuilder      Y       Y       Y       -       -       Y       Y
 MKDoc::SQL               Y       Y       Y       -?      ?       Y/-     Y
 Rosetta/SQL::Routine     Y       Y       Y       Y       Y       Y       -
 SPOPS                    Y       Y       Y       -       Y       Y       Y
 Tangram                  Y       Y       Y       -       Y?      Y       Y
  
 __This Module__
 DBIx::SQLEngine          Y       Y       Y       Y       Y       Y       Y

                        DBIWrap OneCall DataSQL NameCfg Schema  Portble ObjectM

Items marked Y/- seem to have only partial support for the feature. I've included a question mark for the cases I was least certain about.

SEE ALSO ^

See DBIx::SQLEngine for module interface and developer documentation.

See DBIx::SQLEngine::Docs::ReadMe for general information about this distribution, including installation and license information.

syntax highlighting: