/[webpac]/trunk/index_DBI.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/index_DBI.pm

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

revision 13 by dpavlin, Sun Feb 16 22:41:37 2003 UTC revision 37 by dpavlin, Sat Mar 15 19:37:07 2003 UTC
# Line 31  sub delete_and_create { Line 31  sub delete_and_create {
31    
32          my $field = shift;          my $field = shift;
33    
34    #print "#### delete_and_create($field)\n";
35    
36          $self->{dbh}->commit;          $self->{dbh}->commit;
         $self->{dbh}->begin_work;  
37    
38          my $sql = "select count(*) from $field";          my $sql = "select count(*) from $field";
39          my $sth = $self->{dbh}->prepare($sql) || die $self->{dbh}->errstr();          my $sth = $self->{dbh}->prepare($sql) || die $self->{dbh}->errstr();
40  # FIX: this is not a good way to check if table exists!  # FIX: this is not a good way to check if table exists!
41          if (1 || $sth->execute() && $sth->fetchrow_hashref) {          if ($sth->execute() && $sth->fetchrow_hashref) {
42                  my $sql = "drop table $field";                  my $sql = "drop table $field";
43  #               my $sth = $self->{dbh}->do($sql) || die "SQL: $sql ".$self->{dbh}->errstr();                  $self->{dbh}->begin_work;
44                    my $sth = $self->{dbh}->do($sql) || die "SQL: $sql ".$self->{dbh}->errstr();
45                    $self->{dbh}->commit;
46          }          }
47          $sql = "create table $field (          $sql = "create table $field (
48                          item varchar(255),                          item varchar(255),
# Line 48  sub delete_and_create { Line 51  sub delete_and_create {
51                          ord int,                          ord int,
52                          primary key (item,ident)                          primary key (item,ident)
53                  )";                  )";
 #       $sth = $self->{dbh}->do($sql) || die "SQL: $sql ".$self->{dbh}->errstr();  
         $sth = $self->{dbh}->do($sql) || warn "SQL: $sql ".$self->{dbh}->errstr();  
54    
55            $self->{dbh}->begin_work;
56            $sth = $self->{dbh}->do($sql); # || warn "SQL: $sql ".$self->{dbh}->errstr();
57          $self->{dbh}->commit;          $self->{dbh}->commit;
58    
59          $self->{dbh}->begin_work;          $self->{dbh}->begin_work;
60  }  }
61    
# Line 59  sub insert { Line 63  sub insert {
63          my $self = shift;          my $self = shift;
64    
65          my $field = shift;          my $field = shift;
66          my $index_data = shift || return;          my $index_data = shift || print STDERR "\$index->insert($field,NULL,...)";
67          my $ident = shift || return;    # e.g. library id          my $ident = shift || '';        # e.g. library id
68    
69          if (! $index_data) {          if (! $index_data) {
70                  print STDERR "\$index->insert() -- no value to insert\n";                  print STDERR "\$index->insert() -- no value to insert\n";
# Line 78  sub insert { Line 82  sub insert {
82          if (! $sth->fetchrow_hashref) {          if (! $sth->fetchrow_hashref) {
83                  my $sql = "insert into $field (item,ident,count) values (?,?,?)";                  my $sql = "insert into $field (item,ident,count) values (?,?,?)";
84                  my $sth = $self->{dbh}->prepare($sql) || die $self->{dbh}->errstr();                  my $sth = $self->{dbh}->prepare($sql) || die $self->{dbh}->errstr();
85                    $index_data = substr($index_data,0,255);
86                  $sth->execute($index_data,$ident,1) || die "sql: $sql; ".$self->{dbh}->errstr();                  $sth->execute($index_data,$ident,1) || die "sql: $sql; ".$self->{dbh}->errstr();
87  #print stderr "in index: $index_data\n";  #print stderr "in index: $index_data\n";
88          } else {          } else {
# Line 132  sub fetch { Line 137  sub fetch {
137          $sth->execute() || die "execute: $sql; ".$self->{dbh}->errstr();          $sth->execute() || die "execute: $sql; ".$self->{dbh}->errstr();
138          my @arr;          my @arr;
139          while (my $row = $sth->fetchrow_hashref) {          while (my $row = $sth->fetchrow_hashref) {
140                  $row->{item} = HTML::Entities::encode($row->{item});                  $row->{item} = HTML::Entities::encode($row->{item},'<>&"');
141                  push @arr,$row;                  push @arr,$row;
142          }          }
143          return @arr;          return @arr;
# Line 149  sub close { Line 154  sub close {
154    
155                  $self->{dbh}->begin_work || die $self->{dbh}->errstr();                  $self->{dbh}->begin_work || die $self->{dbh}->errstr();
156    
157                  my $sql = "select oid from $table order by item";                  my $sql = "select oid from $table order by upper(item)";
158                  my $sth = $self->{dbh}->prepare($sql) || die "sql: $sql; ".$self->{dbh}->errstr();                  my $sth = $self->{dbh}->prepare($sql) || die "sql: $sql; ".$self->{dbh}->errstr();
159                  $sql = "update $table set ord=? where oid=?";                  $sql = "update $table set ord=? where oid=?";
160                  my $sth_update = $self->{dbh}->prepare($sql) || die "sql: $sql; ".$self->{dbh}->errstr();                  my $sth_update = $self->{dbh}->prepare($sql) || die "sql: $sql; ".$self->{dbh}->errstr();

Legend:
Removed from v.13  
changed lines
  Added in v.37

  ViewVC Help
Powered by ViewVC 1.1.26