Limitation des enregistrements affichés

De RAD Studio
Aller à : navigation, rechercher

Remonter à Manipulation des données avec un ensemble de données client


Pour restreindre l'accès aux données de manière temporaire, les applications peuvent définir des portées et des filtres. Lorsqu'une portée ou un filtre est appliqué, l'ensemble de données client n'affiche pas toutes les données placées dans sa mémoire cache. A la place, il affiche uniquement celles correspondant aux conditions de la portée ou du filtre. Pour plus d'informations sur l'utilisation de filtres, voir Affichage et édition d'ensembles de données en utilisant des filtres. Pour plus d'informations sur les portées, voir Limitation des enregistrements avec des portées.

Avec la majorité des ensembles de données, les chaînes des filtres sont analysées et traduites en commandes SQL qui sont ensuite implémentées sur le serveur de base de données. De ce fait, le dialecte SQL du serveur limite les opérations utilisées dans les chaînes de filtre. Les ensembles de données client implémentent leur propre support des filtres, qui comprend davantage d'opérations que celui des autres ensembles de données. Par exemple, avec un ensemble de données client, les expressions de filtre peuvent comprendre des opérateurs de chaînes renvoyant des sous-chaînes, des opérateurs qui décomposent des valeurs de date et d'heure, etc. Les ensembles de données client autorisent l'utilisation des filtres sur les champs BLOB et les types de champs complexes comme les champs ADT et les champs de tableaux.

Voici les divers opérateurs et fonctions qu'un ensemble de données client peut utiliser dans les filtres, accompagnés d'une comparaison avec les autres ensembles de données prenant en charge les filtres :

Support des filtres dans les ensembles de données client:

Opérateur ou fonction Exemple Pris en charge par d'autres ensembles de données Commentaire

Comparaisons

=

State = 'CA'

Oui

<>

State <> 'CA'

Oui

>=

DateEntered >= '1/1/1998'

Oui

<=

Total <= 100,000

Oui

>

Percentile > 50

Oui

<

Champ1 < Champ2

Oui

BLANK

State <> 'CA' or State = BLANK

Oui

Les enregistrements vierges ne s'affichent que s'ils sont explicitement inclus dans le filtre.

IS NULL

Champ1 IS NULL

Non

IS NOT NULL

Champ1 IS NOT NULL

Non

Opérateurs logiques

and

State = 'CA' and Country = 'US'

Oui

or

State = 'CA' or State = 'MA'

Oui

not

not (State = 'CA')

Oui

Opérateurs arithmétiques

+

Total + 5 > 100

Dépend du pilote

S'applique aux nombres, aux chaînes ou aux dates (heures) plus un nombre.

-

Champ1 - 7 <> 10

Dépend du pilote

S'applique aux nombres, aux dates ou aux dates (heures) moins un nombre.

Discount * 100 > 20

Dépend du pilote

S'applique aux nombres uniquement.

/

Discount > Total / 5

Dépend du pilote

S'applique aux nombres uniquement.

Fonctions String

Upper

Upper(Champ1) = 'TOUJOURS'

Non

Lower

Lower(Champ1 + Champ2) = 'josp'

Non

Substring

Substring(ChampDate,8) = '1998'

Substring(ChampDate,1,3) = 'JAN'

Non

La valeur va de la position du second argument à la fin ou au nombre de caractères dans le troisième argument. Le premier caractère a la position 1.

Trim

Trim(Champ1 + Champ2)

Trim(Champ1, '-')

Non

Supprime le troisième argument au début et à la fin. S'il n'y a pas de troisième argument, supprime les espaces.

TrimLeft

TrimLeft(ChampString)

TrimLeft(Champ1, '$') <>

Non

Voir Trim.

TrimRight

TrimRight(ChampString)

TrimRight(Champ1, '.') <>

Non

Voir Trim.

Fonctions DateTime

Year

Year(ChampDate) = 2001

Non

Month

Month(ChampDate) <> 12

Non

Day

Day(ChampDate) = 1

Non

Hour

Hour(ChampDate) < 16

Non

Minute

Minute(ChampDate) = 0

Non

Second

Second(ChampDate) = 30

Non

GetDate

GetDate – ChampDate > 7

Non

Représente la date et l'heure en cours.

Date

ChampDate = Date(GetDate)

Non

Renvoie la partie date d'une valeur date/heure.

Time

ChampHeure > Time(GetDate)

Non

Renvoie la partie heure d'une valeur date/heure.

Divers

Like

Memo LIKE '%filters%'

Non

Fonctionne comme SQL-92 sans la clause ESC. Lorsqu'elle est appliquée à des champs BLOB, FilterOptions détermine la prise en compte de la casse.

In

Day(ChampDate) in (1,7)

Non

Fonctionne comme SQL-92. Le second argument est une liste de valeurs toutes du même type.

State = 'M*'

Oui

Caractère générique pour les comparaisons partielles.



Lorsque vous appliquez des portées ou des filtres, l'ensemble de données client stockera tous les enregistrements en mémoire. La portée ou le filtre détermine simplement quels sont les enregistrements accessibles aux contrôles pour la navigation ou l'affichage des données issues de l'ensemble client.

Remarque :  Lors de l'extraction de données en provenance d'un fournisseur, vous pouvez aussi limiter les données stockées par l'ensemble de données client en transmettant des paramètres au fournisseur. Pour plus d'informations, voir Limitation des enregistrements avec des paramètres.

Voir aussi