Prty::Database::ResultSet - Liste von Datensätzen (abstrakt)
Prty::Hash
Ein Objekt der Klasse repräsentiert eine Liste von gleichartigen Datensätzen.
$tab = $class->new($rowClass,\@titles); $tab = $class->new($rowClass,\@titles,\@rows,@keyVal); $newTab = $tab->new; $newTab = $tab->new(\@rows);
Instantiiere ein Tabellen-Objekt und liefere eine Referenz auf dieses Objekt zurück.
Die Arrays @titles und @rows werden von der Methode nicht kopiert.
Als Objektmethode gerufen, wird ein neues Tabellen-Objekt mit $rowClass und $titles aus dem existierenden Tabellenobjekt initialisiert. Diese Methode ist nützlich, wenn ein Tabellen-Objekt mit einer Teilmenge des ursprünglichen Tabellen-Objektes gebildet werden soll.
$rowClass = $tab->rowClass;
$rowA|@rows = $tab->rows; $rowA|@rows = $tab->rows(\@rows);
Liefere die Liste der Datensätze der Tabelle. Im Skalarkontext liefere eine Referenz auf die Liste.
Ist Parameter \@rows angegeben, wird die Datensatz-Liste auf diese Liste gesetzt.
$stmt = $tab->stmt;
Liefere das SQL-Statement, mit welchem die Datensätze der Tabelle selektiert wurden.
$stmt = $tab->stmtBody(@opt);
Liefere den Rumpf des (Select-)Statement. Der Rumpf ist das ürsprüngliche Statement ohne Select- und Order-By-Klausel.
Ursprüngliches Select:
SELECT per_vorname , per_nachname FROM person WHERE per_nachname = 'Schulz' ORDER BY per_vorname
Resultierendes Select:
FROM person WHERE per_nachname = 'Schulz'
$titleA|@titles = $tab->titles;
Liefere die Liste der Kolumnentitel der Tabelle. Im Skalarkontext liefere eine Referenz auf die Liste.
$bool = $this->isRaw;
$row = $tab->lookup(@opt,$key=>$val);
Wenn der gesuchte Datensatz nicht existiert, löse keine Exception aus, sondern liefere undef.
Durchsuche die Tabelle nach dem ersten Datensatz, dessen Attribut $key den Wert $val besitzt und liefere diesen zurück. Erfüllt kein Datensatz das Kriterium, wird eine Exception ausgelöst.
@rows|$tab = $tab->select($testSub);
Durchsuche die Tabelle nach den Datensätzen, die Test-Methode $testSub erfüllen und liefere die Liste dieser Datensätze zurück. Im Skalarkontext liefere ein neues Tabellen-Objekt.
Schränke Produkt-Tabelle auf Produkte mit einem Preis > 100 ein:
my $sub = sub { my $row = shift; return $row->preis > 100? 1: 0; }; $tab = $tab->select($sub);
$tab = $class->loadFromFile($file,@opt);
Kolumnen-Trennzeichen.
Name der Datensatzklasse, auf die die Datensätze geblesst werden. Die Datensatzklasse entscheidet auch über die Tabellenklasse.
Setze den initialen Datensatz-Status.
Lade Datensätze aus Datei $file in eine Datensatz-Tabelle und liefere eine Referenz auf dieses Objekt zurück.
Dateiformat
Die erste Zeile enthält die Kolumentitel, alle weiteren Zeilen die Datensätze. Die Kolumen werden per | getrennt.
per_id|per_vorname|per_nachname 1|Rudi|Ratlos 2|Kai|Nelust 3|Elli|Pirelli 4|Susi|Sorglos
$tab->saveToFile($file);
Sichere die Datensätze der Tabelle in Datei $file. Die Methode liefert keinen Wert zurück.
$duration = $tab->elapsed;
$fmtA | @fmts = $tab->formats; $fmtA | @fmts = $tab->formats($force);
Analysiere den Tabelleninhalt und liefere eine Liste von Kolumnenformat-Objekten zurück. Diese können zur tabellarischen Formatierung der Kolumnenwerte herangezogen werden.
Die Analyse wird nur einmal durchgeführt und die resultierende Liste im Tabellenobjekt gespeichert. Ist der Parameter $force angegeben und "wahr", wird eine Neuberechnung forciert.
@aligns | $alignA = $tab->align;
Aktuell werden die Angaben 'left' und 'right' für die Ausrichtung von HTML-Tabellenzellen geliefert.
$n = $tab->width;
$n = $tab->count;
$tab->pop;
$tab->push($row);
$rowClass = $class->defaultRowClass;
Liefere den Namen der Default-Rowklasse: 'Prty::Database::Row::Object'
Auf die Default-Rowklasse werden Datensätze instantiiert, für die bei der Instantiierung einer Table-Klasse keine Row-Klasse explizit angegeben wurde.
Als Default-Rowklasse wird für die Prty::Database::ResultSet- Klassenhierarchie 'Prty::Database::Row::Object' definiert.
Die Methode wird in der Subklasse Prty::Database::ResultSet::Array überschrieben. Für diesen Zweig ist die Default-Rowklasse 'Prty::Database::Row::Array'.
$str = $tab->asString; $str = $tab->asString($colSep); $str = $tab->asString($colSep,$rowSep);
Liefere eine String-Repräsentation der Tabelle mit $colSep als Datensatz-Trenner (Default: "\t") und $rowSep als Kolumnentrenner (Default: "\n").
$str = $tab->asTable(@opt);
Umfang an Information, die über die Daten hinaus ausgegeben wird:
Nur Daten.
Numerierung der Kolumnen, Anzahl Zeilen, Ausführungszeit.
Inforationsumfang 1 plus Liste der Kolumnennamen.
Inforationsumfang 2 plus SQL-Statement.
Füge $msg zur Statistik-Zeile hinzu.
Liefere eine einfache Tabellen-Repräsentation der Tabellendaten.
Beispiel-Ausgabe:
SELECT * FROM did.mandant WHERE ROWNUM <= 10+1 ORDER BY 1 1 id 2 id_person 3 bezeichnung 4 id_verknuepfungsgruppe 1 2 3 4 | 0 | 14485923 | unbekannter Mandant | 0 | | 1 | 14485924 | Otto | 0 | | 2 | 7834646 | Otto - TZ (HB) | 0 | | 3 | 14485928 | Schwab Versand GmbH | 0 | | 4 | 5423454 | Schwab - TZ (HB) | 0 | | 5 | 14913536 | Hanseatic Bank | 0 | | 6 | 14485937 | 3-Pagen Versand | 0 | | 7 | 8371420 | Fegro Markt G. M. B. H. | 0 | | 8 | 14485941 | Heinrich Heine Versand | 0 | | 9 | 14485942 | Hermes T. Kundendienst | 0 | 0.093s, 10 rows - *MORE ROWS EXIST*
$str = $tab->diffReport;
1.128
Frank Seitz, http://fseitz.de/
Copyright (C) 2019 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.