SQLBindParameter

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLBindParameter peut éliminer le fardeau de la conversion de 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.

Remarque

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

Si le pilote ODBC SQL Server Native Client rencontre une erreur sur un seul élément de tableau 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 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 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 passé 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 être définie sur SQL_SS_LENGTH_UNLIMITED, indiquant qu’il n’existe aucune limite à 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, ColumnSize doit être définie sur SQL_SS_LENGTH_UNLIMITED 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 définir 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 des paramètres aux champs de descripteur pour les paramètres table, consultez Liaison et transfert de données des paramètres table et 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ètres 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é 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 date et d’heure (ODBC).

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

SQLBindParameter prend en charge les types clR définis par l’utilisateur (UDT). Pour plus d’informations, consultez Les types CLR définis par l’utilisateur (ODBC) volumineux.

Voir aussi

Détails de l’implémentation d’API ODBC
SQLBindParameter, fonction