NAME
Prty::Database::Row::Object::Join - Datensatz eines Join
BASE CLASS
DESCRIPTION
Ein Objekt der Klasse repräsentiert einen Datensatz, der über mehreren Tabellen gebildet ist.
Die DML-Operationen select
, insert
, update
, delete
werden entweder individuell implementiert oder durch Delegation an andere Klassen realisiert.
Das zugrunde liegende Select-Statement wird typischerweise als Template auf der Klassenvariable $Select
definiert.
METHODS
Statement-Ermittelung
selectTemplate() - Liefere Select-Template der Klasse
Synopsis
$tmpl = $class->selectTemplate;
Description
Liefere das Select-Template der Klasse. Dieses ist auf der Klassenvariablen $Select
definiert und enthält typischerweise Platzhalter, die bei einer Selektion durch die Selektionsskriterien ersetzt werden.
Die Einsetzung von Selektionskriterien in das Template nimmt die Methode "selectStmt"() vor.
Returns
Select-Template (String)
Example
Beispiel für die Definition eines Select-Template auf der Klassenvariable $select
:
our $Select = <<'__SQL__';
SELECT
%SELECT%
FROM
odin.route rou
LEFT JOIN odin.section sec
ON rou.id = sec.route_id
LEFT JOIN odin.passage pas
ON sec.id = pas.section_id
LEFT JOIN odin.passage_measseq pam
ON pas.id = pam.passage_id
LEFT JOIN odin.measseq mea
ON pam.measseq_id = mea.id
__SQL__
Die Select-Klausel ist notwendig, da das Statement sonst nicht syntaktisch korrekt gebildet ist. Die Platzhalter %WHERE%
, %ORDERBY%
usw. müssen nicht erscheinen, da optionale Klauseln bei entsprechenden Selektionskriterien am Ende des Statement hinzugefügt werden.
selectStmt() - Liefere Select-Statement der Klasse
Synopsis
$stmt = $class->selectStmt($db,@select);
Description
Liefere ein Select-Statement der Klasse gemäß den Selektionskriterien @select
. Die Selektionskriterien werden in das Muster-Statement eingesetzt (siehe "selectTemplate"().
Returns
Select-Statement (String)
Verschiedenes
cast() - Wandele Datensatz in einen Datensatz einer anderen Klasse
Synopsis
$newRow = $row->cast($db,$newClass);
Description
Wandele den Datensatz $row in einen Datensatz der Klasse $newClass und liefere das Resultat zurück. Es ist ein fataler Fehler, wenn der Datensatz keine zur Klasse $newClass gehörende Kolumne besitzt.
Arguments
Returns
Datensatz
Details
Die Umwandelung umfasst die Schritte:
Kopiere $row nach $newRow
Schränke $newRow auf die Kolumnen von $newClass ein
bless $newRow auf $newClass
VERSION
1.099
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2016 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.