Condividi tramite


Query con parametri

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.

Alcuni database consentono di utilizzare i parametri come segnaposto nelle espressioni. 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 sull'utilizzo dei parametri, vedere la documentazione del database in uso.

Specifica di parametri denominati e non denominati

È possibile specificare due tipi di parametri: denominati e non denominati. Un parametro senza nome è un punto di domanda (?) che è possibile inserire in una posizione qualsiasi della query per richiedere o 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 visualizzazioni, nella Finestra di dialogo Parametri query viene visualizzato un punto interrogativo ("?") come nome del 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. Per ulteriori informazioni, vedere Progettazione query/visualizzazioni, Strumenti di database, finestra di dialogo Opzioni.

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

Vedere anche

Concetti

Tipi di query supportati (Visual Database Tools)

Altre risorse

Esecuzione di query mediante l'utilizzo di parametri

Progettazione di query e visualizzazioni