X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FStorage%2FDBI%2FODBC%2FDB2_400_SQL.pm;h=29e9da9d81b13541804f1bc5885dff8fff82afb0;hb=2149a4e91f82d2f77657c18d4a0b312327987d5d;hp=d4e6218c85230c1572a9f139063e467b05f797d2;hpb=f1f56aad66c46b1f6bb7a4424cdfd95529b82003;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/Storage/DBI/ODBC/DB2_400_SQL.pm b/lib/DBIx/Class/Storage/DBI/ODBC/DB2_400_SQL.pm index d4e6218..29e9da9 100644 --- a/lib/DBIx/Class/Storage/DBI/ODBC/DB2_400_SQL.pm +++ b/lib/DBIx/Class/Storage/DBI/ODBC/DB2_400_SQL.pm @@ -3,12 +3,25 @@ use strict; use warnings; use base qw/DBIx::Class::Storage::DBI::ODBC/; - -sub last_insert_id -{ - my ($self) = @_; - - my $dbh = $self->_dbh; +use mro 'c3'; + +warn 'Major advances took place in the DBIC codebase since this driver' + .' (::Storage::DBI::ODBC::DB2_400_SQL) was written. However since the' + .' RDBMS in question is so rare it is not possible for us to test any' + .' of the "new hottness". If you are using DB2 on AS-400 please get' + .' in contact with the developer team:' + .' http://search.cpan.org/dist/DBIx-Class/lib/DBIx/Class.pm#GETTING_HELP/SUPPORT' + ."\n" +; + +# FIXME +# Most likely all of this code is redundant and unnecessary. We should +# be able to simply use base qw/DBIx::Class::Storage::DBI::DB2/; +# Unfortunately nobody has an RDBMS engine to test with, so keeping +# things as-is for the time being + +sub _dbh_last_insert_id { + my ($self, $dbh, $source, $col) = @_; # get the schema/table separator: # '.' when SQL naming is active @@ -23,13 +36,17 @@ sub last_insert_id return @res ? $res[0] : undef; } -sub _sql_maker_args { +sub _sql_maker_opts { my ($self) = @_; - - return ( - limit_dialect => 'FetchFirst', - name_sep => $self->_dbh->get_info(41) - ); + + $self->dbh_do(sub { + my ($self, $dbh) = @_; + + return { + limit_dialect => 'FetchFirst', + name_sep => $dbh->get_info(41) + }; + }); } 1; @@ -41,8 +58,8 @@ over ODBC =head1 SYNOPSIS - # In your table classes - __PACKAGE__->load_components(qw/PK::Auto Core/); + # In your result (table) classes + use base 'DBIx::Class::Core'; __PACKAGE__->set_primary_key('id'); @@ -50,12 +67,12 @@ over ODBC This class implements support specific to DB2/400 over ODBC, including auto-increment primary keys, SQL::Abstract::Limit dialect, and name separator -for for connections using either SQL naming or System naming. +for connections using either SQL naming or System naming. =head1 AUTHORS -Marc Mims C<< >> +Marc Mims C<< >> Based on DBIx::Class::Storage::DBI::DB2 by Jess Robinson.