[Inhalt] [Zurück] [Weiter] [Thema] [Index]

DBFilter()


Syntax:

DBFilter (Relation R, Tupel von [,Tupel bis]) : Relation
R:
von: (minimales) MusterTupel
bis: optional maximales MusterTupel

Beispiel:

Nstamm := DBFilter (stamm, muster)

Beschreibung:

Filtert alle Tupel aus der Relation R und legt alle gefilterten Tupel in einer Memory-Relation ab.

Das Muster ist dabei entweder durch ein Mustertupel (von) oder durch zwei Mustertupel (von und bis) gegeben.

Wird nur von angegeben, dann werden die Tupel der Relation R jeweils auf Gleichheit getestet. Wildcards, wie z.B. *hausen, sind erlaubt. Unbesetzte Felder werden wie * behandelt. Felder, deren Inhalt leer sein sollen, müssen gezielt mit Leerstring besetzt werden.

Bei Angabe von bis wird ein Bereichsvergleich durchgeführt. Alle Tupel, die (lexigraphisch oder numerisch) zwischen bis und von liegen, passen. Es findet also der Vergleich: von <= t <= bis statt.

Statt ein bis-Tupel zu übergeben, kann man für einzelne Felder auch Ober- oder Untergrenzen im Feldinhalt übergeben. Dazu muss im Feld an der ersten Stelle ein < bzw. > stehen. Die Grenzen sind inklusive (also gilt <= bzw. >=).

Um alle Tupel zu finden, die nicht auf eine Muster passen, setzt man vor das Muster einen ¬ (Negierer). Beispiel SetText(tup, "Ort", "¬Wien")

Wenn man nach mehreren Alternativen suchen möchte, übergibt man die Alternativen mit · getrennt (Spezial-Punkt in Zeilenmitte, auch als \.).

Die Suchoptionen Negierer, Alternativen und Wildcards kann man auch kombinieren, Beispiel: ¬Herr*\.Frau* findet alle, die nicht mit Herr oder Frau anfangen.

Die Ergebnis-Relation erbt den Namen der Ausgangsrelation.

Siehe auch DBInvFilter().

Zum Zurückschreiben von geänderten, gelöschten oder hinzugefügten Tupeln in der Ergebnisrelation in die Ursprungsrelation kann RelWriteBack() verwendet werden.



toposoft 28.03.2024