Display a warning when an ODBC or ADO subclass is not found
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / ODBC.pm
1 package DBIx::Class::Storage::DBI::ODBC;
2 use strict;
3 use warnings;
4 use base qw/DBIx::Class::Storage::DBI/;
5 use mro 'c3';
6
7 sub _rebless {
8   my ($self) = @_;
9
10   if (my $dbtype = $self->_dbh_get_info(17)) {
11     # Translate the backend name into a perl identifier
12     $dbtype =~ s/\W/_/gi;
13     my $subclass = "DBIx::Class::Storage::DBI::ODBC::${dbtype}";
14
15     if ($self->load_optional_class($subclass) && !$self->isa($subclass)) {
16       bless $self, $subclass;
17       $self->_rebless;
18     }
19     else {
20       warn "Expected driver '$subclass' not found, using generic support. " .
21            "Please file an RT.\n";
22     }
23   }
24   else {
25     warn "Could not determine your database type, using generic support.\n";
26   }
27 }
28
29 1;
30
31 =head1 NAME
32
33 DBIx::Class::Storage::DBI::ODBC - Base class for ODBC drivers
34
35 =head1 DESCRIPTION
36
37 This class simply provides a mechanism for discovering and loading a sub-class
38 for a specific ODBC backend.  It should be transparent to the user.
39
40 =head1 AUTHOR
41
42 See L<DBIx::Class/AUTHOR> and L<DBIx::Class/CONTRIBUTORS>.
43
44 =head1 LICENSE
45
46 You may distribute this code under the same terms as Perl itself.
47
48 =cut
49 # vim:sts=2 sw=2: