6 @EXPORT = qw(conv_i conv_date conv_dateq do_query selectrow_query do_statement
 
   7              dump_query quote_db_date selectall_hashref_query 
 
   8              selectfirst_hashref_query selectfirst_array_query 
 
   9              prepare_execute_query);
 
  12   my ($value, $default) = @_;
 
  13   return (defined($value) && "$value" ne "") ? $value * 1 : $default;
 
  18   return (defined($value) && "$value" ne "") ? $value : undef;
 
  23   if (defined($value) && "$value" ne "") {
 
  24     $value =~ s/\'/\'\'/g;
 
  31   my ($form, $dbh, $query) = splice(@_, 0, 3);
 
  33   dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_);
 
  35   if (0 == scalar(@_)) {
 
  36     $dbh->do($query) || $form->dberror($query);
 
  38     $dbh->do($query, undef, @_) ||
 
  39       $form->dberror($query . " (" . join(", ", @_) . ")");
 
  43 sub selectrow_query { &selectfirst_array_query }
 
  46   my ($form, $sth, $query) = splice(@_, 0, 3);
 
  48   dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_);
 
  50   if (0 == scalar(@_)) {
 
  51     $sth->execute() || $form->dberror($query);
 
  54       $form->dberror($query . " (" . join(", ", @_) . ")");
 
  59   my ($level, $msg, $query) = splice(@_, 0, 3);
 
  61   while ($query =~ /\?/) {
 
  62     my $value = shift(@_);
 
  63     $value =~ s/\'/\\\'/g;
 
  64     $value = "'${value}'";
 
  65     $query =~ s/\?/$value/;
 
  68   $query =~ s/[\n\s]+/ /g;
 
  70   $msg .= " " if ($msg);
 
  72   $main::lxdebug->message($level, $msg . $query);
 
  78   return "NULL" unless defined $str;
 
  79   return "current_date" if $str =~ /current_date/;
 
  85 sub prepare_execute_query {
 
  86   my ($form, $dbh, $query) = splice(@_, 0, 3);
 
  88   dump_query(LXDebug::QUERY, '', $query . " (" . join(", ", @_) . ")", @_);
 
  90   my $sth = $dbh->prepare($query) || $form->dberror($query);
 
  91   if (scalar(@_) != 0) {
 
  92     $sth->execute(@_) || $form->dberror($query . " (" . join(", ", @_) . ")");
 
  94     $sth->execute() || $form->dberror($query);
 
 100 sub selectall_hashref_query {
 
 101   my ($form, $dbh, $query) = splice(@_, 0, 3);
 
 103   my $sth = prepare_execute_query($form, $dbh, $query, @_);
 
 105   while (my $ref = $sth->fetchrow_hashref()) {
 
 106     push(@{ $result }, $ref);
 
 113 sub selectfirst_hashref_query {
 
 114   my ($form, $dbh, $query) = splice(@_, 0, 3);
 
 116   my $sth = prepare_execute_query($form, $dbh, $query, @_);
 
 117   my $ref = $sth->fetchrow_hashref();
 
 123 sub selectfirst_array_query {
 
 124   my ($form, $dbh, $query) = splice(@_, 0, 3);
 
 126   my $sth = prepare_execute_query($form, $dbh, $query, @_);
 
 127   my @ret = $sth->fetchrow_array();
 
 140 SL::DBUTils.pm: All about Databaseconections in Lx
 
 151   do_query($form, $dbh, $query)
 
 152   do_statement($form, $sth, $query)
 
 154   dump_query($level, $msg, $query)
 
 155   prepare_execute_query($form, $dbh, $query)
 
 157   my $all_results_ref       = selectall_hashref_query($form, $dbh, $query)
 
 158   my $first_result_hash_ref = selectfirst_hashref_query($form, $dbh, $query);
 
 160   my @first_result =  selectfirst_array_query($form, $dbh, $query);  # ==
 
 161   my @first_result =  selectrow_query($form, $dbh, $query);
 
 176 =item quote_db_date($str)
 
 178 =item do_query($form, $dbh, $query)
 
 180 =item do_statement($form, $sth, $query)
 
 182 =item dump_query($level, $msg, $query)
 
 184 =item prepare_execute_query($form, $dbh, $query)
 
 186 =item selectall_hashref_query($form, $dbh, $query)
 
 188 =item selectfirst_hashref_query($form, $dbh, $query);
 
 190 =item selectfirst_array_query($form, $dbh, $query);  # ==
 
 192 =item selectrow_query($form, $dbh, $query);
 
 200 =head1 MODULE AUTHORS
 
 202 Moritz Bunkus E<lt>m.bunkus@linet-services.de<gt>
 
 203 Sven Schoeling E<lt>s.schoeling@linet-services.de<gt>
 
 205 =head1 DOCUMENTATION AUTHORS
 
 207 Udo Spallek  E<lt>udono@gmx.netE<gt>
 
 209 =head1 COPYRIGHT AND LICENSE
 
 211 Copyright 2007 by Lx-Office Community
 
 213 This program is free software; you can redistribute it and/or modify
 
 214 it under the terms of the GNU General Public License as published by
 
 215 the Free Software Foundation; either version 2 of the License, or
 
 216 (at your option) any later version.
 
 218 This program is distributed in the hope that it will be useful,
 
 219 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 220 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
 221 GNU General Public License for more details.
 
 222 You should have received a copy of the GNU General Public License
 
 223 along with this program; if not, write to the Free Software
 
 224 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.