The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Driver and Database Characteristics

In this appendix we hope to give you a flavour of the functionality and quirks of the different DBI drivers and their databases.

The line between the functionality and quirks of a given driver and the functionality and quirks of its corresponding database is rather blurred. In some cases the database has functionality that the driver can't or doesn't access, in others the driver may emulate functionality that the database doesn't support, like placeholders. So when you see the terms driver or database below, take them with a pinch of salt.

Our primary goals are to:

provide a simple overview of each driver and database.
help you initially select a suitable DBI driver and database for your new applications.
help you identify potential issues if you need to port an existing application from one driver and database combination to another.

We don't attempt to describe the drivers and database in detail here, we're only interested in the key features that are most commonly used or relevant to our goals. And for those features we're just providing an outline guide. Sometimes little more than signposts. Consult the database documentation for full details.

With the cooperation of the driver authors we have produced descriptions for the following drivers and databases:

DBD::ADO - Microsoft 'Active Data Objects' Middleware
DBD::CSV - General 'Comma Seperated Value' ASCII files
DBD::DB2 - IBM DB2
DBD::Empress - Empress
DBD::FreeTDS - For Sybase and SQLServer
DBD::Illustra - Illustra
DBD::Informix - Informix
DBD::Ingres - Ingres
DBD::mysql & DBD::mSQL - MySQL and mSQL lightweight databases
DBD::ODBC - For any ODBC data source
DBD::Oracle - Oracle
DBD::Pg - Postgresql
DBD::SearchServer - Fulcrum Search Server
DBD::Sybase - Sybase
DBD::XBase - For XBase files ( dBase etc. )

For each of these drivers we've tried to cover the same range of topics in the same order. The topics include:

Supported databases and versions along with driver version and author
How to connect
Supported Data Types, their ranges and functionality
Variations in SQL dialect and default behaviours
Advanced database features
How to access database metadata
Driver capabilities and conformance

Reading straight through is not for the faint hearted. We recommend dipping in on an as-needed basis.