TurboDB VCL Component Library

TTdbDataSet.FilterMethod

TTdbDataSet

Previous  Top  Next

Spezifiziert die Filter Methode für den folgenden Fitlervorgang.

Delphi Syntax:

property FilterMethod: TTdbFilterMethod;

C++ Syntax:

__property TTdbFilterMethod FilterMethod;

Beschreibung

TurboDB unterstützt inkrementelle und statische Filter. Bei inkrementellen Filtern wird der Filter während der Bewegung durch das Dataset angewendet. Bei statischen Filtern wird die Ergebnismenge des Filters im Voraus berechnet und gespeichert, ähnlich wie es bei SQL-Abfragen der Fall ist. In den meisten Fällen sind statische Filter schneller und haben außerdem den Vorteil einer stabilen Ergebnismenge mit zuverlässigen Satznummern, die für Rollbalken etc. verwendet werden können. In einigen speziellen Fällen jedoch, sind inkrementelle Filter ggen sehr große Datenmenge (> 1 Mio Datensätze) deutlich schneller  als die statische Variante:

Falls die Ergebnismenge eine große Untermenge des gesamten Datesets ist, bspw. Name <> 'Svyczkovski'.
Falls die Anwendung eines Index zur Beschleunigung einer Suche nicht möglich ist, bspw. Date > 2009-10-03 or Amount < 100000.
Falls nur der erste Datensatz der geforderten Bedingung genügt.
Falls eine große Ergebnismenge zusätzlich sortiert werden soll.

Andererseits haben inkrementelle Filter einige Nachteile:

Die Anzhal der Datensätze kann nicht bestimmt werden.
Es gibt keine gültige RecNo und daher sind keine Rollbalken möglich.
Sie sind sehr langsam für große Datenmengen und Filter, denen nur wenige Datensätze genügen, bspw. Name = 'Swyczkovski'.

FilterMethod muss vor Filter gesetzt werden und 2funktioniert nur mit regulären Filtern, nicht mit Wort-Filtern.