X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDBUtils.pm;h=8e1ea811a746841fd77c941fb1966ccf902ad670;hb=09a055b2b086ad781534b1d188a8a77d156dcdd5;hp=b8d8f7e9b8b244f6c86e6487feebc38ea33f4a5a;hpb=0965925ab25ba4484389669acce9dec9d66e657b;p=kivitendo-erp.git diff --git a/SL/DBUtils.pm b/SL/DBUtils.pm index b8d8f7e9b..8e1ea811a 100644 --- a/SL/DBUtils.pm +++ b/SL/DBUtils.pm @@ -4,9 +4,10 @@ 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 - selectfirst_hashref_query selectfirst_array_query - prepare_execute_query); + dump_query quote_db_date + selectfirst_hashref_query selectfirst_array_query + selectall_hashref_query selectall_array_query + prepare_execute_query prepare_query); sub conv_i { my ($value, $default) = @_; @@ -30,7 +31,7 @@ sub conv_dateq { sub do_query { my ($form, $dbh, $query) = splice(@_, 0, 3); - dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_); + dump_query(LXDebug::QUERY, '', $query, @_); if (0 == scalar(@_)) { $dbh->do($query) || $form->dberror($query); @@ -45,7 +46,7 @@ sub selectrow_query { &selectfirst_array_query } sub do_statement { my ($form, $sth, $query) = splice(@_, 0, 3); - dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_); + dump_query(LXDebug::QUERY, '', $query, @_); if (0 == scalar(@_)) { $sth->execute() || $form->dberror($query); @@ -82,10 +83,19 @@ sub quote_db_date { return "'$str'"; } +sub prepare_query { + my ($form, $dbh, $query) = splice(@_, 0, 3); + + dump_query(LXDebug::QUERY, '', $query, @_); + + my $sth = $dbh->prepare($query) || $form->dberror($query); + return $sth; +} + sub prepare_execute_query { my ($form, $dbh, $query) = splice(@_, 0, 3); - dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_); + dump_query(LXDebug::QUERY, '', $query, @_); my $sth = $dbh->prepare($query) || $form->dberror($query); if (scalar(@_) != 0) { @@ -110,6 +120,19 @@ sub selectall_hashref_query { return $result; } +sub selectall_array_query { + my ($form, $dbh, $query) = splice(@_, 0, 3); + + my $sth = prepare_execute_query($form, $dbh, $query, @_); + my @result; + while (my ($value) = $sth->fetchrow_array()) { + push(@result, $value); + } + $sth->finish(); + + return @result; +} + sub selectfirst_hashref_query { my ($form, $dbh, $query) = splice(@_, 0, 3);