Utilisation de paramètres d'instruction
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Un paramètre est une variable dans une instruction SQL qui peut permettre à une application ODBC d'effectuer les actions suivantes :
fournir de manière efficace des valeurs pour les colonnes d'une table ;
améliorer l'interaction de l'utilisateur lors de la construction de critères de requête ;
Gérez les données texte, ntext et image et les types de données C spécifiques à SQL Server.
Par exemple, une table Composants comporte des colonnes nommées PartID, Description et Price. L'ajout d'un article sans paramètres requiert la construction d'une instruction SQL telle que :
INSERT INTO Parts (PartID, Description, Price) VALUES (2100, 'Drive shaft', 50.00)
Bien que cette instruction soit acceptable pour insérer une ligne avec un jeu connu de valeurs, elle est maladroite lorsqu'une application doit insérer plusieurs lignes. ODBC traite cela en permettant à une application de remplacer n’importe quelle valeur de données dans une instruction SQL par un marqueur de paramètre. Cela est dénoté par un point d'interrogation (?). Dans l'exemple suivant, trois valeurs de données sont remplacées par des marqueurs de paramètres :
INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)
Les marqueurs de paramètres sont ensuite liés à des variables d'applications. Pour insérer une nouvelle ligne, l'application doit uniquement définir les valeurs des variables et exécuter l'instruction. Le pilote extrait ensuite les valeurs actuelles des variables et les envoie à la source de données. Si l'instruction est exécutée plusieurs fois, l'application peut rendre le processus encore plus efficace en préparant l'instruction.
Chaque marqueur de paramètre est référencé par son nombre ordinal assigné aux paramètres de gauche à droite. Le marqueur de paramètre situé le plus à gauche dans une instruction SQL a la valeur ordinale 1 ; le suivant a la valeur ordinale 2, et ainsi de suite.