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

DBInvFilter()


Syntax:

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

Beispiel:

Nstamm := DBInvFilter (stamm, muster)

Beschreibung:

Filtert alle Tupel aus der Relation R und legt alle Tupel, die, feldweise, nicht auf das Muster passen, in einer internen Relation ab.

Ausgeschlossen werden also alle Tupel, die in einem gesetzten Feld einen Wert eingetragen haben, der mit dem Mustertupel übereinstimmt. Ist ein Feld im Mustertupel nicht besetzt, wird es nicht für das Ausschließen herangezogen. Ist ein Feld eines Tupels der Relation nicht gesetzt, passt es auf kein Muster, außer auf ungesetzte Felder des Mustertupels.

Beispiel:

Die Relation habe die Struktur Name#20S,Voname#20S und die Tupel

	 ("Meier", "Hans") und 
	 ("Schmidt", "Karl")
	 
Das Muster sei ("Schmidt", "Hans"). Das Ergebnis wäre dann leer, weil das erste Tupel den Mustervornamen und das zweite Tupel den Musternachnamen besitzt. Das Muster ("Schmidt", ) (Feld Vorname unbesetzt) ergäbe als Ergebnis das Tupel ("Meier", "Hans"), weil Meier nicht passt und der Vorname nicht geprüft werden soll.

Deshalb, und weil ungesetzte Felder im Muster nicht zu einem Ausschluss führen, ist DBInvFilter nicht das Gegenteil von DBFilter(). Dieses kann man mit SelectAll() und CollectAll(False) erreichen.

Siehe DBFilter().

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



toposoft 28.10.2024