Eingebettete Initialisierungen II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

TBD/DBI.pm
sub initialize2 {
   my ($self) = @_;

   # ... various sanity checks ...

   my @clauses = ();
   foreach my $keyfield (@{$self->{keyfields}}) {
      push(@clauses, "$keyfield = ?");
   }
   $self->{byKey} = "where " . join(" and ", @clauses);
   $self->{select} = "select * from " . $self->{table} . " ";
   $self->{select_byKey} = $self->{db}->prepare(
      $self->{select} . $self->{byKey});

   # ... more prepared statements ...

   $self->SUPER::initialize2();
}

*TBD::DBI und TBD::DBI::MySQL kooperieren dahingehend, daß

*zunächst TBD::DBI mit initialize1 die Datenbank eröffnet und noch die Feldnamen ermittelt (portabel möglich),
 
*dann TBD::DBI::MySQL kann in initialize2 (oder bei initialize1 -- das ist egal) die Namen der Felder des primären Schlüssels ermitteln (nicht portabel),
 
*worauf TBD::DBI in initialize2 weitere Initialisierungen durchführt, bei denen die Namen der Schlüsselfelder bekannt sein müssen.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003