und nochmal das debugging korrigiert
[kivitendo-erp.git] / SL / DBUtils.pm
index 7a0b9cf..1ded2d2 100644 (file)
@@ -4,7 +4,7 @@ require Exporter;
 @ISA = qw(Exporter);
 
 @EXPORT = qw(conv_i conv_date conv_dateq do_query selectrow_query do_statement
-             dump_query quote_db_date selectall_hashref_query
+             dump_query quote_db_date selectall_hashref_query selectfirst_hashref_query
              prepare_execute_query);
 
 sub conv_i {
@@ -28,14 +28,13 @@ sub conv_dateq {
 
 sub do_query {
   my ($form, $dbh, $query) = splice(@_, 0, 3);
-
+  dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_);
   if (0 == scalar(@_)) {
     $dbh->do($query) || $form->dberror($query);
   } else {
     $dbh->do($query, undef, @_) ||
       $form->dberror($query . " (" . join(", ", @_) . ")");
   }
-  dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")");
 }
 
 sub selectrow_query {
@@ -88,6 +87,7 @@ sub quote_db_date {
 sub prepare_execute_query {
   my ($form, $dbh, $query) = splice(@_, 0, 3);
   my $sth = $dbh->prepare($query) || $form->dberror($query);
+  dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_);
   if (scalar(@_) != 0) {
     $sth->execute(@_) || $form->dberror($query . " (" . join(", ", @_) . ")");
   } else {
@@ -110,5 +110,14 @@ sub selectall_hashref_query {
   return $result;
 }
 
+sub selectfirst_hashref_query {
+  my ($form, $dbh, $query) = splice(@_, 0, 3);
+
+  my $sth = prepare_execute_query($form, $dbh, $query, @_);
+  my $ref = $sth->fetchrow_hashref();
+  $sth->finish();
+
+  return $ref;
+}
 
 1;