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 et ultérieure) pour une colonne SQL_LONGVARCHAR (text
), SQL_WLONGVARCHAR (ntext
) ou SQL_LONGVARBINARY (image
) :
Le paramètre référencé peut être le insert_value dans une instruction INSERT.
Le paramètre référencé peut être une expression dans la clause SET d’une instruction UPDATE.
L’annulation d’une séquence d’appels SQLPutData qui fournissent des données dans des blocs à un serveur exécutant SQL Server entraîne une mise à jour partielle de la valeur de la colonne lors de l’utilisation de la version 6.5 ou antérieure. La text
colonne , ntext
ou image
référencée lors de l’appel de SQLCancel est définie sur une valeur d’espace réservé intermédiaire.
Notes
Le pilote ODBC SQL Server Native Client ne prend pas en charge la connexion à SQL Server version 6.5 et antérieure.
Diagnostics
Il existe un SQL Server Native Client SQLSTATE spécifique pour SQLPutData :
SQLSTATE | Error | Description |
---|---|---|
22026 | Chaîne de données ou longueur non correspondante | Si la longueur des données en octets à 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 de la liaison de lignes variables avec des paramètres table. Le paramètre StrLen_Or_Ind indique qu’il est prêt 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 supplémentaire n’est 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 sur une valeur non NULL. Pour plus d’informations, consultez la section relative à la liaison de lignes TVP variable dans Liaison et transfert de données de Table-Valued paramètres et valeurs de colonne.
Si StrLen_Or_Ind a une valeur autre que SQL_DEFAULT_PARAM ou un nombre compris entre 0 et le SQL_PARAMSET_SIZE (autrement dit, 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 décrit dans Conversions de C en SQL.
Pour plus d’informations, consultez Améliorations de date et d’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 Grands types de User-Defined CLR (ODBC).