|
my $key = "$database/$login/$auth"; # ... my $db; if (defined($connections{$key})) { ++ $connections{$key}->{refs}; $db = $connections{$key}->{handle}; } else { $db = DBI->connect($database, $login, $auth); croak "unable to connect to database $database" unless defined $db; $connections{$key} = {handle => $db, refs => 1}; $db->{RaiseError} = 1; # ... } |
TBD::DBI unterhält mit %connections ein
assoziatives Array für alle offenen Datenbank-Verbindungen,
wobei als Schlüssel die Parameter für DBI->connect dienen.
| |
Damit ist es möglich, daß sich mehrere Tabellen eine
Datenbankverbindung teilen.
| |
Um zu entscheiden, wann die Datenbank-Verbindung wieder
geschlossen werden kann, gibt es einen Zähler für die
Anzahl der Nutzungen.
| |
Innerhalb von initialize1 bei TBD::DBI wird
dann entweder die vorhandene Verbindung übernommen oder
eine neu eröffnet und in %connections eingetragen.
|
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003 |