The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Prty::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()

Description

Bestimme den Namen der Datenbanktabelle, welche die Klasse kapselt, und liefere diesen zurück.

Returns

Tabellenname (String)

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

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2017 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.