ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/PApp-SQL/historic-perl-implementation
Revision: 1.1
Committed: Mon Feb 5 14:08:22 2001 UTC (23 years, 3 months ago) by root
Branch: MAIN
CVS Tags: DEVEL9916, BEFORE_5_8_REGEX_FIX, kis-loewenstein, PAPP_0_12, papp_last_stable, Klinik_Kis_25032002_2245, kis-loewenstein-2002-10-07_0200, rel-1_0, DEVEL7952, rel-2_0, DEVEL9021, rel-1_02, rel-1_03, klinik-loewenstein, pre_big_pcode_semantic_change, rel-1_04, rel-1_05, rel-2_001, rel-2_002, klinik-loewenstein-05052002, HEAD
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 # this is of historical interest at best ;) well, actually the
2     # calls to fancydie are quite nice...
3    
4     my %_sql_st;
5    
6     sub sql_exec($;@) {
7     my $statement = shift;
8     my $st = $_sql_st{$statement};
9     unless($st) {
10     $st = $db->prepare($statement) or fancydie "unable to prepare statement", $statement;
11     $_sql_st{$statement} = $st;
12     }
13     if (ref $_[0]) {
14     my $bind = shift;
15     $sql_exec = $st->execute(@_) or fancydie $db->errstr, "Unable to execute statement `$statement` with ".join(":",@_);
16     $st->bind_columns(@$bind) or fancydie $db->errstr, "Unable to bind_columns to statement `$statement` with ".join(":",@_);
17     } else {
18     $sql_exec = $st->execute(@_) or fancydie $db->errstr, "Unable to execute statement `$statement` with ".join(":",@_);
19     }
20     $st;
21     }
22    
23     sub sql_fetch {
24     my $r = &sql_exec->fetchrow_arrayref;
25     $r ? wantarray ? @{$r}
26     : $r->[0]
27     : ();
28     }
29    
30     sub sql_fetchall {
31     my $r = &sql_exec->fetchall_arrayref;
32     ref $r && @$r ? @{$r->[0]}==1 ? map @$_,@$r
33     : @$r
34     : ();
35     }
36    
37     sub sql_exists($;@) {
38     my $select = shift;
39     my @args = @_;
40     $select = "select count(*) > 0 from $select limit 1";
41     @_ = ($select, @_);
42     goto &sql_fetch;
43     }
44