У меня есть отчет, что я отправляю параметр, с которым работал просто отлично.объявлен параметр отчета:
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?Есть ли способ настроить верхний предел, чтобы быть большим числом?
любой и вся помощь будет оценена.спасибо!