Datensätze beschränken

Aus RAD Studio
Wechseln zu: Navigation, Suche

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.

Siehe auch