Prty::Database::Row::Object::Join - Datensatz eines Join
Prty::Database::Row::Object
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.
select
insert
update
delete
Das zugrunde liegende Select-Statement wird typischerweise als Template auf der Klassenvariable $Select definiert.
$Select
$tmpl = $class->selectTemplate;
Select-Template (String)
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.
Beispiel für die Definition eines Select-Template auf der Klassenvariable $select:
$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.
%WHERE%
%ORDERBY%
$stmt = $class->selectStmt($db,@select);
Select-Statement (String)
Liefere ein Select-Statement der Klasse gemäß den Selektionskriterien @select. Die Selektionskriterien werden in das Muster-Statement eingesetzt (siehe "selectTemplate"().
@select
$newRow = $row->cast($db,$newClass);
Datenbankverbindung
Neue Datensatzklasse
Datensatz
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.
Die Umwandelung umfasst die Schritte:
Kopiere $row nach $newRow
Schränke $newRow auf die Kolumnen von $newClass ein
bless $newRow auf $newClass
1.121
Frank Seitz, http://fseitz.de/
Copyright (C) 2017 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.