CDB.pm beinhaltet das Klassenobjekt CDB, dass die grundsätzlichen Funktionen, die zum Ansprechen einer Datenbank notwendig sind, kapselt. Alle Datenbankoperationen erfolgen grundsätzlich über diese Klasse. Das hat u.a. den Vorteil, das Befehle, die abhängig von der verwendeten Datenbank sind, ausschließlich in dieser Klasse verwendet werden. Soll z.B. die Datenbank in einem Projekt verändert werden (z.B. statt MySQL ORACLE, etc.), dann braucht nur diese Klasse angepaßt werden. Desweiteren verwaltet diese Klasse auch Fehlermeldungen und die im Konstruktor übergebenen Zugangsparameter.
Stellt auf Grundlage der im Konstruktor übergebenen Zugangsparameter die Verbindung zur Datenbank her. Gibt bei Erfolg 0 zurück, ansonsten die von der Datenbank erzeugten Fehlernummer.
$DB->disconnect();
Trennt die Verbindung zur Datenbank, falls diese besteht.
$DB->errorMessage($Message);
"Protected" Methode, die nach einem Datenbank-Fehler aufgerufen wird. Sie setzt die Klassenvariablen DBErrorNr und DBErrorMessage, die die Fehlerinformationen der Datenbank speichern. Desweiteren werden DBErrorNr, DBErrorMessage und die in $Message übergebenen Klartextmeldung ausgegeben. Dies geschieht je nach Status der folgenden Klassenvariablen:
EchoMessage = true
:
Meldungen werden auf der Standardausgabe ausgegeben
PrintMessage = true
and LogFile != ""
:
Meldungen werden in das unter der Klassenvariablen LogFile bezeichnete Logfile ausgegeben
%Result = $DB->executeQuery($SQL, $ErrorMessage);
Führt das SQL-Statement $SQL auf der Datenbank aus und liefert ein zweidimensionales Hash mit dem Resultset zurück. Dabei entspricht die erste Hash-Dimension den Zeilen, die zweite Hash-Dimension den Spaltennamen. Somit erfolgt der Zugriff auf Einzelwerte des Resultsets wie folgt:
$Value = $Result{2}->{use_name}; # Variable $Value enthält den Wert der 3. Zeile (Zählung ab 0!) der Spalte "use_name"
.
.
.
Für den Fehlerfall wird in $ErrorMessage eine Klartextmeldung übergeben, die die dann zusammen mit der (meist kryptischen) Fehlermeldung der Datenbank ausgegeben wird (siehe: errorMessage).
$DB->executeUpdate($SQL, $ErrorMessage);
Führt das SQL-Statement $SQL auf der Datenbank aus, liefert aber kein Resultsets zurück.
Für den Fehlerfall wird in $ErrorMessage eine Klartextmeldung übergeben, die die dann zusammen mit der (meist kryptischen) Fehlermeldung der Datenbank ausgegeben wird (siehe: errorMessage).
Die Klassenvariablen
(Eigenschaften):
$Rows = $DB->Rows();
Gibt die Anzahl der Zeilen zurück, die das letzte SQL-Statement bearbeitet hat.
$DBErrorNr = $DB->DBErrorNr();
Fehlernummer der Datenbank, die das zuletzt ausgeführte SQL-Statement erzeugt hat.
$DBErrorMessage = $DB->DBErrorMessage();
Fehlermeldung der Datenbank, die das zuletzt ausgeführte SQL-Statement erzeugt hat.
$EchoMessage = $DB->EchoMessage();
$DB->EchoMessage($EchoMessage);
Meldung werden (mittels: errorMessage) über die Standardausgabe ausgegeben.
$PrintMessage = $DB->PrintMessage();
$DB->PrintMessage($PrintMessage);
Meldungen werden in das unter der Klassenvariablen LogFile bezeichnete Logfile ausgegeben.
$LogFile = $DB->LogFile();
$DB->LogFile($LogFile);
Ist die Klassenvariablen PrintMessage = true, dann werden Meldung in das unter LogFile bezeichnete Logfile ausgegeben.
$Source = $DB->Source();
$DB->Source($Source);
Source bezeichnet die "Programmquelle", die eine Meldung erzeugt hat und wird mit einer Meldung (errorMessage) ausgegeben.
$DBDatabase = $DB->DBDatabase();
$DBServer = $DB->DBServer();
$DBUser = $DB->DBUser();
$DBPassword = $DB->DBPassword();
Geben die Zugansparameter für die Datenbank zurück.