KB2563924 : résoudre l’erreur « le flux de protocole TDS est incorrect » lorsque la fonction SQLPutData insère le SQL_NULL_DATA valeur dans un TVP dans SQL Server 2008 R2

S’applique à : SQL Server 2008 R2

Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 sous la forme d’un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et les correctifs de sécurité inclus dans la version de correctif SQL Server 2008 R2 antérieure.

Symptômes


Prenons l’exemple du scénario suivant :
  • Vous avez un ordinateur exécutant Microsoft SQL Server 2008 R2.
  • Vous exécutez une application client qui utilise le pilote ODBC du client natif SQL Server 2008 R2 pour lier un paramètre de table de valeurs en tant que colonne de données au moment de l’exécution.
  • L’application cliente appelle la fonction SQLPutData pour remplacer le paramètre table-value par la valeur SQL_NULL_DATA .
Dans ce scénario, l’application cliente n’appelle pas la fonction SQLPutData et le message d’erreur suivant s’affiche :
[28000]-[Microsoft] [SQL Server Native Client 10.0] [SQL Server] le flux de protocole TDS est incorrect. Le flux s’est arrêté de manière inattendue

Cause


Ce problème se produit car le pilote ODBC n’envoie pas la longueur des données de la SQL_NULL_DATA valeur au paramètre table.

Résolution


Pour résoudre ce problème, appliquez le correctif suivant sur un ordinateur sur lequel est installé le client natif SQL Server 2008 R2.

Informations sur les mises à jour cumulatives

SQL Server 2008 R2 Service Pack 1

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2544793 Package de mise à jour cumulative 1 pour SQL Server 2008 R2 Service Pack 1
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 Service Pack 1

SQL Server 2008 R2

Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 8. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2534352 Package de mise à jour cumulative 8 pour SQL Server 2008 R2
Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
981356 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2

Statut


Microsoft a confirmé l’existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.

Références


Pour plus d’informations sur la fonction SQLPutData , visitez le site Web MSDN suivant :Pour plus d’informations sur l’utilisation de la colonne données au moment de l’exécution, visitez le site Web MSDN suivant :Pour plus d’informations sur les paramètres table, consultez le site Web MSDN suivant :Pour plus d’informations sur le modèle de service incrémentiel pour SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
935897 Un modèle de maintenance incrémentiel est disponible auprès de l’équipe SQL Server pour obtenir des correctifs pour les problèmes signalés
Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
822499 Nouveau schéma d’affectation de noms pour les packages de mise à jour logicielle Microsoft SQL Server
Pour plus d’informations sur la terminologie des mises à jour logicielles, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
824684 Terminologie standard utilisée pour décrire les mises à jour logicielles Microsoft