base
portal
Suche:
Forum
Start
Neue Seite erstellen
Titel:
Nach einem <c>get</c> steht das Ergebnis in einem <i>Hash</i> mit dem gleichen Namen wie die Datenbank zur Verfügung: <code> get "meinedb"; for(my $i=0; $i<$_amount; $i++) { out $meinedb{Feldname}[$i]," "; } </code> Gibt man einen Ergebnisnamen an, so wird dieser als Hashname verwendet: <code> get "Name~=a", "meinedb", "ergebnis1"; get "Name~=b", "meinedb", "ergebnis2"; for(my $i=0; $i<$ergebnis1{_amount}; $i++) { out $ergebnis1{Feldname}[$i]," "; } for(my $i=0; $i<$ergebnis2{_amount}; $i++) { out $ergebnis2{Feldname}[$i]," "; } </code> Zur (Test-)Ausgabe des Ergebnis-Hashs eignet sich der Befehl [564:dump]: <code> get "meinedb"; out dump %meinedb; </code> Holt die Datenbank "meinedb" und gibt deren Inhalt vollständig aus. <h2>Ausgabefilter in eigenem Code aktivieren</h2> Innerhalb eigenen Codes werden Einträge die aus einer Datenbank gelesen wurden, nicht durch den <i>Ausgabefilter</i> gewandelt, liegen also immer "roh" vor, so wie sie in der Datenbank stehen. So enthält z.B. ein Datumsfeld den Wert im internen Format, der erst mit <c>datum</c> in ein "schönes" Ausgabeformat gewandelt werden muss. Beim <c><do action=all..</c> oder <c><loop>..</loop></c> wird dies automatisch erledigt, so wie es in der Felddefinition angegeben wurde. Möchte man dies auch bei <c>get</c>-Befehlen erreichen, muss man ein Plus <c>+</c> nach dem Datenbank-Namen angeben: <code> get "Datum>jetzt", "datenbank", "+"; out $Datum; </code> Gibt <c>$Datum</c> im Ausgabeformat der Felddefinition aus, z.B. <i>2.September.2006</i> Das interne Format liegt zusätzlich im Hash <c>%_raw</c> vor, in diesem Fall also in <c>$_raw{Datum}</c>. Auch bei Verwendung des <c>+</c> kann ein Ergebnishash verwendet werden, was aber zusätzlich zu einem leicht anderen Verhalten führt: <h2>Feldvariablen nicht belegen</h2> Um den Ausgabefilter zu aktivieren, muss man das <c>+</c> direkt vor den Ergebnishash schreiben: <code> get "Name==hans", "datenbank", "+erg"; out $erg{Datum}[0]; </code> Dies führt dazu, dass nicht mehr automatisch Variablen mit Feldnamen gesetzt werden (<c>$Datum</c> ist also leer). Das Abfrageergebnis liegt nur im Hash <c>erg</c> vor - durch den Ausgabefilter gewandelt. Die "Rohdaten" sind ebenfalls vorhanden und stehen in <c>$erg{_raw}{Feldname}[Zeile]</c>, in diesem Beispiel also in <c>$erg{_raw}Datum[0]</c>. Der Vorteil hierbei ist, dass so unerwünschtes Überschreiben von Variablen vermieden wird. Möchte man keine Feldvariablen setzen, ohne den Ausgabefilter zu aktivieren, benötigt man ein Minus <c>-</c>: <code> get "Name==hans", "datenbank", "-"; out $datenbank{Datum}[0]; </code> Das Ergebnis steht dann im Datenbank-Hash. Natürlich funktioniert dies auch in Verbindung mit einem Ergebnis-Hash: <code> get "Name==hans", "datenbank", "-erg"; out $erg{Datum}[0]; </code> Gibt das interne Format von <c>Datum</c> aus. Um das Ergebnis später doch in Feldvariablen abzurufen, benutzt man einfach <c>get_next</c>: <code> get_next "erg"; out $Datum; </code> Alle Abfragemöglichkeiten in einer Übersicht: <tab> Abfrage|Auswirkung get "db";|Kein Ausgabefilter, Feldvariablen werden gesetzt, Ergebnis in <c>%db</c> get "db", "erg";|Kein Ausgabefilter, Feldvariablen werden gesetzt, Ergebnis in <c>%erg</c> get "db", "+";|Ausgabefilter aktiv, Feldvariablen werden gesetzt, Ergebnis in <c>%db</c> get "db", "-";|Kein Ausgabefilter, Keine Feldvariablen, Ergebnis in <c>%db</c> get "db", "+erg";|Ausgabefilter aktiv, Keine Feldvariablen, Ergebnis in <c>%erg</c> get "db", "-erg";|Kein Ausgabefilter, Keine Feldvariablen, Ergebnis in <c>%erg</c> </tab>
Name:
Passwort:
Stichworte:
Version:
1
2
3 Angebot:
Alle
Nur Miete / Lizenz
Nur Miete / Lizenz professional
Nur Miete
Nur Miete smart + pro
Nur Miete smart + pro / Lizenz
Nur Miete pro
Nur Miete ab pure2, smart2, pro1
Nur Lizenz
Nur Lizenz professional
Nur Kostenlos
Ohne Änderungen zurück zur Seite
-
+
©
baseportal
GmbH. Alle Rechte vorbehalten.
powered in 0.01s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!