cvsuser     02/08/16 09:09:14

  Modified:    P5EEx/Blue/P5EEx/Blue/Repository DBI.pm
  Log:
  modified some debug conditions and error handling
  
  Revision  Changes    Path
  1.18      +24 -12    p5ee/P5EEx/Blue/P5EEx/Blue/Repository/DBI.pm
  
  Index: DBI.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Repository/DBI.pm,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -w -r1.17 -r1.18
  --- DBI.pm    1 Aug 2002 18:17:35 -0000       1.17
  +++ DBI.pm    16 Aug 2002 16:09:14 -0000      1.18
  @@ -1,13 +1,13 @@
   
   ######################################################################
  -## File: $Id: DBI.pm,v 1.17 2002/08/01 18:17:35 spadkins Exp $
  +## File: $Id: DBI.pm,v 1.18 2002/08/16 16:09:14 spadkins Exp $
   ######################################################################
   
   use P5EEx::Blue::P5EE;
   use P5EEx::Blue::Repository;
   
   package P5EEx::Blue::Repository::DBI;
  -$VERSION = do { my @r=(q$Revision: 1.17 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
  +$VERSION = do { my @r=(q$Revision: 1.18 $=~/\d+/g); sprintf "%d."."%02d"x$#r,@r};
   
   @ISA = ( "P5EEx::Blue::Repository" );
   
  @@ -218,8 +218,9 @@
   }
   
   sub error {
  -    my $err = $_[0]->{dbh}->errstr || $_[0]->{error};
  -    $err ? $err : "";
  +    my ($self) = @_;
  +    my $err = $self->{dbh}->errstr || $self->{error};
  +    return $err;
   }
   
   # modified from the DBD::_::db::selectall_arrayref in DBI.pm
  @@ -1169,6 +1170,7 @@
   # $row = $rep->select_row ($table, \@cols, \@params, \%paramvalues);
   sub select_row {
       my $self = shift;
  +    $self->{error} = "";
       my ($dbh, $table, $sql);
       $table = $_[0];
       if ($self->{table}{$table}{rawaccess}) {
  @@ -1192,6 +1194,7 @@
   # TODO: rethink $startrow/$endrow vs. $numrows/$skiprows
   sub select_rows {
       my $self = shift;
  +    $self->{error} = "";
       my ($dbh, $table, $startrow, $endrow, $sql);
       ($table, $startrow, $endrow) = @_[(0,5,6)];
       if ($self->{table}{$table}{rawaccess}) {
  @@ -1207,6 +1210,7 @@
   # $ok = $rep->insert_row ($table, \@cols, \@row);
   sub insert_row {
       my ($self, $table, $cols, $row) = @_;
  +    $self->{error} = "";
       my $sql = $self->mk_insert_row_sql($table, $cols);
       $self->{sql} = $sql;
       my $dbh = $self->{dbh};
  @@ -1217,6 +1221,7 @@
   # $ok = $rep->insert_rows ($table, \@cols, \@rows);
   sub insert_rows {
       my ($self, $table, $cols, $rows) = @_;
  +    $self->{error} = "";
       my ($row, $sql, $nrows, $ok);
      
       my $dbh = $self->{dbh};
  @@ -1240,6 +1245,7 @@
   # $ok = $rep->update_row ($table, \@cols, \@row, \@keycolidx);
   sub update_row {
       my ($self, $table, $cols, $row, $keycolidx) = @_;
  +    $self->{error} = "";
       my $sql = $self->mk_update_row_sql($table, $cols, $row, $keycolidx);
       $self->{sql} = $sql;
       my $dbh = $self->{dbh};
  @@ -1250,6 +1256,7 @@
   # $ok = $rep->update_rows($table, \@cols, \@row, \@params, \%paramvalues);
   sub update_rows {
       my ($self, $table, $cols, $row, $params, $paramvalues) = @_;
  +    $self->{error} = "";
       my $sql = $self->mk_update_rows_sql($table, $cols, $row, $params, $paramvalues);
       $self->{sql} = $sql;
       my $dbh = $self->{dbh};
  @@ -1260,6 +1267,7 @@
   # $ok = $rep->delete_row ($table, \@cols, \@row, \@keycolidx);
   sub delete_row {
       my $self = shift;
  +    $self->{error} = "";
       my $sql = $self->mk_delete_row_sql(@_);
       $self->{sql} = $sql;
       my $dbh = $self->{dbh};
  @@ -1270,6 +1278,7 @@
   # $ok = $rep->delete_rows($table, \@params, \%paramvalues);
   sub delete_rows {
       my $self = shift;
  +    $self->{error} = "";
       my $sql = $self->mk_delete_rows_sql(@_);
       $self->{sql} = $sql;
       my $dbh = $self->{dbh};
  @@ -1320,6 +1329,7 @@
       my ($table_ih, $auto_id, $current_datetime, $context, $error, $sql);
       my ($column_obsolete_dttm, $column_change_dttm, %colidx, %nodiff_column);
   
  +    $self->{error} = "";
       $context = $self->{context};
       if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
           $context->dbgprint("store_row($table, col=$cols, row=$row (", ($#$row + 1), 
"), kidx=$keycolidx, up=$update_first)");
  @@ -1432,6 +1442,7 @@
                       $oldrow->[$colidx{$column_obsolete_dttm}] = 
$row->[$colidx{$column_change_dttm}];
                   }
                   $ok = $self->insert_row($table_ih,\@insert_cols_ih,$oldrow);
  +                $ok = 1 if (!$ok && $self->error() =~ /duplicate/i);
               }
               $ok = $self->update_row($table,$cols,$row,$keycolidx) if ($ok);
           }
  @@ -1454,7 +1465,7 @@
           }
           $ok = $self->insert_row($table,\@insert_cols,$row);
   
  -        if ($P5EEx::Blue::DEBUG && $context->dbg(2)) {
  +        if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
               $context->dbgprint("store_row() new=[", join(",",@$row), "]");
               $error = $self->error();
               $sql = $error ? $self->{sql} : "";
  @@ -1511,6 +1522,7 @@
       my ($table_ih, $auto_id, $current_datetime, $context, $error, $sql);
       my ($column_obsolete_dttm, $column_change_dttm, %colidx, %nodiff_column);
   
  +    $self->{error} = "";
       $context = $self->{context};
       if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
           $context->dbgprint("store_rows($table, col=$cols, rows=$rows (", ($#$rows + 
1), "), kidx=$keycolidx, up=$update_first, crit=$row_crit)");
  @@ -1665,11 +1677,12 @@
                           $oldrow->[$colidx{$column_obsolete_dttm}] = 
$row->[$colidx{$column_change_dttm}];
                       }
                       $ok = $self->insert_row($table_ih,\@insert_cols_ih,$oldrow);
  +                    $ok = 1 if (!$ok && $self->error() =~ /duplicate/i);
                   }
                   $ok = $self->update_row($table,$cols,$row,$keycolidx) if ($ok);
               }
   
  -            if ($P5EEx::Blue::DEBUG && $context->dbg(2)) {
  +            if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
                   $context->dbgprint("store_rows() old=[", join(",",@$oldrow), "]");
                   $context->dbgprint("             new=[", join(",",@$row), "]");
                   $error = $self->error();
  @@ -1689,7 +1702,7 @@
               $ok = $self->insert_row($table,\@insert_cols,$row);
               $error = $self->error();
   
  -            if ($P5EEx::Blue::DEBUG && $context->dbg(2)) {
  +            if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
                   $context->dbgprint("store_rows() new=[", join(",",@$row), "]");
                   $sql = $error ? $self->{sql} : "";
                   $context->dbgprint("                   ok=$ok err=$error $sql");
  @@ -1715,13 +1728,12 @@
                       $oldrow->[$colidx{$column_obsolete_dttm}] = $current_datetime;
                   }
                   $ok = $self->insert_row($table_ih,\@insert_cols_ih,$oldrow);
  +                $ok = 1 if (!$ok && $self->error() =~ /duplicate/i);
               }
  -            if ($ok || $self->error() =~ /duplicate/i) {
  -                $ok = $self->delete_row($table,$cols,$row,$keycolidx);
  -            }
  +            $ok = $self->delete_row($table,$cols,$oldrow,$keycolidx) if ($ok);
   
  -            if ($P5EEx::Blue::DEBUG && $context->dbg(2)) {
  -                $context->dbgprint("store_rows() del=[", join(",",@$row), "]");
  +            if ($P5EEx::Blue::DEBUG && $context->dbg(1)) {
  +                $context->dbgprint("store_rows() del=[", join(",",@$oldrow), "]");
                   $error = $self->error();
                   $sql = $error ? $self->{sql} : "";
                   $context->dbgprint("                   ok=$ok err=$error $sql");
  
  
  


Reply via email to