Partager via


Requêtes avec paramètres (Visual Database Tools)

Dans certains cas, il est utile de créer une requête si vous devez souvent y faire appel, mais chaque fois avec une valeur différente. Par exemple, il se peut que vous exécutiez fréquemment une requête pour rechercher tous les title_ids écrits par un auteur. Chaque demande pourrait utiliser la même requête, mais l'ID ou le nom de l'auteur serait différent à chaque fois.

Pour que la requête prenne une valeur différente selon le cas, incluez des paramètres dans sa création. Un paramètre est un espace réservé, qui sera rempli par une valeur fournie au moment de l'exécution de la requête. Dans l'instruction SQL de l'exemple suivant, « ? » représente le paramètre de l'ID de l'auteur :

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Où utiliser des paramètres

Les paramètres sont des espaces réservés à des littéraux — à remplacer par du texte ou des valeurs numériques. La plupart du temps, les paramètres sont utilisés en tant qu'espaces réservés dans des conditions de recherche de lignes individuelles ou de groupes (c'est-à-dire dans les clauses WHERE ou HAVING d'une instruction SQL).

Dans les expressions, vous pouvez utiliser les paramètres comme des espaces réservés. Par exemple, il est possible de calculer des prix avec remise en fournissant une remise différente à chaque exécution de la requête. Dans ce cas, vous pourriez spécifier l'expression suivante :

(price * ?)

Pour plus d'informations sur l'utilisation des paramètres, consultez Marqueurs de paramètres (moteur de base de données).

Spécification de paramètres nommés et sans nom

Vous pouvez spécifier deux types de paramètres : nommés et sans nom. Un paramètre sans nom est un point d'interrogation (?) que vous pouvez placer dans la requête à l'endroit où vous serez invité à indiquer une valeur littérale. Par exemple, si vous utilisez un paramètre sans nom pour rechercher l'ID d'un auteur dans la table titleauthor, le volet SQL peut proposer l'instruction suivante :

SELECT title_id
FROM titleauthor
WHERE (au_id = ?)

Lorsque vous exécutez la requête dans le Concepteur de requêtes et de vues, la boîte de dialogue Paramètres de la requête s'affiche avec « ? » représentant le nom du paramètre.

Une autre méthode consiste à assigner un nom à un paramètre. Cela s'avère particulièrement utile si la requête doit comporter plusieurs paramètres. Par exemple, voici l'instruction proposée dans le volet SQL si vous utilisez des paramètres nommés pour rechercher le prénom et le nom d'un auteur dans la table authors :

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

Vous devez définir les caractères de préfixe et de suffixe avant de créer une requête employant un paramètre nommé.

Lorsque vous exécutez la requête dans le Concepteur de requêtes et de vues, la boîte de dialogue Paramètres de la requête s'affiche avec la liste des paramètres nommés.