NAME
Quiq::Database::Row::Object::Table - Datensatz einer Tabelle
BASE CLASSES
DESCRIPTION
Ein Objekt der Klasse repräsentiert einen Datensatz, der aus einer einzelnen Datenbank-Tabelle stammt.
Die DML-Operationen (select, insert, update, delete) der Klasse operieren auf der Tabelle. Entsprechend definiert die Klasse einen Tabellennamen. Dieser wird von der Methode tableName() geliefert.
Über eine Tabelle wird vorausgesetzt, dass diese eine Primärschlüssel-Kolumne besitzt. Deren Name wird von der Methode primaryKey() geliefert.
METHODS
Meta-Information
tableName() - Liefere Namen der Datenbanktabelle
Synopsis
$tableName = $this->tableName;
Alias
table()
Returns
Tabellenname (String)
Description
Bestimme den Namen der Datenbanktabelle, welche die Klasse kapselt, und liefere diesen zurück.
Example
Tabellenname wird aus Klassenname abgeleitet:
Adb::Table::Person => person
Adb::Person => person
Person => person
Tabellenname per Klassenvariable definieren:
our $TableName = 'adb.person';
Details
Der Tabellenname ist per Default die in Kleinschreibung gewandelte letzte Komponente des Klassennamens.
Abweichend vom Default kann die Datensatzklasse den Tabellennamen über die Klassenvariable
our $TableName = '...';
festlegen.
Die Methode kann in abgeleiteten Klassen überschrieben werden, um den Tabellennamen auf andere Weise zu bestimmen, z.B. um einen Schemapräfix aus einer weiteren Klassennamen-Komponente hinzuzufügen.
primaryKey() - Liefere Namen der Primärschlüssel-Kolumne
Synopsis
$title = $this->primaryKey($db);
Description
Bestimme den Namen der Primärschlüsselkolumne und liefere diesen zurück. Der Name wird folgendermaßen ermittelt:
...
Ist 1. nicht der Fall, wird als Primärschlüsselkolumne die erste Kolumne der Ergebnistabelle angenommen.
primaryKeyWhere() - Liefere Primary-Key Bedingung
Synopsis
@where = $row->primaryKeyWhere($db);
Description
Liefere die WHERE-Bedingung ($key=>$value) für den Datensatz $row, bestehend aus dem Namen der Primärschlüsselkolumne und deren Wert. Hat die Primärschlüsselkolumne keinen Wert, wirf eine Exception.
Die Methode liefert die WHERE-Bedingung für UPDATEs und DELETEs auf dem Datensatz.
nullRow() - Liefere Null-Datensatz
Synopsis
$row = $class->nullRow($db);
Statement-Generierung
selectStmt() - Liefere Select-Statement der Klasse
Synopsis
$stmt = $class->selectStmt($db,@select);
insertStmt() - Liefere Insert-Statement für Datensatz
Synopsis
$stmt = $row->insertStmt($db);
updateStmt() - Liefere Update-Statement für Datensatz
Synopsis
$stmt = $row->updateStmt($db);
deleteStmt() - Liefere Delete-Statement für Datensatz
Synopsis
$stmt = $row->deleteStmt($db);
Datenbank-Operationen
load() - Lade Datensatz
Synopsis
$row = $class->load($db,$pkValue);
Description
Lade Datensatz mit Primärschlüssel $pkValue. Ist $pkValue nicht angegeben oder Null (Leerstring oder undef), liefere einen leeren Datensatz.
Diese Methode ist nützlich, um ein Formular mit einem neuen oder existierenden Datensatz zu versorgen.
insert() - Füge Datensatz zur Datenbank hinzu
Synopsis
$cur = $row->insert($db);
Description
Füge den Datensatz zur Datenbank hinzu und liefere das Resultat der Ausführung zurück.
Nach der Ausführung hat der Datensatz den Rowstatus 0.
update() - Aktualisiere Datensatz auf der Datenbank
Synopsis
$cur = $row->update($db);
Description
Aktualisiere den Datensatz auf der Datenbank und liefere das Resultat der Ausführung zurück.
Nach der Ausführung hat der Datensatz den Rowstatus 0.
delete() - Lösche Datensatz von der Datenbank
Synopsis
$cur = $row->delete($db);
Description
Lösche den Datensatz von der Datenbank und liefere das Resultat der Ausführung zurück.
Nach der Ausführung hat der Datensatz den Rowstatus 'I'.
VERSION
1.140
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2019 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.