Share via


SQLBindParameter

SQLBindParameter peut éliminer le fardeau que représente la conversion des données lorsqu'il est utilisé pour fournir des données pour le pilote ODBC SQL Server Native Client, générant ainsi des gains de performances significatifs pour les composants client et serveur des applications. D'autres avantages incluent une perte réduite de précision lors de l'insertion ou de la mise à jour de types de données numériques approximatifs.

Notes

Lors de l'insertion de données de type char et wchar dans une colonne image, la taille des données passées est utilisée, par opposition à la taille des données après conversion vers un format binaire.

Si le pilote ODBC SQL Server Native Client rencontre une erreur sur un élément de tableau unique d'un tableau de paramètres, le pilote continue d'exécuter l'instruction pour les éléments de tableau restants. Si l'application a lié un tableau d'éléments d'état de paramètre pour l'instruction, les lignes des paramètres qui génèrent des erreurs peuvent être déterminées à partir de ce tableau.

Lors de l'utilisation du pilote ODBC SQL Server Native Client, spécifiez SQL_PARAM_INPUT lors de la liaison de paramètres d'entrée. Spécifiez seulement SQL_PARAM_OUTPUT ou SQL_PARAM_INPUT_OUTPUT lors de la liaison de paramètres de procédure stockée définis avec le mot clé OUTPUT.

SQLRowCount est peu fiable avec le pilote ODBC SQL Server Native Client si un élément d'un tableau de paramètres liés provoque une erreur dans l'exécution de l'instruction. L'attribut d'instruction ODBC SQL_ATTR_PARAMS_PROCESSED_PTR signale le nombre de lignes traitées avant l'erreur. L'application peut alors parcourir son tableau d'état de paramètre pour découvrir le nombre d'instructions exécutées avec succès, si nécessaire.

Liaison de paramètres pour les types de caractères SQL

Si les données SQL passées sont de type caractère, ColumnSize est la taille en caractères (et non en octets). Si la longueur de la chaîne de données en octets est supérieure à 8 000, la valeur SQL_SS_LENGTH_UNLIMITED doit être affectée à ColumnSize, ce qui indique qu'il n'y a pas de limite quant à la taille du type SQL.

Par exemple, si le type de données SQL est SQL_WVARCHAR, ColumnSize ne doit pas être supérieur à 4 000. Si la longueur réelle des données est supérieure à 4 000, la valeur SQL_SS_LENGTH_UNLIMITED doit être affectée à ColumnSize afin que nvarchar(max) soit utilisé par le pilote.

SQLBindParameter et paramètres table

Comme d'autres types de paramètres, les paramètres table sont liés par SQLBindParameter.

Une fois qu'un paramètre table a été lié, ses colonnes sont également liées. Pour lier les colonnes, vous appelez SQLSetStmtAttr pour attribuer à SQL_SOPT_SS_PARAM_FOCUS l'ordinal du paramètre table. Ensuite, appelez SQLBindParameter pour chaque colonne dans le paramètre table. Pour retourner aux liaisons de paramètre de premier niveau, attribuez à SQL_SOPT_SS_PARAM_FOCUS la valeur 0.

Pour plus d'informations sur le mappage de paramètres à des champs de descripteur pour des paramètres table, consultez Liaison et transfert de données de paramètres table et de valeurs de colonnes.

Pour plus d'informations sur les paramètres table, consultez Paramètres table (ODBC).

Prise en charge de SQLBindParameter pour les fonctionnalités de date et heure améliorées

Les valeurs de paramètre des types date/heure sont converties comme cela est décrit dans Conversions de C en SQL. Notez que pour les paramètres de type time et datetimeoffset, ValueType doit être spécifié comme SQL_C_DEFAULT ou SQL_C_BINARY, si leurs structures correspondantes (SQL_SS_TIME2_STRUCT et SQL_SS_TIMESTAMPOFFSET_STRUCT) sont utilisées.

Pour plus d'informations, consultez Améliorations de la date et de l'heure (ODBC).

Prise en charge SQLBindParameter pour les types CLR volumineux définis par l'utilisateur

SQLBindParameter prend en charge les types CLR volumineux définis par l'utilisateur. Pour plus d'informations, consultez Types CLR volumineux définis par l'utilisateur (ODBC).