Die Funktion nooperation[]
Die Funktion nooperation[] unterdrückt die Ausführung
einer Datenbankaktion. Gegenwärtig kennt nooperation[] keine Argumente.
Es mag paradox klingen, eine Funktion einzuführen, die die
Datenbank daran hindert, eine Ausgabe vorzunehmen. Hier muß man sich
freilich die Logik der Datenausgabe vor Augen halten: Grundsätzlich entspricht
jedes Dokument, das einer Bedingung des query-Befehl entspricht,
mindestens eine Ausgabe in einem anschließenden Auswertungskommando.
Das heißt, daß z.B. die Eingabe
query name=piranesi;part=row
write part=:kuenstler
alle Mehrfacheinträge des Elements "kuenstler" aus allen
Dokumenten "row" ausgeben würde. Die Eingabe
query name=piranesi;part=row:kuenstler="Piranesi"
write part=:query[]
würde immer noch alle Elemente des Inhalts "Piranesi" aus
allen Dokumenten ausgeben.
Nun kann es aber notwendig sein, für bestimmte Operationen,
z.B. zur Generierung einer dynamischen Webseite, lediglich eine einzelne
Ausgabe zu erzeugen. Dazu ist es wiederum nicht nötig auf den Inhalt
der Datenbank (oder einer gesamten Datenbankumwelt) zuzugreifen. Vielmehr
ist es hinriechend, festzustellen, daß die Datenbank oder die Umwelt
existieren, um dann unabhängig vom Inhalt der Datenbank oder der Datenbankumwelt
einen Output zu generieren.
Die Funktion nooperation[] weist in diesem Falle das
System an, keine weiteren Datenbankoperationen vorzunehmen. Das wiederum
heißt aber nicht, daß dem query-Befehl keine
weiteren Kommandos mehr folgen könnten. es können prinzipiell alle
üblichen Auswertungskommando angeschlossen werden. Der Befehl
query name=piranesi;part=nooperation[]
write part=:kuenstler
ist also syntaktisch legal, wenngleich er kein Ergebnis zeitigen
wird, da die Wirksamkeit des query-Befehls durch die Funktion nooperation[]
aufgehoben wird. Anders hingegen wird folgender Befehl:
query name=piranesi;part=nooperation[]
write part=
:printable["Der beliebige Inhalt einer Webpage,
deren Quelltext hier eingetragen
wird"]
Die Funktion :printable
generiert die Ausgabe einer beliebigen Zeichenkette. Nachdem der Inhalt
dieser Zeichenkette unabhängig vom Inhalt der angesprochen Datenbank
(bzw. deren Umwelt) existiert, kann die Zeichenkette also auch dann ausgegeben
werden, wenn keine eigentliche Datenbankoperation erfolgt. Folglich wird
das write-Kommando genau einmal abgearbeitet:
Kleio Version 10.0.0 --- 04.04.2003, 15:02:18
Historical Workstation Project / UNIX version
query name=piranesi;part=nooperation[]
write part=
:printable["Der beliebige Inhalt einer Webpage,
deren Quelltext hier eingetragen
wird"]
stop
Die Ausfuehrung der von Ihnen gestellten Aufgabe beginnt.
Der beliebige Inhalt einer Webpage, deren Quelltext hier eingetragen
wird
Die Ausfuehrung der von Ihnen gestellten Aufgabe wurde beendet.
Auf Wiedersehen bei Ihrer naechsten Kleio Sitzung!
Es wurde also unabhängig vom Datenbankinhalt genau eine
"feste Ausgabe" generiert.
Vgl. auch :nooperation[]