SQLBindParameter
SQLBindParameter
peut éliminer la charge de conversion des données lorsqu’elle est utilisée pour fournir des données pour le pilote ODBC SQL Server Native Client, ce qui entraîne 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.
Lorsque vous utilisez le pilote ODBC SQL Server Native Client, spécifiez SQL_PARAM_INPUT lors de la liaison des 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 n’est pas fiable avec le pilote ODBC SQL Server Native Client si un élément de tableau 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 le type de données SQL transmis est un type de 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, ColumnSize doit avoir la SQL_SS_LENGTH_UNLIMITED
valeur , ce qui indique qu’il n’existe aucune limite à la taille du type SQL.
Par instance, 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 à SQL_SS_LENGTH_UNLIMITED
4 000, ColumnSize doit être défini sur afin d’être nvarchar(max)
utilisé par le pilote.
SQLBindParameter et paramètres table
Comme les 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 définir SQL_SOPT_SS_PARAM_FOCUS sur l’ordinal du paramètre table. Ensuite, appelez SQLBindParameter pour chaque colonne du 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 des paramètres aux champs de descripteur pour les paramètres table, consultez Liaison et transfert de données des paramètres de Table-Valued et des valeurs de colonne.
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 décrit dans Conversions de C en SQL. Notez que les paramètres de type time
et datetimeoffset
doivent avoir ValueType spécifiés en tant que 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 date et d’heure (ODBC).
Prise en charge SQLBindParameter pour les types CLR volumineux définis par l'utilisateur
SQLBindParameter
prend en charge les grands types CLR définis par l'utilisateur. Pour plus d’informations, consultez Grands types de User-Defined CLR (ODBC).
Voir aussi
Détails de l’implémentation d’API ODBC
Fonction SQLBindParameter