Datensätze beschränken
Nach oben zu Client-Datenmengen
Um die Benutzeraktivitäten vorübergehend auf eine Untermenge der verfügbaren Daten einzuschränken, verwenden Anwendungen Bereiche und Filter. Wenn Sie einen Bereich oder Filter anwenden, zeigt die Client-Datenmenge nicht alle Daten aus ihrem Puffer an. Stattdessen zeigt sie nur die Daten an, die den Bereichs- oder Filterbedingungen entsprechen. Weitere Informationen zur Verwendung von Filtern finden Sie unter Datensätze durch Bereiche beschränken.
Bei den meisten Datenmengen werden Filter-Strings in SQL-Befehle zerlegt, die anschließend auf dem Datenbankserver implementiert werden. In diesem Sinne bestimmt der SQL-Dialekt des Servers, welche Operationen in Filter-Strings verwendet werden können. Client-Datenmengen implementieren ihre eigene Filterunterstützung, die mehr Operationen als die anderer Datenmengen erlaubt. Wenn Sie eine Client-Datenmenge verwenden, können Filterausdrücke beispielsweise Stringoperatoren enthalten, die Teilstrings zurückgeben, oder Operatoren verwenden, die Zeit/Datumswerte auswerten, und vieles andere mehr. Client-Datenmengen ermöglichen außerdem das Filtern von BLOB-Feldern oder oder Feldern mit komplexen Feldtypen wie beispielsweise ADT-Felder oder Array-Felder.
Die folgende Tabelle listet die verschiedenen Operatoren und Funktionen auf, die Client-Datenmengen in Filtern verwenden können, ebenso wie einen Vergleich zu anderen Datenmengen, die Filter unterstützen:
Filterunterstützung in Client-Datenmengen:
Operator oder Funktion | Beispiel | Unterstützung durch andere Datenmengen | Kommentar |
---|---|---|---|
Vergleiche | |||
= |
State = 'CA' |
Ja |
|
<> |
State <> 'CA' |
Ja |
|
>= |
DateEntered >= '1/1/1998' |
Ja |
|
<= |
Total <= 100,000 |
Ja |
|
> |
Percentile > 50 |
Ja |
|
< |
Field1 < Field2 |
Ja |
|
BLANK |
State <> 'CA' or State = BLANK |
Ja |
Leere Datensätze werden nur angezeigt, wenn diese explizit in den Filter einbezogen werden. |
IS NULL |
Field1 IS NULL |
Nein |
|
IS NOT NULL |
Field1 IS NOT NULL |
Nein |
|
Logische Operatoren | |||
and |
State = 'CA' and Country = 'US' |
Ja |
|
or |
State = 'CA' or State = 'MA' |
Ja |
|
not |
not (State = 'CA') |
Ja |
|
Arithmetische Operatoren |
|||
+ |
Total + 5 > 100 |
Vom Treiber abhängig |
Wird auf Zahlen, Strings oder Datum (Zeit) + Zahlen angewendet. |
- |
Field1 - 7 <> 10 |
Vom Treiber abhängig |
Wird auf Zahlen, Datumswerte oder Datum (Zeit) – Zahlen angewendet. |
|
Discount * 100 > 20 |
Vom Treiber abhängig |
Wird nur auf Zahlen angewendet. |
/ |
Discount > Total / 5 |
Vom Treiber abhängig |
Wird nur auf Zahlen angewendet. |
String-Funktionen | |||
Upper |
Upper(Field1) = 'ALWAYS' |
Nein |
|
Lower |
Lower(Field1 + Field2) = 'josp' |
Nein |
|
Substring |
Substring(DateFld,8) = '1998' Substring(DateFld,1,3) = 'JAN' |
Nein |
Der Wert geht von der Position des zweiten Arguments bis zum Ende oder die Anzahl der Zeichen im dritten Argument. Erstes Zeichen hat Position 1. |
Trim |
Trim(Field1 + Field2) Trim(Field1, '-') |
Nein |
Entfernt das dritte Argument von vorne und hinten. Ist kein drittes Argument vorhanden werden die Leerzeichen ausgeglichen. |
TrimLeft |
TrimLeft(StringField) TrimLeft(Field1, '$') <> |
Nein |
Siehe Trim |
TrimRight |
TrimRight(StringField) TrimRight(Field1, '.') <> |
Nein |
Siehe Trim |
Datum/Zeit-Funktionen | |||
Year |
Year(DateField) = 2000 |
Nein |
|
Month |
Month(DateField) <> 12 |
Nein |
|
Day |
Day(DateField) = 1 |
Nein |
|
Hour |
Hour(DateField) < 16 |
Nein |
|
Minute |
Minute(DateField) = 0 |
Nein |
|
Second |
Second(DateField) = 30 |
Nein |
|
GetDate |
GetDate - DateField > 7 |
Nein |
Stellt das aktuelle Datum und die aktuelle Zeit dar. |
Date |
DateField = Date(GetDate) |
Nein |
Gibt den Datumsanteil eines Datum/Zeit-Werts zurück. |
Time |
TimeField > Time(GetDate) |
Nein |
Gibt den Zeitanteil eines Datum/Zeit-Werts zurück. |
Verschiedene |
|||
Like |
Memo LIKE '%filters%' |
Nein |
Wie SQL-92 ohne die ESC-Klausel. Bei Anwendung auf BLOB-Felder legt FilterOptions fest, ob die Groß-/Kleinschreibung berücksichtigt wird. |
In |
Day(DateField) in (1,7) |
Nein |
Wie bei SQL-92. Zweites Argument ist eine Liste von Werte, die alle denselben Typ haben. |
|
State = 'M*' |
Ja |
Platzhalterzeichen für Vergleiche |
Auch bei Anwendung von Bereichen oder Filtern legt die Client-Datenmenge weiterhin alle ihre Datensätze im Speicher ab. Der Bereich oder Filter bestimmt nur, welche Datensätze den Steuerelementen zur Verfügung gestellt werden sollen, die Daten aus der Client-Datenmenge anzeigen oder sich darin bewegen.
Anmerkung: Wenn Sie Daten von einem Provider abrufen, können Sie die von der Client-Datenmenge gespeicherten Daten außerdem durch Parameter beschränken, die Sie dem Provider übergeben. Weitere Informationen finden Sie unter Datensätze durch Parameter beschränken.