X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FDBUtils.pm;h=ecb809baf79bbec60ad5ce0235bef4f99fec15f3;hb=d72df9dc2f15eb611585159771bbb0de5168c14f;hp=05837b577ce009481065fbeee95cb54f32c9a152;hpb=e7530c83690d28dd9b1633c2e06062a092d9c8c9;p=kivitendo-erp.git diff --git a/SL/DBUtils.pm b/SL/DBUtils.pm index 05837b577..ecb809baf 100644 --- a/SL/DBUtils.pm +++ b/SL/DBUtils.pm @@ -3,7 +3,7 @@ package SL::DBUtils; require Exporter; @ISA = qw(Exporter); -@EXPORT = qw(conv_i conv_date do_query dump_query); +@EXPORT = qw(conv_i conv_date conv_dateq do_query selectrow_query do_statement dump_query); sub conv_i { my ($value, $default) = @_; @@ -15,6 +15,15 @@ sub conv_date { return (defined($value) && "$value" ne "") ? $value : undef; } +sub conv_dateq { + my ($value) = @_; + if (defined($value) && "$value" ne "") { + $value =~ s/\'/\'\'/g; + return "'$value'"; + } + return "NULL"; +} + sub do_query { my ($form, $dbh, $query) = splice(@_, 0, 3); @@ -26,6 +35,31 @@ sub do_query { } } +sub selectrow_query { + my ($form, $dbh, $query) = splice(@_, 0, 3); + + if (0 == scalar(@_)) { + my @results = $dbh->selectrow_array($query); + $form->dberror($query) if ($dbh->err); + return @results; + } else { + my @results = $dbh->selectrow_array($query, undef, @_); + $form->dberror($query . " (" . join(", ", @_) . ")") if ($dbh->err); + return @results; + } +} + +sub do_statement { + my ($form, $sth, $query) = splice(@_, 0, 3); + + if (0 == scalar(@_)) { + $sth->execute() || $form->dberror($query); + } else { + $sth->execute(@_) || + $form->dberror($query . " (" . join(", ", @_) . ")"); + } +} + sub dump_query { my ($level, $msg, $query) = splice(@_, 0, 3); while ($query =~ /\?/) {