--- nfo/perl/libs/libdb.pm 2002/11/17 07:18:38 1.5 +++ nfo/perl/libs/libdb.pm 2002/11/29 04:53:39 1.6 @@ -1,7 +1,10 @@ ## -------------------------------------------------------------------------------- -## $Id: libdb.pm,v 1.5 2002/11/17 07:18:38 joko Exp $ +## $Id: libdb.pm,v 1.6 2002/11/29 04:53:39 joko Exp $ ## -------------------------------------------------------------------------------- ## $Log: libdb.pm,v $ +## Revision 1.6 2002/11/29 04:53:39 joko +## + hash2Sql now knows about SQL_SELECT +## ## Revision 1.5 2002/11/17 07:18:38 joko ## + small modification in hash2sql ## @@ -26,12 +29,9 @@ use strict; use warnings; -use libp; -use DBI; - require Exporter; our @ISA = qw( Exporter ); -our @EXPORT = qw( +our @EXPORT_OK = qw( testDsn hash2Sql SQL_INSERT SQL_UPDATE connectTarget disconnectTarget sendSql @@ -41,8 +41,13 @@ testDsnForTables testDbServer ); + +use libp qw( croak ); +use DBI; + use constant SQL_INSERT => 10; use constant SQL_UPDATE => 11; +use constant SQL_SELECT => 12; my $dbmeta_ref_cache; @@ -72,6 +77,8 @@ } } + +# TODO: handle usage of "$crit" in an abstract way somehow sub hash2Sql { my $table = shift; @@ -80,11 +87,16 @@ my $crit = shift; my $sql; - if ($mode eq 'SQL_INSERT' || $mode == SQL_INSERT) { - $sql = "INSERT INTO $table (#fields#) VALUES (#values#);"; - } - if ($mode eq 'SQL_UPDATE' || $mode == SQL_UPDATE) { - $sql = "UPDATE $table SET #fields-values# WHERE $crit;"; + $mode = SQL_SELECT if ($mode eq 'SQL_SELECT' || $mode eq 'SELECT'); + $mode = SQL_INSERT if ($mode eq 'SQL_INSERT' || $mode eq 'INSERT'); + $mode = SQL_UPDATE if ($mode eq 'SQL_UPDATE' || $mode eq 'UPDATE'); + + if ($mode == SQL_SELECT) { + $sql = "SELECT #fields# FROM $table WHERE $crit"; + } elsif ($mode == SQL_INSERT) { + $sql = "INSERT INTO $table (#fields#) VALUES (#values#)"; + } elsif ($mode == SQL_UPDATE) { + $sql = "UPDATE $table SET #fields-values# WHERE $crit"; } my (@fields, @values);