NAME

DBIO::Storage::DBI::ODBC - Base class for ODBC drivers

VERSION

version 0.900004

DESCRIPTION

The base of the ODBC storage classes of drivers that run over DBD::ODBC (DBIO::MSSQL::Storage::ODBC, DBIO::Firebird::Storage::ODBC): the ODBC transport helpers above, and the refusal to build a DSN from connection parameters. It is not a driver and does not find one: an ODBC connection does not say which engine is behind it, so a schema declares its driver, and a driver that runs over ODBC moves its storage into its own ODBC class in its "_adapt_to_access_path" in DBIO::Storage::DBI (ADR 0059, ADR 0067). "driver_for" in DBIO refuses an ODBC DSN for the same reason.

METHODS

_using_freetds

Return true when current connection appears to use FreeTDS.

_using_freetds_version

Return FreeTDS version string if available, 0 if undetermined, or undef when FreeTDS is not in use.

_disable_odbc_array_ops

Disable array-operations behavior in DBD::ODBC using version-appropriate driver attributes.

_connect_params_dsn

Refuses. The DSN seam of "_connect_params_dsn" in DBIO::Storage::DBI (ADR 0057) has no form to build for DBD::ODBC out of dbname, host and port: DBD::ODBC connects through a data source name (dbi:ODBC:DSN=name, configured in odbc.ini) or a connection string that names the ODBC driver (dbi:ODBC:Driver={...};...), whose keywords that driver defines -- and connection parameters carry neither. Guessing one would connect somewhere else, or not at all.

The error names the ways out: the whole DSN, as dsn or as a dbname that starts with dbi:ODBC: (DBIO::AccessBroker::Static passes it on), or an AccessBroker that answers in DBI form. An engine reached over ODBC whose driver knows its ODBC connection string overrides this in its own ODBC storage class.

METHODS

AUTHOR

DBIO & DBIx::Class Authors

COPYRIGHT AND LICENSE

Copyright (C) 2026 DBIO Authors Portions Copyright (C) 2005-2025 DBIx::Class Authors Based on DBIx::Class, heavily modified.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.