SSRS дает ошибку, поскольку HResult E_FAIL был возвращен после вызова COM-компонента - PullRequest
2 голосов
/ 15 января 2020

Когда я запускаю отчет SSRS с данными, имеющими 150 000 символов, он выдает ошибку

HResult E_FAIL был возвращен после вызова COM-компонента

Я используя одно текстовое поле для отображения этих данных. Для любых других данных это работает отлично. Я искал на некоторых других форумах, и они говорят, что вы можете печатать только 32 000 символов с помощью текстового поля SSRS в 2008 году, но тогда почему он работает для некоторых других данных с 150 000 символов и не работает с этими конкретными данными.

Данные имеют цифры, как показано ниже

1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890121234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 

Для нормальных данных работает нормально. Тип данных столбца сервера SQL - nvarchar (max), и в качестве данных он имеет такие числа только для 150 000.

Иногда он возвращает результат, так как значение не попадает в ожидаемый диапазон, но это текстовый столбец, так почему же он рассматривает это как число. Другой пример данных содержит 100000 символов в виде строк и затем оставшиеся 50000 символов в виде чисел, разделенных пробелами, как указано выше, например, 1234567890 1234567890, например, длиной до 50000 символов.

Я не уверен, как разобраться с этой ошибкой.

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Мы не нашли решения технической ошибки, но после обсуждения этого вопроса с сотрудниками на месте мы пришли к выводу, что данные находятся в одной строке, если в данные вставляются разрывы строк, то SSRS работает нормально. Итак, мы предложили исправление данных для этой проблемы, а не из-за технической ошибки SSRS. Мы не сделали никаких изменений в SSRS. Если в данные вставляются разрывы строк, все работает нормально.

0 голосов
/ 20 января 2020

Не могли бы вы попробовать набор данных, который не включает в себя ни одной таблицы?

Следующее работало в простом отчете для SQL2008 R2

select 
    Col1, len(Col1) AS LenCol1,
    Col2,
    Col3, len(Col3) AS LenCol3
from
(
select 
    replicate(cast('abcdefg hijklmnop' as nvarchar(max)), 10000) + char(13) +convert(nvarchar(20), getdate(), 120) as Col1,
    12345 as Col2,
    replicate(cast('1234567890 1234567890' as nvarchar(max)), 7000) + '------' +convert(nvarchar(20), getdate(), 120) as Col3
) as src
...