FILTER

Sommaire


Filterpermet de sélectionner les enregistrements d'une table précédemment ouverte et de préciser une clé de parcours.

 

Syntaxe

  Filterclasse [Where_exp ] [Order_by_exp ]

 

Paramètres

Elément

Description

Restrictions

classe

Abréviation d'un fichier ouvert

le fichier doit déjà être ouvert

Where_exp

expression_de_sélection Voir Where

Aucune.

Order_by_exp

expression_de_clé Voir Order

Aucune.

 

Exemples

  # Edition des commmandes client entre 2 dates
  Filter [CCL] Where DATCCL >= DATDEB and DATCCL <= DATFIN
   For [CCL]CLICCL(1)
       For [CCL]CLICLL(2)
       ...
       Next
   Next
  # Dans le fichier des commandes client, on a traité une commande
   # et on veut lire la suivante - si elle existe.
   Filter [CCL] Where CODCLIF = [L]CLICUR and NUMCCL > [L]NUMCUR
    Raz [L]OK
    For [CCL]
       [L]OK = 1 : Break
    Next
    If [L]OK
   # une autre commande existe pour ce client
   Else
   # pas d'autre commande
   Endif
  # Annulation des enregistrements suivant un certain critère
   Filter [ABR] Where evalue([L]CRITERE)
    Delete [ABR]CLE(1) >= "" : # CLE(1) étant alphanumérique
   Filter [ABR] : # annulation de la sélection

 

Description et commentaires

Filteren association avec la clause Where permet de sélectionner les enregistrements d'une table préalablement ouverte. Ceci permet d'accélérer les accès aux données de cette table.

En association avec la clause Order By, on peut en plus changer de clé d'accès. Cette nouvelle clé pourra être soit une clé déjà existante, soit une nouvelle clé définie dans la clause Order By.

Si la table a été ouverte avec une clause Where, Filter vient renforcer la sélection en faisant un "et logique" avec la condition exprimée à l'ouverture de la table . Une telle ouverture pouvant être faite par les ordres File et Link. Il en est de même à l'intérieur d'une boucle For ...Next.

Si une instruction Filter vient après une autre instruction Filter sur une même classe, elle annule et remplace la précédente. On se servira donc de l'instruction Filter [abv] sans autre argument pour annuler tout éventuel filtre.

 

Remarques

Il y a un niveau de localité attaché aux fichiers ouverts par Local File. Par contre, il n'y en a pas attaché à l'ordre Filter. Ainsi, si cet ordre apparaît dans un sous programme sur une table précédemment ouverte (et - bien sûr - non réouverte dans le sous-programme) , il sera encore actif au retour dans le traitement appellant.

Après Filter, la variable [G]currind vaut toujours 1.

En terme de performances, il est équivalent de mettre la sélection dans l'ouverture de la table ou de le faire par Filter. Cette dernière syntaxe apporte plus de souplesse à l'écriture des traitements puisqu'on peut à tout moment la changer ou l'annuler.

Les restrictions générales concernant les clauses Where et Order By s'appliquent pleinement quand elles sont utilisées avec Filter.

 

Erreurs associées

Erreur

Description

ERCLAS( 7)

Abréviation non trouvée

 

Mots-clés associés

WHERE -ORDER - FILE - FOR - TRBEGIN- LINK - READ - DELETE - UPDATE - CURRIND


SOMMAIRE

Adonix X3(r) L4G
C
opyright (c) Adonix 1999 - All rights reserved