Perl extension for compatibility infos about dbd drivers
use DBIx::Compat; my $HaveTypes = DBIx::Compat::GetItem ($drv, 'HaveTypes') ;
DBIx::Compat contains a hash which gives information about \s-1DBD\s0 drivers, to allow to write driver independent programs.
Currently there are the following attributes defined:
A function which will return information about all fields of an table. Needs an database handle and a tablename as argument. Must at least return the fieldnames and the fieldtypes.
Example:
$ListFields = $DBIx::Compat::Compat{$Driver}{ListFields} ; $sth = &{$ListFields}($DBHandle, $Table) or die "Cannot list fields" ;
@{ $sth -> {NAME} } ; # array of fieldnames @{ $sth -> {TYPE} } ; # array of filedtypes
$sth -> finish ;
A function which will return an array of all tables of the datasource. Defaults to $dbh -> \*(C`tables\*(C'.
Hash which contains one entry for all datatypes that are numeric.
Set to true if the \s-1DBMS\s0 supports joins (select with multiple tables)
Set to 1 if the \s-1DBMS\s0 supports \s-1INNER/LEFT/RIGHT\s0 \s-1JOIN\s0 Syntax in \s-1SQL\s0 select. Set to 2 if \s-1DBMS\s0 needs a *= b syntax for inner join (MS-SQL, Sybase). Set to 3 if \s-1DBMS\s0 needs a = b (+) syntax for inner join (Oracle syntax).
Set to true if \s-1DBMS\s0 can only support two tables in inner joins.
Set to true if \s-1DBMS\s0 supports datatypes (most \s-1DBMS\s0 will do)
Set to 'NULL' if \s-1DBMS\s0 requires the \s-1NULL\s0 keyword when creating tables where fields should contains nulls.
Set to true if an empty string ('') and \s-1NULL\s0 is the same for the \s-1DBMS\s0.
An function which will be used to create a \s-1SQL\s0 text for limiting the number of fetched rows and selecting the starting row in selects.
Gives information if and how placeholders are supported:
Gives information which datatypes must be quoted when passed literal (not via a placeholder). Contains a hash with all type number which need to be quoted.
$DBIx::Compat::Compat{$Driver}{QuoteTypes}{$Type}
will be true when the type in $Type for the driver $Driver must be quoted.
Currently there are entry for
if you detect an error in the definition or add an definition for a new \s-1DBD\s0 driver, please mail it to the author.
G.Richter <richter*dev.ecos.de>
perl\|(1), \s-1DBI\s0\|(3), DBIx::Recordset\|(3)