Version 0.03.
At the time of this writing, the DBD::ADO driver even ADO itself are relatively new. Things are bound to change, so be sure to read the latest documentation.
DBD::ADO
The driver maintainer is Phlip Plumlee. He can be contacted via the dbi-users mailing list.
The DBD::ADO module requires Microsoft ADO version 2.1 or later to work reliably. Using NT with Service Pack 4 is recommended. The module is pure Perl, making use of the Win32::OLE module to handle the ADO requests.
Win32::OLE
The DBD::ADO module supports SQL statements into anything your raw ADO supports. This can include the Jet data drivers for the various Microsoft Office file formats, any number of ODBC data drivers, or experimental data providers that expose file system folder heirarchies or Internet directory services as data sources.
Each provider system variously supports SQL, either in a native format like MS-SQL Server's Transact SQL or as an emulation layer in the data provider, such as a Jet data driver reading an Excel spreadsheet.
The DBI->connect() Data Source Name, or DSN has the following format:
DBI->connect()
dbi:ADO:DSN
Where DSN must be an ODBC Data Source Name registered with the Control Panel ODBC Data Sources applet. If your DBI application runs as a service, or daemon, the DSN must appear on the "System DSN" tab. A CGI application is the obvious example.
There are no driver specific attributes for the DBI->connect() method.
The numeric, string, and date data types depend on the interaction of four forces: What a Perl "scalar" supports, how the Win32::OLE layer translates VARIANTs into scalars, the types that VARIANT itself permits, and the types your target provider emits.
A user-programmer must research those forces in their relevant documentation. Rest assured that DBD::ADO will then transmit the type correctly.
See "Numeric Data Handling" above.
The DBD::ADO driver does not yet support the type_info() method.
type_info()
DBD::ADO reflects the capabilities of the native Connection to the user. Transactions, if a provider supports them, are per connection - all statements derived from one connection will ``see'' updates to that data that await a COMMIT statement. Other connections, if a provider supports them, will not see these updates.
COMMIT
ADO supports 4 locking levels. Databases can be very sensitive to the lock typed picked. If you pick the wrong type and then BEGIN a large TRANSACTION, the locking type can escalate up to lock nearly everything. DBD::ADO should expose these levels to the user for tuning, but currently doesn't.
Dependent on the data provider associated with the database handle.
Parameter binding is not yet supported by DBD::ADO.
Unsupported values of the TYPE attribute do not currently generate a warning.
Calling stored procedures is not yet supported by DBD::ADO.
DBD::ADO does not currently support the table_info() method. It awaits the needed slack time and/or other volunteers.
table_info()
DBD::ADO has no significant driver-specific handle attributes or private methods.
DBD::ADO does not support positioned updates or deletes.
DBD::ADO is a very new and currently incomplete driver. It is evolving rapidly though, and since it's written in pure Perl using Win32::OLE, it's easy for people to enhance.
Information about ADO can be found at http://www.microsoft.com/data/ado/.
DBD::ADO supports an unlimited number of concurrent data source connections to one or more data sources subject to the limitations of those data sources.
It also supports the preparation and execution of a new statement handle while still fetching data from another statement handle associated with the same database handle. This is also subject to the limitations of the data source.
To install dbd-ado, copy and paste the appropriate command in to your terminal.
cpanm
cpanm dbd-ado
CPAN shell
perl -MCPAN -e shell install dbd-ado
For more information on module installation, please visit the detailed CPAN module installation guide.