Commit | Line | Data |
995edf3f |
1 | package DBIx::Class::Schema::Loader::DBI::ODBC; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | use base 'DBIx::Class::Schema::Loader::DBI'; |
6 | use Carp::Clan qw/^DBIx::Class/; |
7 | use Class::C3; |
8 | |
04e60ed2 |
9 | our $VERSION = '0.04999_14'; |
995edf3f |
10 | |
e57fd726 |
11 | =head1 NAME |
12 | |
13 | DBIx::Class::Schema::Loader::DBI::ODBC - L<DBD::ODBC> proxy, currently only for |
14 | Microsoft SQL Server |
15 | |
16 | =head1 DESCRIPTION |
17 | |
18 | Reblesses into L<DBIx::Class::Schema::Loader::DBI::ODBC::Microsoft_SQL_Server>, |
19 | which is a proxy for L<DBIx::Class::Schema::Loader::DBI::MSSQL> when using the |
20 | L<DBD::ODBC> driver with Microsoft SQL Server. |
21 | |
22 | Code stolen from the L<DBIx::Class> ODBC storage. |
23 | |
24 | See L<DBIx::Class::Schema::Loader::Base> for usage information. |
25 | |
26 | =cut |
27 | |
995edf3f |
28 | sub _rebless { |
29 | my $self = shift; |
30 | my $dbh = $self->schema->storage->dbh; |
31 | |
e57fd726 |
32 | # stolen from DBIC ODBC storage |
995edf3f |
33 | my $dbtype = eval { $dbh->get_info(17) }; |
34 | unless ( $@ ) { |
35 | # Translate the backend name into a perl identifier |
36 | $dbtype =~ s/\W/_/gi; |
37 | my $class = "DBIx::Class::Schema::Loader::DBI::ODBC::${dbtype}"; |
b5e1caf2 |
38 | if ($self->load_optional_class($class) && !$self->isa($class)) { |
39 | bless $self, $class; |
40 | $self->_rebless; |
41 | } |
995edf3f |
42 | } |
43 | } |
44 | |
e57fd726 |
45 | =head1 SEE ALSO |
46 | |
47 | L<DBIx::Class::Schema::Loader::DBI::ODBC::Microsoft_SQL_Server>, |
48 | L<DBIx::Class::Schema::Loader::DBI::MSSQL>, |
49 | L<DBIx::Class::Schema::Loader>, L<DBIx::Class::Schema::Loader::Base>, |
50 | L<DBIx::Class::Schema::Loader::DBI> |
51 | |
52 | =head1 AUTHOR |
53 | |
9cc8e7e1 |
54 | See L<DBIx::Class::Schema::Loader/AUTHOR> and L<DBIx::Class::Schema::Loader/CONTRIBUTORS>. |
be80bba7 |
55 | |
56 | =head1 LICENSE |
57 | |
58 | This library is free software; you can redistribute it and/or modify it under |
59 | the same terms as Perl itself. |
e57fd726 |
60 | |
61 | =cut |
62 | |
995edf3f |
63 | 1; |