X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/e7530c83690d28dd9b1633c2e06062a092d9c8c9..9fd46de37d7906b7c104c17112b34bae7d534d67:/SL/DBUtils.pm diff --git a/SL/DBUtils.pm b/SL/DBUtils.pm index 05837b577..4336446fa 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 quote_db_date); 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 =~ /\?/) { @@ -40,4 +74,12 @@ sub dump_query { $main::lxdebug->message($level, $msg . $query); } +sub quote_db_date { + my ($str) = @_; + return "NULL" unless defined $str; + return "current_date" if $str =~ /current_date/; + $str =~ s/'/''/g; + return "'$str'"; +} + 1;