Eingebettete Initialisierungen II

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

TBD/DBI.pm
sub initialize2 {
   my ($self) = @_;
   croak "Key fields not defined"
      unless ref($self->{'keyfields'});

   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, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000