Cercar registres: select, where, from, to
La instrucció select retorna una taula de registres (nid). Es pot combinar amb les clàusules where, from i to.
Exemple:
L'exemple següent recupera els deu primers noms de la taula Customer on el nom conté la lletra «s»:
(select Customer where 'First name' like "s" from 0 to 9).'first name'Clàusula where
El contingut d'una clàusula where s'executa al servidor.
- Per tant, no es poden fer servir determinades funcions, com ara
alertodialog, dins d'una clàusulawhere. - Ninext no us n'avisarà: la pestanya Errors assenyala aquestes funcions d'interfície, que el servidor ignora sense dir res, en un
do as servero en un activador de taula (després de crear, després de modificar), però no en una clàusulawhere.
From i To
Amb from i to, només es retornaran els registres de l'índex 0 al 9.
- Aquesta funcionalitat és útil per recuperar els primers x registres o per paginar els resultats d'una consulta.
Bloc d'execució
El bloc d'execució és la part que hi ha després del punt, al final de la instrucció select. A l'exemple anterior, el bloc d'execució és 'first name'.
Un bloc d'execució més complex pot incloure variables o fins i tot altres instruccions select. Igual que amb les funcions, la darrera instrucció del bloc determina el tipus i el valor de la taula resultant.
Exemple:
El codi següent produeix una taula de nombres que representen les vendes totals de cada 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);
)Advertiment
En els blocs d'execució que accedeixen a altres taules hi pot haver errors si el codi s'executa al servidor.
- En aquests casos, val més fer servir un bucle
for i in select.
