Condividi tramite


Query con parametri (Visual Database Tools)

In alcuni casi potrebbe essere necessario creare una query da utilizzare più volte, specificando però ogni volta un valore diverso. Se, ad esempio, si eseguono di frequente delle query per individuare tutti i title_ids di un determinato autore, è possibile utilizzare la stessa query per tutte le richieste specificando però ogni volta un ID o un nome di autore diverso.

Per creare una query che può accettare valori diversi in momenti diversi, è necessario utilizzare i parametri. Un parametro è un segnaposto per un valore che verrà fornito durante l'esecuzione della query. Un'istruzione SQL con un parametro potrebbe essere simile alla seguente, dove "?" rappresenta il parametro relativo all'ID dell'autore:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Possibili utilizzi dei parametri

I parametri possono essere utilizzati come segnaposto per valori letterali (testo o valori numerici). Nella maggior parte dei casi i parametri vengono utilizzati come segnaposto all'interno di condizioni di ricerca per singole righe o per gruppi, ovvero nelle clausole WHERE o HAVING di un'istruzione SQL.

I parametri possono essere utilizzati nelle espressioni come segnaposto. Si supponga ad esempio di voler calcolare prezzi scontati specificando un valore di sconto diverso a ogni esecuzione della query. A tale scopo, è possibile utilizzare la seguente espressione:

(price * ?)

Per informazioni dettagliate su dove è possibile utilizzare i parametri, vedere Indicatori di parametro (Motore di database).

Specifica di parametri denominati e non denominati

È possibile specificare due tipi di parametri: denominati e non denominati. Un parametro non denominato è un punto di domanda (?) che è possibile inserire in una posizione qualsiasi della query per richiedere o per sostituire un valore letterale. Se, ad esempio, si utilizza un parametro non denominato per cercare l'ID di un autore nella tabella titleauthor, l'istruzione risultante nel riquadro SQL potrebbe essere simile alla seguente:

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Al momento dell'esecuzione della query in Progettazione query e Progettazione viste, nella finestra di dialogo Parametri query viene visualizzato un punto interrogativo ("?") come nome di parametro.

In alternativa, è possibile assegnare un nome a un parametro. I parametri denominati risultano particolarmente utili quando in una query sono presenti più parametri. Se, ad esempio, si utilizzano parametri denominati per cercare il nome e il cognome di un autore in una tabella authors, l'istruzione risultante nel riquadro SQL potrebbe essere simile alla seguente:

SELECT au_id
FROM authors
WHERE au_fname = %first name% AND
      au_lname = %last name%
SuggerimentoSuggerimento

Prima di creare una query con parametri denominati, è necessario definire i caratteri del prefisso e del suffisso.

Al momento dell'esecuzione della query in Progettazione query e Progettazione viste, nella finestra di dialogo Parametri query viene visualizzato un elenco di parametri denominati.