All expected evals converted to try, except where no test is done,
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage / DBI / ODBC / DB2_400_SQL.pm
index e84c087..16be2f8 100644 (file)
@@ -3,33 +3,34 @@ use strict;
 use warnings;
 
 use base qw/DBIx::Class::Storage::DBI::ODBC/;
+use mro 'c3';
 
-sub last_insert_id
-{
-    my ($self) = @_;
-
-    $self->dbh_do(sub {
-        my $dbh = shift;
+sub _dbh_last_insert_id {
+    my ($self, $dbh, $source, $col) = @_;
 
-        # get the schema/table separator:
-        #    '.' when SQL naming is active
-        #    '/' when system naming is active
-        my $sep = $dbh->get_info(41);
-        my $sth = $dbh->prepare_cached(
-            "SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM${sep}SYSDUMMY1", {}, 3);
-        $sth->execute();
+    # get the schema/table separator:
+    #    '.' when SQL naming is active
+    #    '/' when system naming is active
+    my $sep = $dbh->get_info(41);
+    my $sth = $dbh->prepare_cached(
+        "SELECT IDENTITY_VAL_LOCAL() FROM SYSIBM${sep}SYSDUMMY1", {}, 3);
+    $sth->execute();
 
-        my @res = $sth->fetchrow_array();
+    my @res = $sth->fetchrow_array();
 
-        return @res ? $res[0] : undef;
-    });
+    return @res ? $res[0] : undef;
 }
 
 sub _sql_maker_opts {
     my ($self) = @_;
-    
+
     $self->dbh_do(sub {
-        { limit_dialect => 'FetchFirst', name_sep => shift->get_info(41) }
+        my ($self, $dbh) = @_;
+
+        return {
+            limit_dialect => 'FetchFirst',
+            name_sep => $dbh->get_info(41)
+        };
     });
 }
 
@@ -42,8 +43,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');
 
 
@@ -56,7 +57,7 @@ for connections using either SQL naming or System naming.
 
 =head1 AUTHORS
 
-Marc Mims C<< <marc@sssonline.com> >>
+Marc Mims C<< <marc@questright.com> >>
 
 Based on DBIx::Class::Storage::DBI::DB2 by Jess Robinson.