Limitation des enregistrements affichés
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.