/[cvs]/nfo/perl/libs/libdb.pm
ViewVC logotype

Diff of /nfo/perl/libs/libdb.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by joko, Wed Oct 16 22:36:42 2002 UTC revision 1.8 by joko, Thu Dec 12 02:48:58 2002 UTC
# Line 2  Line 2 
2  ##    $Id$  ##    $Id$
3  ##    --------------------------------------------------------------------------------  ##    --------------------------------------------------------------------------------
4  ##    $Log$  ##    $Log$
5    ##    Revision 1.8  2002/12/12 02:48:58  joko
6    ##    + played with fixing disconnectTarget
7    ##
8    ##    Revision 1.7  2002/12/01 22:13:17  joko
9    ##    + minor bugfix?
10    ##
11    ##    Revision 1.6  2002/11/29 04:53:39  joko
12    ##    + hash2Sql now knows about SQL_SELECT
13    ##
14    ##    Revision 1.5  2002/11/17 07:18:38  joko
15    ##    + small modification in hash2sql
16    ##
17  ##    Revision 1.4  2002/10/16 22:36:42  joko  ##    Revision 1.4  2002/10/16 22:36:42  joko
18  ##    + sub testDbServer  ##    + sub testDbServer
19  ##  ##
# Line 23  package libdb; Line 35  package libdb;
35  use strict;  use strict;
36  use warnings;  use warnings;
37    
 use libp;  
 use DBI;  
   
38  require Exporter;  require Exporter;
39  our @ISA = qw( Exporter );  our @ISA = qw( Exporter );
40  our @EXPORT = qw(  our @EXPORT_OK = qw(
41                                testDsn hash2Sql                                testDsn hash2Sql
42                                SQL_INSERT SQL_UPDATE                                SQL_INSERT SQL_UPDATE
43                                connectTarget disconnectTarget sendSql                                connectTarget disconnectTarget sendSql
# Line 38  our @EXPORT = qw( Line 47  our @EXPORT = qw(
47                                testDsnForTables testDbServer                                testDsnForTables testDbServer
48                                );                                );
49    
50    
51    use libp qw( croak );
52    use DBI;
53    use Data::Dumper;
54    
55  use constant SQL_INSERT => 10;  use constant SQL_INSERT => 10;
56  use constant SQL_UPDATE => 11;  use constant SQL_UPDATE => 11;
57    use constant SQL_SELECT => 12;
58    
59  my $dbmeta_ref_cache;  my $dbmeta_ref_cache;
60    
# Line 69  sub testDbServer { Line 84  sub testDbServer {
84    }    }
85  }  }
86    
87    
88    # TODO: handle usage of "$crit" in an abstract way somehow
89  sub hash2Sql {  sub hash2Sql {
90        
91    my $table = shift;    my $table = shift;
# Line 77  sub hash2Sql { Line 94  sub hash2Sql {
94    my $crit = shift;    my $crit = shift;
95        
96    my $sql;    my $sql;
97    if ($mode == SQL_INSERT || $mode eq 'SQL_INSERT') {    $mode = SQL_SELECT if ($mode eq 'SQL_SELECT' || $mode eq 'SELECT');
98      $sql = "INSERT INTO $table (#fields#) VALUES (#values#);";    $mode = SQL_INSERT if ($mode eq 'SQL_INSERT' || $mode eq 'INSERT');
99    }    $mode = SQL_UPDATE if ($mode eq 'SQL_UPDATE' || $mode eq 'UPDATE');
100    if ($mode == SQL_UPDATE || $mode eq 'SQL_UPDATE') {  
101      $sql = "UPDATE $table SET #fields-values# WHERE $crit;";    if ($mode == SQL_SELECT) {
102        $sql = "SELECT #fields# FROM $table WHERE $crit";
103      } elsif ($mode == SQL_INSERT) {
104        $sql = "INSERT INTO $table (#fields#) VALUES (#values#)";
105      } elsif ($mode == SQL_UPDATE) {
106        $sql = "UPDATE $table SET #fields-values# WHERE $crit";
107    }    }
108        
109    my (@fields, @values);    my (@fields, @values);
# Line 142  sub connectTarget { Line 164  sub connectTarget {
164    
165  sub disconnectTarget {  sub disconnectTarget {
166    #my $dbmeta = shift;    #my $dbmeta = shift;
167      #print "disc\n";
168    #croak "please supply a \"dbmeta\"-hash" if (!$dbmeta);    #croak "please supply a \"dbmeta\"-hash" if (!$dbmeta);
169    #$dbmeta = patch_dbmeta($dbmeta);    #$dbmeta = patch_dbmeta($dbmeta);
170    #$dbmeta->{dbh} && $dbmeta->{dbh}->disconnect();    #$dbmeta->{dbh} && $dbmeta->{dbh}->disconnect();
171    my $dbmeta = $dbmeta_ref_cache;    my $dbmeta = $dbmeta_ref_cache;
172    $dbmeta->{dbh} && $dbmeta->{dbh}->disconnect();    #print Dumper($dbmeta);
173      #$dbmeta->{dbh} && $dbmeta->{dbh}->disconnect();
174      $dbmeta->{dbh}->disconnect();
175      undef($dbmeta->{dbh});
176      undef($dbmeta);
177    undef($dbmeta_ref_cache);    undef($dbmeta_ref_cache);
178  }  }
179    

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.8

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed