Für alle Zahlungskonditionen kann jetzt für jede Sprache eine Übersetzung speichern.
[kivitendo-erp.git] / SL / DBUtils.pm
1 package SL::DBUtils;
2
3 require Exporter;
4 @ISA = qw(Exporter);
5
6 @EXPORT = qw(conv_i conv_date do_query selectrow_query do_statement dump_query);
7
8 sub conv_i {
9   my ($value, $default) = @_;
10   return (defined($value) && "$value" ne "") ? $value * 1 : $default;
11 }
12
13 sub conv_date {
14   my ($value) = @_;
15   return (defined($value) && "$value" ne "") ? $value : undef;
16 }
17
18 sub do_query {
19   my ($form, $dbh, $query) = splice(@_, 0, 3);
20
21   if (0 == scalar(@_)) {
22     $dbh->do($query) || $form->dberror($query);
23   } else {
24     $dbh->do($query, undef, @_) ||
25       $form->dberror($query . " (" . join(", ", @_) . ")");
26   }
27 }
28
29 sub selectrow_query {
30   my ($form, $dbh, $query) = splice(@_, 0, 3);
31
32   if (0 == scalar(@_)) {
33     my @results = $dbh->selectrow_array($query);
34     $form->dberror($query) if ($dbh->err);
35     return @results;
36   } else {
37     my @results = $dbh->selectrow_array($query, undef, @_);
38     $form->dberror($query . " (" . join(", ", @_) . ")") if ($dbh->err);
39     return @results;
40   }
41 }
42
43 sub do_statement {
44   my ($form, $sth, $query) = splice(@_, 0, 3);
45
46   if (0 == scalar(@_)) {
47     $sth->execute() || $form->dberror($query);
48   } else {
49     $sth->execute(@_) ||
50       $form->dberror($query . " (" . join(", ", @_) . ")");
51   }
52 }
53
54 sub dump_query {
55   my ($level, $msg, $query) = splice(@_, 0, 3);
56   while ($query =~ /\?/) {
57     my $value = shift(@_);
58     $value =~ s/\'/\\\'/g;
59     $value = "'${value}'";
60     $query =~ s/\?/$value/;
61   }
62
63   $msg .= " " if ($msg);
64
65   $main::lxdebug->message($level, $msg . $query);
66 }
67
68 1;