KB2563924 — FIX: сообщение об ошибке "входящий поток табличных данных (TDS)" является неверным ", когда функция SQLPutData вставляет SQL_NULL_DATA значение в TVP в SQL Server 2008 R2

Применимо к: SQL Server 2008 R2

Корпорация Майкрософт распространяет исправления Microsoft SQL Server 2008 R2 как один файл для загрузки. Поскольку исправления являются кумулятивными, каждый новый выпуск содержит все исправления и исправления для системы безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2.

Проблемы


Рассмотрим следующий сценарий.
  • У вас есть компьютер, на котором установлен Microsoft SQL Server 2008 R2.
  • Вы запускаете клиентское приложение, которое использует драйвер ODBC для собственного клиента SQL Server 2008 R2 для привязки возвращающего табличное значение параметра в столбце данных на этапе выполнения.
  • Клиентское приложение вызывает функцию SQLPutData , чтобы изменить параметр, возвращающий табличное значение, на SQL_NULL_DATA .
В этом сценарии клиентское приложение не вызывает функцию SQLPutData , и появляется следующее сообщение об ошибке:
[28000]-[Microsoft] [клиент SQL Server Native Client 10.0] [SQL Server] Неверный протокол входящего потока табличных данных (TDS). Неожиданное завершение потока

Причина


Эта проблема возникает из-за того, что драйвер ODBC не отправляет в параметр, возвращающий табличное значение, длину данных SQL_NULL_DATA значения.

Решение


Чтобы устранить эту проблему, примените к компьютеру, на котором установлен Microsoft SQL Server 2008 R2 Native Client, исправление, описанное ниже.

Сведения о накопительном пакете обновления

SQL Server 2008 R2 с пакетом обновления 1 (SP1)

Исправление для этой проблемы впервые выпущено в накопительном обновлении 1 для SQL Server 2008 R2 с пакетом обновления 1 (SP1). Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления, щелкните следующий номер статьи базы знаний Майкрософт:
2544793 Накопительный пакет обновления 1 для SQL Server 2008 R2 с пакетом обновления 1 (SP1)
Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
2567616 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2 с пакетом обновления 1 (SP1)

SQL Server 2008 R2

Исправление для этой проблемы впервые выпущено в накопительном обновлении 8. Для получения дополнительных сведений о том, как получить этот накопительный пакет обновления для SQL Server 2008 R2, щелкните следующий номер статьи базы знаний Майкрософт:
2534352 Накопительный пакет обновления 8 для SQL Server 2008 R2
Примечание. Поскольку сборки являются кумулятивными, каждый новый выпуск исправлений содержит все исправления и все исправления безопасности, которые были включены в предыдущий выпуск исправлений для SQL Server 2008 R2. Рекомендуется установить последнюю версию исправления, которая включает это исправление. Дополнительные сведения см. в следующей статье базы знаний Майкрософт:
981356 Сборки SQL Server 2008 R2, выпущенные после выпуска SQL Server 2008 R2

Статус


Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Ссылки


Дополнительные сведения о функции SQLPutData можно найти на веб-сайте MSDN по следующему адресу:Дополнительные сведения о том, как использовать столбец данных на этапе выполнения, можно найти на веб-сайте MSDN по следующему адресу:Дополнительные сведения о возвращающих табличное значение параметрах можно найти на веб-сайте MSDN по следующему адресу:Чтобы получить дополнительные сведения о модели добавочного обслуживания для SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
935897 Модель обслуживания изменений, используемая рабочей группой SQL Server, предоставляет модель ISM для распространения исправлений обнаруженных проблем
Чтобы получить дополнительные сведения о схеме присвоения имен обновлениям SQL Server, щелкните следующий номер статьи базы знаний Майкрософт:
822499 Новая схема присвоения имен пакетам обновлений программного обеспечения Microsoft SQL Server
Чтобы получить дополнительные сведения о терминологии обновления программного обеспечения, щелкните следующий номер статьи базы знаний Майкрософт:
824684 Стандартные термины, используемые при описании обновлений программных продуктов Майкрософт