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");