TurboPL Referenz

filter Kommando

Top  Previous  Next

Syntax

.filter Filterdefinition

Kategorie

Datenbankjobs

Erklärung

Explizite Filterdefinition

In den meisten Fällen liefert das AF (= automatischer Filter)-System des TurboDB Studio optimale Suchstrategien für alle Formen der Datenabfrage. Es gibt freilich Fälle, in denen der Anwender die Automatik überschreiben will, um eine noch effizientere Suche zu ermöglichen. Das trifft vor allem dann zu, wenn ein Filter über mehrere Hierarchiestufen eines Index gebildet werden kann. Das AF-System benutzt grundsätzlich nur die ersten beiden Stufen.

Eine explizite Filterdefinition besteht in der Angabe eines Indexbereiches. Bei der Bearbeitung der Tabelle wird der Startindex gesucht, und die Bearbeitung beginnt mit dem zugehörigen Datensatz. Falls auch ein Endindex angegeben wird, beendet TurboDB Studio die Arbeit, wenn ein Satz mit einer (ordnungsgemäß) späteren Indexinformation gelesen wird. Daraus ergibt sich die Voraussetzung für einen sinnvollen Filtereinsatz: Der Zugriff muss auf einem Index stehen, und die Bereichsangabe muss sich auf diesen Index beziehen.

Mit
.filter
wird der Filter aufgehoben.

Beispiel

Die Tabelle KUNDEN enthält die Felder "Land" und "PLZ". Es sollen alle deutschen Kunden im Postleitzahlbereich von 2 bis 4 bearbeitet werden. Es besteht ein Index LANDPLZ.IND mit der Beschreibung "Land, PLZ". Eine Selektion der Form "Land='D', PLZ von '2' bis '49999'" liefert zwar das gewünschte Ergebnis, benötigt allerdings unnötig viel Zeit, weil das AF-System nur die erste Hierarchiestufe (=Land) des Index verwendet, also sämtliche Kunden mit Land="D" zur Verfügung stellt. Hier die genauere Filterdefinition:

primtableis KUNDEN
setaccess LANDPLZ.IND
filter D,2/D,49999

Mit diesem Filter setzt die Bearbeitung direkt beim ersten Datensatz mit der angegebenen Bedingung auf und hebt nach dem letzten Satz auch wieder ab.