Provided by: libdata-objectdriver-perl_0.14-1_all bug

NAME

       Data::ObjectDriver::Driver::DBD - base class for database drivers

SYNOPSIS

           package SomeObject;
           use base qw( Data::ObjectDriver::BaseObject );

           __PACKAGE__->install_properties({
               ...
               driver => Data::ObjectDriver::Driver::DBI->new(
                   ...
                   dbd => Data::ObjectDriver::Driver::DBD->new('mysql'),
               ),
           });

DESCRIPTION

       Data::ObjectDriver::Driver::DBD is the base class for database drivers.  Database drivers
       handle the peculiarities of specific database servers to provide an abstract API to the
       object drivers. While database drivers operate on queries and database concepts like the
       last insert ID and binding attributes for a query, object drivers operate on objects
       higher level concepts like caching and partitioning.

       Database drivers are used with "Data::ObjectDriver::Driver::DBI" object drivers. If you
       are making an object driver that doesn't use "DBI", you do not need a database driver;
       implement your custom behavior in your "Data::ObjectDriver" subclass directly.

USAGE

   "Data::ObjectDriver::Driver::DBD->new($name)"
       Creates a new database driver of the given subclass type. That is, "new('mysql')" would
       create a new instance of "Data::ObjectDriver::Driver::DBD::mysql".

   "$dbd->init_dbh($dbh)"
       Initializes the given database handle connected to this driver's type of database.

       By default, no operation is performed. Override this method if your type of database must
       do further initialization that other database servers don't need, such as setting an
       operative time zone.

   "$dbd->bind_param_attributes($type)"
       Returns a hashref to pass to the "DBI" statement method "bind_param", to describe the SQL
       type of a column defined as $type in an object class's "column_defs" mapping.

       By default, no operation is performed. Override this method if your type of database needs
       such type hinting for some fields, such as specifying a parameter is a "BLOB".

       Note that object classes must define your custom types in their "column_defs" mappings for
       those classes to be compatible with your "DBD". Make sure to document any custom types you
       implement.

   "$dbd->db_column_name($datasource, $column)"
       Returns a decorated column name. For example, if your database requires column names to be
       prepended with table names, that concatenation would occur in this method.

       By default, "db_column_name" returns the column name unmodified.

   "$dbd->fetch_id()"
       Returns the autogenerated ID of the most recently inserted record, or "undef" if this
       feature is not supported.

       By default, "fetch_id" returns "undef".

   "$dbd->map_error_code($code, $msg)"
       Returns a "Data::ObjectDriver::Errors" code for the given database error, or "undef" if no
       equivalent has been defined.

       By default, "map_error_code" returns "undef" for every error.

   "$dbd->sql_for_unixtime()"
       Returns the SQL for querying the current UNIX time on the database server, or a UNIX time
       to use as the remote time.

       By default, "sql_for_unixtime" returns the value of perl "time()" on the local machine.

   "$dbd->offset_implemented()"
       Returns true if the database this driver represents supports "OFFSET" clauses.

       By default, "offset_implemented" returns true.

   "$dbd->can_delete_with_limit()"
       Returns true if the database this driver represents supports "LIMIT" clauses on "DELETE"
       statements.

       By default, "can_delete_with_limit" returns false.

   "$dbd->can_prepare_cached_statements()"
       Returns true if the database this driver can cope with preparing a cached statement.

       By default, "can_delete_with_limit" returns true.

   "$dbd->is_case_insensitive()"
       Returns true if the database this driver represents normally compares string fields case
       insensitively.

       By default, "is_case_insensitive" returns false.

   "$dbd->can_replace()"
       Returns true if the database this driver represents supports "REPLACE INTO" statements.

       By default, "can_replace" returns false.

   "$dbd->force_no_prepared_cache()"
       Returns false if the database this driver represents supports the "prepare_cached" method
       on its DBI database handles.

       By default, "force_no_prepared_cache" returns false.

   "$dbd->sql_class()"
       Provides the package name of the class responsible for representing SQL queries. This
       method returns 'Data::ObjectDriver::SQL', but may be overridden to return a package that
       has a similar interface but produces SQL that is compatible with that DBD driver. The
       package provided must already be loaded and available for use.

LICENSE

       Data::ObjectDriver is free software; you may redistribute it and/or modify it under the
       same terms as Perl itself.

AUTHOR & COPYRIGHT

       Except where otherwise noted, Data::ObjectDriver is Copyright 2005-2006 Six Apart,
       cpan@sixapart.com. All rights reserved.