---
name: "DBIx::Compat"
section: "3pm"
platform: "linux"
package: "libdbix-recordset-perl"
version: "0.26-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::Compat"
---

# DBIx::Compat(3pm)

Perl extension for Compatibility Infos about DBD Drivers

## NAME

DBIx::Compat - Perl extension for Compatibility Infos about DBD Drivers

## SYNOPSIS

```
  use DBIx::Compat;
  my $HaveTypes  = DBIx::Compat::GetItem ($drv, 'HaveTypes') ;
```

## DESCRIPTION

DBIx::Compat contains a hash which gives information about DBD drivers, to allow to write driver independent programs.

Currently there are the following attributes defined:

### ListFields

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 ;
```

### ListTables

A function which will return an array of all tables of the datasource. Defaults to `$dbh` -\> `"tables"`.

### NumericTypes

Hash which contains one entry for all datatypes that are numeric.

### SupportJoin

Set to true if the DBMS supports joins (select with multiple tables)

### SupportSQLJoin

Set to 1 if the DBMS supports INNER/LEFT/RIGHT JOIN Syntax in SQL select. Set to 2 if DBMS needs a \*= b syntax for inner join (MS-SQL, Sybase). Set to 3 if DBMS needs a = b (+) syntax for inner join (Oracle syntax).

### SQLJoinOnly2Tabs

Set to true if DBMS can only support two tables in inner joins.

### HaveTypes

Set to true if DBMS supports datatypes (most DBMS will do)

### NeedNullInCreate

Set to `'NULL'` if DBMS requires the NULL keyword when creating tables where fields should contains nulls.

### EmptyIsNull

Set to true if an empty string ('') and NULL is the same for the DBMS.

### LimitOffset

An function which will be used to create a SQL text for limiting the number of fetched rows and selecting the starting row in selects.

## Keys that aren't needed anymore

### Placeholders

Gives information if and how placeholders are supported:

- **0** = Not supported

  - **1** = Supported, but not fully, unknown how much

  - **2** = Supported, but perl type must be the same as type in db

  - **3** = Supported, but can not give a string when a numeric type is in the db

  - **10** = Supported under all circumstances

  ### QuoteTypes

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.

## Supported Drivers

Currently there are entry for

- **DBD::mSQL**

  - **DBD::mysql**

  - **DBD::Pg**

  - **DBD::Solid**

  - **DBD::ODBC**

  - **DBD::CSV**

  - **DBD::Oracle**

  - **DBD::Sysbase**

  - **DBD::Informix**

  if you detect an error in the definition or add an definition for a new DBD driver, please mail it to the author.

## AUTHOR

G.Richter \<richter\*dev.ecos.de\>

## SEE ALSO

[**perl**(1)](/perl/1.md), **DBI**(3), **DBIx::Recordset**(3)
