Неверный поток протокола входящего потока табличных данных (TDS) удаленного вызова процедур (RPC).C#

Место общения программистов C#
Ответить
Anonymous
 Неверный поток протокола входящего потока табличных данных (TDS) удаленного вызова процедур (RPC).

Сообщение Anonymous »

По поводу этой ошибки возникает много вопросов, но ни один из них не кажется связанным.

Исходное исключение, которое мы получаем



Поток табличных данных (TDS) для протокола RPC (удаленный вызов процедур) не является важным.

0-Tabellenwertparameter (""), Zeile 0, Spalte 0: Der 0xE7-Datentyp Hat eine ungültige Daten- oder Metadatenlänge.
< /blockquote>


Моя попытка перевода



Неверный поток протокола входящего потока табличных данных (TDS) удаленного вызова процедур (RPC)

0-TableValuedParameter (""), строка 0, столбец 0: тип данных 0xE7 имеет недопустимую длину данных или метаданных.



Версия SqlServer



Microsoft SQL Server 2016 (SP1) (KB3182545) — 13.0.4001.0 (X64)
28 октября 2016 г. 18:17:30
Авторские права (c) Корпорация Microsoft
Standard Edition (64-разрядная версия) в Windows Server 2016 Standard 6.3 (сборка 14393: ) (гипервизор)



Что является причиной этого:

Мы используем определяемые пользователем типы для передачи параметров с табличными значениями. Ошибка воспроизводится при передаче DataTable с одной строкой и столбцом, содержащим String.Empty в качестве параметра для типа, подобного следующему:

Код: Выделить всё

CREATE TYPE dbo.para_table_varchar AS TABLE (value nvarchar(10) COLLATE Latin1_General_ci_ai NOT NULL);
Код C# (.net 4.6.1)

Код: Выделить всё

  DataTable table = new DataTable();
DataColumn column = table.Columns.Add("value", typeof(string));
column.MaxLength = 0;
table.Rows.Add(string.Empty);

SqlParameter para = _cmd.Parameters.Add("@ptable", SqlDbType.Structured, 0);
para.Value = table;
para.TypeName ="dbo.para_table_varchar";
Команда выглядит так

Код: Выделить всё

SELECT * FROM someTable WHERE someColumn IN (SELECT value FROM @ptable)
Это происходит только на упомянутом SQLServer 2016. Около 20 других клиентов не имеют этой проблемы.

Хотя Microsoft описывает здесь эту проблему, предлагаемый обходной путь (установка размера на -1), похоже, не работает.>

Подробнее здесь: https://stackoverflow.com/questions/473 ... tocol-stre
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»