Types de données de paramètre

Même si chaque paramètre spécifié avec SQLBindParameter est défini à l’aide d’un type de données SQL, les paramètres d’une instruction SQL n’ont pas de type de données intrinsèque. Par conséquent, les marqueurs de paramètres ne peuvent être inclus dans une instruction SQL que si leurs types de données peuvent être déduits à partir d’un autre opérande dans l’instruction. Par exemple, dans une expression arithmétique telle que ? + COLUMN1, le type de données du paramètre peut être déduit du type de données de la colonne nommée représentée par COLUMN1. Une application ne peut pas utiliser de marqueur de paramètre si le type de données ne peut pas être déterminé.

Le tableau suivant décrit comment un type de données est déterminé pour plusieurs types de paramètres, conformément à SQL-92. Pour obtenir une spécification plus complète sur l’inférence du type de paramètre lorsque d’autres clauses SQL sont utilisées, consultez la spécification SQL-92.

Emplacement du paramètre Type de données supposé
Opérande d’un opérateur arithmétique ou de comparaison binaire Identique à l’autre opérande
Premier opérande d’une clause BETWEEN Identique au deuxième opérande
Deuxième ou troisième opérande d’une clause BETWEEN Identique au premier opérande
Expression utilisée avec IN Identique à la première valeur ou à la colonne de résultat de la sous-requête
Valeur utilisée avec IN Identique à l’expression ou à la première valeur s’il existe un marqueur de paramètre dans l’expression
Valeur de modèle utilisée avec LIKE VARCHAR
Valeur de mise à jour utilisée avec UPDATE Identique à la colonne de mise à jour