Bei Locking dasselbe DB-Handle verwenden
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 4 Jul 2011 08:04:30 +0000 (10:04 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 4 Jul 2011 08:04:30 +0000 (10:04 +0200)
Seit der neuen Klasse für den Zugriff auf 'defaults' ist durch das
"SELECT ..." die 'defaults' in der DB-Verbindung gelockt, die über
get_standard_dbh zurückgegeben wird. Versucht nun SL/TransNumber, mit
"LOCK defaults" die Tabelle ebenfalls zu locken, so klappt das nur,
wenn das aus derselben Verbindung heraus passiert. Also darf da keine
zweite mit $form->dbconnect_noauto geöffnet werden.

Fix für Bug 1687.

SL/CT.pm
SL/IC.pm

index 6d801d4..b169482 100644 (file)
--- a/SL/CT.pm
+++ b/SL/CT.pm
@@ -236,7 +236,7 @@ sub save_customer {
   $form->{klass} = 0 unless ($form->{klass});
 
   # connect to database
-  my $dbh = $form->dbconnect_noauto($myconfig);
+  my $dbh = $form->get_standard_dbh;
 
   map( {
     $form->{"cp_${_}"} = $form->{"selected_cp_${_}"}
@@ -445,7 +445,6 @@ sub save_customer {
                               'always_valid' => 1);
 
   my $rc = $dbh->commit();
-  $dbh->disconnect();
 
   $main::lxdebug->leave_sub();
   return $rc;
index 3199364..ee92278 100644 (file)
--- a/SL/IC.pm
+++ b/SL/IC.pm
@@ -288,7 +288,7 @@ sub save {
   my ($self, $myconfig, $form) = @_;
   my @values;
   # connect to database, turn off AutoCommit
-  my $dbh = $form->dbconnect_noauto($myconfig);
+  my $dbh = $form->get_standard_dbh;
 
   # save the part
   # make up a unique handle and store in partnumber field
@@ -593,7 +593,6 @@ sub save {
 
   # commit
   my $rc = $dbh->commit;
-  $dbh->disconnect;
 
   $main::lxdebug->leave_sub();