Description des paramètres

SQLBindParameter a des arguments qui décrivent le paramètre : son type SQL, sa précision et sa mise à l’échelle. Le pilote utilise ces informations ou métadonnées pour convertir la valeur du paramètre en type nécessaire par la source de données. À première vue, il peut sembler que le pilote est en meilleure position pour connaître les métadonnées des paramètres que l’application ; après tout, le pilote peut facilement découvrir les métadonnées d’une colonne de jeu de résultats. Comme il s’avère, ce n’est pas le cas. Tout d’abord, la plupart des sources de données ne permettent pas au pilote de découvrir les métadonnées des paramètres. Deuxièmement, la plupart des applications connaissent déjà les métadonnées.

Si une instruction SQL est codée en dur dans l’application, l’enregistreur d’applications connaît déjà le type de chaque paramètre. Si une instruction SQL est construite par l’application au moment de l’exécution, l’application peut déterminer les métadonnées à mesure qu’elle génère l’instruction. Par exemple, lorsque l’application construit la clause

WHERE OrderID = ?  

il peut appeler SQLColumns pour la colonne OrderID.

La seule situation dans laquelle l’application ne peut pas facilement déterminer les métadonnées de paramètre est lorsque l’utilisateur entre une instruction paramétrable. Dans ce cas, l’application appelle SQLPrepare pour préparer l’instruction, SQLNumParams pour déterminer le nombre de paramètres et SQLDescribeParam pour décrire chaque paramètre. Toutefois, comme indiqué précédemment, la plupart des sources de données ne permettent pas au pilote de découvrir les métadonnées des paramètres. SQLDescribeParam n’est donc pas largement pris en charge.