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:

  1. ...

  2. 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.