DBD::ADO - A DBI driver for Microsoft ADO (Active Data Objects)
use DBI; $dbh = DBI->connect("dbi:ADO:dsn", $user, $passwd); Options in the connect string: dbi:ADO:dsn;CommandTimeout=60 (your number) dbi:ADO:dsn;ConnectTimeout=60 (your number) or include both ConnectTimeout and CommandTimeout. The dsn may be a standard ODBC dsn or a dsn-less. See the ADO documentation for more information on the dsn-less connection. # See the DBI module documentation for full details
The DBD::ADO module supports ADO access on a Win32 machine. DBD::ADO is written to support the standard DBI interface to data sources.
$dbh = DBI->connect("dbi:ADO:dsn", $user, $passwd, $attribs); Connection supports dsn and dsn-less calls. $dbh = DBI->connect( "dbi:ADO:File Name=oracle.udl", $user, $passwd, {RaiseError => [0|1], PrintError => [0|1], AutoCommit => [0|1]}); In addition the following attributes may be set in the connect string: Attributes CommandTimeout ConnectionString ConnectionTimeout CursorLocation DefaultDatabase IsolationLevel Mode Provider WARNING: The application is responsible for passing the correct information when setting any of these attributes.
Using the standard DBI function call $dbh->func( arguments, 'function name') You may access the following functions: (case sensitave) OpenSchema All functions return a valid statement handle upon success. OpenSchema supports the following arguments: Any valid ADO Schema name such as adSchemaCatalogs adSchemaIndexes adSchemaProviderTypes example: my $sth = $dbh->func( 'adSchemaProviderTypes', 'OpenSchema' );
Warning: This method is experimental and may change or disappear.
$sth = $dbh->table_info(\%attr); $sth = $dbh->table_info({ TABLE_TYPE => 'VIEW', ADO_Columns => 1, Trim_Catalog => 0, Filter => q{TABLE_NAME LIKE 'C%'}, });
Returns an active statement handle that can be used to fetch information about tables and views that exist in the database. By default the handle contains the columns described in the DBI documentation:
TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE, REMARKS
Additional ADO-only fields will be included if the ADO_Columns attribute is set to true:
%attr = (ADO_Columns => 1);
Some ADO providers include path info in the TABLE_CAT column. This information will be trimmed if the Trim_Catalog attribute is set to true:
%attr = (Trim_Catalog => 1);
The ADO driver allows column criteria to be specified. In this way the record set can be restricted, for example, to only include tables of type 'VIEW':
%attr = (TABLE_TYPE => 'VIEW')
You can add criteria for any of the following columns:
TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE
The ADO driver also allows the recordset to be filtered on a Criteria string: a string made up of one or more individual clauses concatenated with AND or OR operators.
%attr = (Filter => q{TABLE_TYPE LIKE 'SYSTEM%'})
The criteria string is made up of clauses in the form FieldName-Operator-Value. This is more flexible than using column criteria in that the filter allows a number of operators:
<, >, <=, >=, <>, =, or LIKE
The Fieldname must be one of the ADO 'TABLES Rowset' column names:
TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, DESCRIPTION, TABLE_GUID, TABLE_PROPID, DATE_CREATED, DATE_MODIFIED
Value is the value with which you will compare the field values (for example, 'Smith', #8/24/95#, 12.345, or $50.00). Use single quotes with strings and pound signs (#) with dates. For numbers, you can use decimal points, dollar signs, and scientific notation. If Operator is LIKE, Value can use wildcards. Only the asterisk (*) and percent sign (%) wild cards are allowed, and they must be the last character in the string. Value cannot be null.
@names = $dbh->tables(\%attr);
Returns a list of table and view names. Accepts any of the attributes described in the table_info method:
@names = $dbh->tables({ TABLE_TYPE => 'VIEW' });
Support for type_info_all is supported, however, you're not using a true OLE DB provider (using the MS OLE DB -> ODBC), the first hash may not be the "best" solution for the data type. adSchemaProviderTypes does provide for a "best match" column, however the MS OLE DB -> ODBC provider does not support the best match. Currently the types are sorted by DATA_TYPE BEST_MATCH IS_LONG ...
It is strongly recommended that you use the latest version of ADO (2.1 at the time this was written). You can download it from:
http://www.microsoft.com/Data/download.htm
Phlip and Tim Bunce. With many thanks to Jan Dubois, Jochen Wiedmann and Thomas Lowery for additions, debuggery and general help.
ADO Reference book: ADO 2.0 Programmer's Reference, David Sussman and Alex Homer, Wrox, ISBN 1-861001-83-5. If there's anything better please let me know.
http://www.able-consulting.com/tech.htm
2 POD Errors
The following errors were encountered while parsing the POD:
'=item' outside of any '=over'
You forgot a '=back' before '=head2'
To install DBI, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBI
CPAN shell
perl -MCPAN -e shell install DBI
For more information on module installation, please visit the detailed CPAN module installation guide.