ssrs ReportParameter лимит строки массива конструктора? - PullRequest
0 голосов
/ 03 апреля 2012

У меня есть отчет, что я отправляю параметр, с которым работал просто отлично.объявлен параметр отчета:

string[]  pclist = new string(){ "A", "B", "C" };
ReportParameter pcode = new ReportParameter( "pcode", pclist, false );

, который дает мне новый параметр отчета, который инициализируется массивом строк из 3 значений.пока все хорошо.

внутри отчета, параметр 'pcode' определен как 'String' и используется как:

...
and PCode in ( @pcode )
...

недавно, потому что значения для параметранужно было изменить в зависимости от того, кто вошел в систему, мы изменили это так, что параметр получает свой строковый массив из возвращаемого значения вызова метода.(метод получает значения из базы данных):

ReportParameter pcode = new ReportParameter( "pcode", FetchParams("X"), false );

FetchParams ("X") выполняет выборку в базе данных и возвращает строку [] значений.Большую часть времени он работает нормально.однако иногда отчет не запускается и возвращает только сообщение об ошибке:

The 'pcode' parameter is missing a value

мы определили, что иногда есть десятки значений, возвращаемых FetchParams ("X") ,когда число значений в строке [] становится слишком большим, отчет завершается с этим сообщением об ошибке.по-видимому, существует некоторый верхний предел для числа значений, которые можно использовать для создания экземпляра объекта ReportParameter.

Первоначально мы думали, что ограничение может быть в самом сервере sql как ограничение на количество значенийэто может быть обработано предложением in .однако сообщение об ошибке, по-видимому, не подтверждает этот вывод.

edit : в данном конкретном случае показаны метод проб и ошибок, 33 - это верхний предел количества значений в строкемассив.

У кого-нибудь есть опыт решения этой проблемы?существует ли верхний предел для количества значений в массиве, передаваемых в ctor ReportParameter?Есть ли способ настроить верхний предел, чтобы быть большим числом?

любой и вся помощь будет оценена.спасибо!

1 Ответ

0 голосов
/ 04 апреля 2012

hokay, ребята, вот реальный ответ на этот кусочек тайны.

в отчете есть параметр pcode.у параметра 'pcode' есть источник данных, который создает список выпадающих значений.

теперь код, который запускает отчет, генерирует список значений для параметра pcode.когда список значений передается в отчет, если есть значение, которое не соответствует списку отчета *1005*, сгенерированному из его источника данных, вы получаете сообщение об ошибке ssrs:

The 'pcode' parameter is missing a value

ужасно.но это m $ для тебя.

для записи, похоже, нет ограничения на количество значений в массиве строк, передаваемых в ctor ReportParameter ... что и приходит сообщение об ошибкеиз ssrs, а не кода, генерирующего объект ReportParameter.

надеюсь, что это может помочь кому-то еще, у кого есть эта проблема.

...