Requêtes avec paramètres
Mise à jour : novembre 2007
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).
Certaines bases de données autorisent l'utilisation de paramètres comme espaces réservés dans des expressions. 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 de détails sur les cas dans lesquels vous pouvez utiliser des paramètres, consultez la documentation de votre base de données.
Spécification de paramètres nommés et sans nom
Vous pouvez spécifier deux types de paramètres : sans nom et avec 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%
Conseil : |
---|
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é. Pour plus d'informations, consultez Concepteur de requêtes et de vues, Outils de base de données, boîte de dialogue Options. |
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.
Voir aussi
Concepts
Types de requêtes pris en charge (Visual Database Tools)