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[]