Recerques paramètriques

Índex

 

Recerques paramètriques

Si hem de fer servir reiteradament una consulta, podem fer-ne una de nova cada vegada. També podem desar la que hem fet servir i, si cal, modificar-la cada vegada. Suposem que hem creat una consulta sobre el cognom 'Claramunt' i ara en volem fer una altra sobre el cognom 'Milans': podem entrar a l'editor de consultes i on deia 'Claramunt' hi posem 'Milans'. Ja s'entén que aquest procediment és molt poc pràctic.

La solució són les anomenades consultes paramètriques; en aquestes, el valor que volem trobar mitjançant la recerca no s'indica en el moment de crear-la sinó només en el moment d'executar-la. Per a això creem un paràmetre variable designat amb un nom, que ha de consistir en una sola cadena de caràcters sense espais:

... WHERE "nom-del-camp" :indicació_sobre_el_paràmetre

(Atenció als dos punts i a l'absència de cometes).

Per exemple, hem fet una consulta sobre la taula "Socis", el contingut de la qual repetim:

#

Hi establim el paràmetre ':Cognom_desitjat' aplicat al camp "Cognom";. En conjunt, doncs,

SELECT "Nom", "Cognom"
FROM "Socis"
WHERE "Cognom" = :Cognom_desitjat

En el moment d'executar la consulta apareixerà un quadre de diàleg (variable segons els programa que fem servir), en què se'ns demanarà que assignem valor al paràmetre la variable:

#

I si indiquem el valor 'Milans', aquest és el resultat:

#

 

Paràmetres fragmentaris

Combinant la recerca paramètrica amb les potencialitats del LIKE podem establir recerques paramètriques per fragments:

...
WHERE "Cognom" LIKE ( :Inici_ del_Cognom || '%' )
...

o bé

...
WHERE "Cognom" LIKE ( '%' || :Fragment_del_Cognom || '%' )
...