Aller au contenu principal
Version: Next

DISTINCT ATTRIBUTE VALUES

DISTINCT ATTRIBUTE VALUES ( champObjet ; cheminAttribut ; tabValeurs )

ParamètreTypeDescription
champObjetFieldChamp objet à utiliser
cheminAttributTextNom ou chemin de l'attribut dont vous voulez obtenir les valeurs distinctes
tabValeursText array, Integer array, Boolean array, Date array, Time arrayTableau des valeurs distinctes dans l'attribut

Description

La commande DISTINCT ATTRIBUTE VALUES crée et remplit le tableau tabValeurs avec les valeurs uniques présentes dans l'attribut cheminAttribut du champ objet champObjet et ce, pour la sélection courante de la table à laquelle appartient le champ. Notez que le champ champObjet doit être type Objet, sinon une erreur est retournée. La commande peut être utilisée avec des champs indexés ou non indexés.

Passez un chemin valide d'attribut dans cheminAttribut. Utilisez la notation à points standard pour désigner le chemin d'attributs imbriqués, par exemple "société.adresse.numéro". Attention, gardez à l'esprit que les noms d'attributs d'objets tiennent compte de la casse des caractères.

Le tableau que vous passez dans tabValeurs doit être du même type que les valeurs stockées dans l'attribut cheminAttribut. Ces valeurs doivent être scalaires et peuvent être de type texte, numérique, booléen, date ou heure (les pointeurs, objets, BLOBs et images ne sont pas pris en charge). Assurez-vous que toutes les valeurs d'attributs du champ soient bien du même type, autrement une erreur est retournée. Par exemple, si l'attribut cheminAttribut contient "Lundi" dans un enregistrement et 10125 dans un autre enregistrement, DISTINCT ATTRIBUTE VALUES retournera une erreur.

Si la commande est appelée pendant une transaction, les enregistrements créés dans la transation sont pris en compte.

Après l'exécution de la commande, la taille du tableau tabValeurs est égale au nombre de valeurs différentes trouvées dans la sélection.

La commande ne modifie pas la sélection courante ni l'enregistrement courant.

Utilisation de la propriété virtuelle length

Vous pouvez utiliser la propriété virtuelle "length" avec cette commande. Cette propriété est automatiquement disponible pour tous les attributs de type tableau, et retourne la taille du tableau, c'est-à-dire le nombre d'éléments qu'il contient. Elle est destinée à une utilisation avec la commande QUERY BY ATTRIBUTE mais est également disponible pour DISTINCT ATTRIBUTE VALUES afin d'obtenir les différentes tailles de tableaux pour un attribut.

Exemple

Votre base de données comporte un champ objet [Customer]full_Data avec 15 enregistrements :

Si vous exécutez ce code :

 ARRAY LONGINT(aLAges;0)
 ARRAY LONGINT(aLAgesChild;0)
 ARRAY LONGINT(aLChildNum;0)
 ALL RECORDS([Customer])
  //obtenir les valeurs distinctes de l'attribut "age"
 DISTINCT ATTRIBUTE VALUES([Customer]full_Data;"age";aLAges)
  //obtenir les valeurs distinctes de l'attribut dans le tableau Children"
 DISTINCT ATTRIBUTE VALUES([Customer]full_Data;"Children[].age";aLAgesChild)
  //obtenir les différents nombres d'enfants à l'aide de la propriété virtuelle length
 DISTINCT ATTRIBUTE VALUES([Customer]full_Data;"Children.length";aLChildNum)

Le tableau aLAges reçoit les éléments suivants :

ElémentValeur
133
235
336
440
542
644
752
854
960

Le tableau aLAgesChild reçoit les éléments suivants :

ElémentValeur
12
23
34
45
56
610
712
814
915
1016

Le tableau aLChildNum reçoit les éléments suivants :

ElémentValeur
11
22
33

Voir aussi

DISTINCT ATTRIBUTE PATHS