ИСПРАВЛЕНО: сообщение об ошибке при запуске приложения на основе SQL Server 2008, вызывающего функцию SQLBindParameter: "Неправильный поток протокола удаленного вызова процедур (RPC) incoming tabular data stream (TDS)"

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

Проблема

В приложении используется драйвер SQL Server 2008 Native Client. Функция SQLBindParameter вызывается для привязки параметра с широким типом данных для запроса. Например, можно привязать параметр типа данных NCHAR или NVARCHAR. Приложение передает значение больше 4000 в параметр ColumnSize функции SQLBindParameter. При выполнении запроса в приложении появляется следующее сообщение об ошибке:

Примечание

Некорректный поток протокола удаленного вызова процедур (RPC) потока входящих табличных данных (TDS). Параметр 1 (""): тип данных 0xE7 имеет недопустимую длину данных или длину метаданных.

Примечание. Это сообщение об ошибке относится к серверу. Если вместо этого приложение использует драйвер SQL Server 2005 Native Client, вы получите следующее сообщение об ошибке на стороне клиента, как и ожидалось:

Примечание

[Майкрософт][SQL Native Client]Недопустимое значение точности

Причина

Эта проблема возникает из-за того, что драйвер SQL Server 2008 Native Client не выполняет проверку размера входного столбца во время выполнения для функции SQLBindParameter. Кроме того, драйвер удваивает размер столбца, если размер входного столбца больше 4000, а параметр имеет тип данных "широкий символ". Поэтому SQL Server возвращает ошибку на стороне сервера, когда параметр превышает верхний предел (8000).

Примечание. Драйвер SQL Server 2005 Native Client выполняет проверку во время выполнения размера входного столбца. Поэтому, если размер входного столбца больше 8000, драйвер SQL Server 2005 Native Client возвращает клиентскую ошибку.

Решение

Исправление для этой проблемы было впервые выпущено в накопительном пакете обновления 3 для SQL Server 2008 с пакетом обновления 1. Дополнительные сведения об этом накопительном пакете обновления см. в следующей статье базы знаний Майкрософт:

971491 Накопительный пакет обновления 3 для SQL Server 2008 с пакетом обновления 1Примечание Поскольку сборки являются накопительными, каждый новый выпуск исправления содержит все исправления и исправления для системы безопасности, которые вошли в предыдущий выпуск исправления SQL Server 2008 г. Корпорация Майкрософт рекомендует рассмотреть возможность применения последнего выпуска исправления, содержащего это исправление. Для просмотра статьи в базе знаний Майкрософт щелкните следующий номер статьи:

970365 Сборки SQL Server 2008 г., выпущенные после выпуска SQL Server 2008 с пакетом обновления 1 (SP1)
Исправления для Microsoft SQL Server 2008 предназначены для определенных пакетов обновления для SQL Server. Необходимо установить исправление для SQL Server 2008 с пакетом обновления 1 (SP1) для установки SQL Server 2008 с пакетом обновления 1. По умолчанию все исправления, предоставляемые в пакете обновления для SQL Server, входят в следующий пакет обновления для SQL Server.

Состояние

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

Ссылки

Дополнительные сведения о модели добавочного обслуживания для SQL Server см. в следующей статье базы знаний Майкрософт:

935897 Команда SQL Server предоставляет модель добавочного обслуживания для предоставления исправлений для обнаруженных проблем

Дополнительные сведения о схеме именования для обновлений SQL Server см. в следующей статье базы знаний Майкрософт:

822499 Новая схема именования пакетов обновления программного обеспечения Microsoft SQL Server

Дополнительные сведения о терминологии обновления программного обеспечения см. в следующей статье базы знаний Майкрософт:

824684 Стандартные термины, используемые при описании обновлений программного обеспечения Майкрософт