select, where, from, to
L'instruction select renvoie un tableau d'enregistrements (nid). Elle se combine avec les clauses where, from et to.
Exemple :
L'exemple suivant récupère les 10 premiers prénoms de la table Customer dont le prénom contient la lettre « s » :
(select Customer where 'First name' like "s" from 0 to 9).'first name'
Clause where
Le contenu d'une clause where est exécuté sur le serveur.
- Il n'est donc pas possible d'utiliser certaines fonctions, comme
alertoudialog, dans une clausewhere.
From et To
Avec from et to, seuls les enregistrements d'indice 0 à 9 sont renvoyés.
- Cette possibilité est utile pour récupérer les x premiers enregistrements ou pour paginer les résultats d'une requête.
Bloc d'exécution
Le bloc d'exécution est la partie qui suit le point, à la fin de l'instruction select. Dans l'exemple ci-dessus, le bloc d'exécution est 'first name'.
Un bloc d'exécution plus complexe peut contenir des variables, voire d'autres instructions select. Comme pour les fonctions, la dernière instruction du bloc détermine le type et la valeur du tableau obtenu.
Exemple :
Le code suivant produit un tableau de nombres, correspondant au total des ventes de chaque client :
(select Customer where 'First name' like "s" from 0 to 9).
(
var a := id;
var i := select invoice where customer = a;
sum(i.TOTAL);
)
Avertissement :
Pour les blocs d'exécution qui accèdent à d'autres tables, des anomalies peuvent survenir si le code est exécuté sur le serveur.
- Dans ce cas, mieux vaut employer une boucle
for i in select.
