Partager via


SQLPutData

Les restrictions suivantes s'appliquent lors de l'utilisation de SQLPutData pour envoyer plus de 65 535 octets de données (pour SQL Server version 4.21a) ou 400 Ko de données (pour SQL Server version 6.0 ou ultérieure) pour une colonne SQL_LONGVARCHAR (text), SQL_WLONGVARCHAR (ntext) ou SQL_LONGVARBINARY (image) :

  • Le paramètre référencé peut être insert_value dans une instruction INSERT.

  • Le paramètre référencé peut être expression dans la clause SET d'une instruction UPDATE.

L'annulation d'une séquence d'appels SQLPutData qui fournissent des données en blocs à un serveur exécutant SQL Server provoque une mise à jour partielle de la valeur de la colonne lors de l'utilisation de la version 6.5 ou d'une version antérieure. La colonne text, ntext ou image qui était référencée lorsque SQLCancel a été appelé est définie comme une valeur d'espace réservé intermédiaire.

[!REMARQUE]

Le pilote ODBC SQL Server Native Client ne prend pas en charge la connexion à SQL Server version 6.5 ou antérieure.

Diagnostics

Il existe un code SQLSTATE spécifique à SQL Server Native Client pour SQLPutData:

SQLSTATE

Erreur

Description

22026

Chaîne de données ou longueur non correspondante

Si la longueur en octets des données à envoyer a été spécifiée par une application, par exemple avec SQL_LEN_DATA_AT_EXEC(n) où n est supérieur à 0, le nombre total d'octets donné par l'application via SQLPutData doit correspondre à la longueur spécifiée.

SQLPutData et paramètres table

SQLPutData est utilisé par une application lors de l'utilisation d'une liaison de ligne variable avec des paramètres table. Le paramètre StrLen_Or_Ind indique que la liaison est prête pour que le pilote collecte des données pour la ou les lignes suivantes des données de paramètre table, ou qu'aucune ligne n'est plus disponible :

  • Une valeur supérieure à 0 indique que le jeu suivant de valeurs de ligne est disponible.

  • La valeur 0 indique qu'il ne reste plus de lignes à envoyer.

  • Toute valeur inférieure à 0 est une erreur et entraîne la consignation d'un enregistrement de diagnostic avec SQLState HY090 et le message « Longueur de chaîne ou de mémoire tampon non valide ».

Le paramètre DataPtr est ignoré, mais doit être défini avec une valeur non NULL. Pour plus d'informations, consultez la section sur la liaison de ligne de paramètre table variable dans Liaison et transfert de données de paramètres table et de valeurs de colonnes.

Si StrLen_Or_Ind a toute autre valeur que SQL_DEFAULT_PARAM ou un nombre entre 0 et SQL_PARAMSET_SIZE (c'est-à-dire, le paramètre ColumnSize de SQLBindParameter), il s'agit d'une erreur. Cette erreur conduit SQLPutData à retourner SQL_ERROR: SQLSTATE=HY090, « Longueur de chaîne ou de mémoire tampon non valide ».

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

Prise en charge de SQLPutData pour les fonctionnalités 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.

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

Prise en charge des grands types définis par l'utilisateur CLR par SQLPutData

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

Voir aussi

Concepts

Détails d'implémentation d'une API ODBC

Autres ressources

Fonction SQLPutData