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:
- 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.