В SSRS 2005 необходимо объявить скалярную переменную - PullRequest
0 голосов
/ 10 февраля 2009

У меня есть отчет, который запускает сохраненный процесс:

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

ProjectID - это раскрывающийся список с множественным выбором. Когда выбран один проект, он работает нормально. Если я выбираю несколько проектов, я получаю сообщение об ошибке:

"Must declare scalar variable "@ProjectID"

Он отлично работает, когда я запускаю его на вкладке «Данные», однако при переводе в режим предварительного просмотра у меня возникают проблемы.

Ответы [ 2 ]

2 голосов
/ 18 октября 2011

Произошла такая же ошибка: необходимо объявить скалярную переменную.

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

В моем случае я использовал OPENQUERY для вызова куба служб анализа и ссылался на имена полей, которые содержат много квадратных скобок. К сожалению, SSRS любит переформатировать ваш код, чтобы красиво отформатированный «[Measures]. [SomeMeasure]» превратился в этот ужасный беспорядок [[Measures]]. [Somemeasure]]]

Если вы отредактируете этот запрос в другом инструменте, а затем снова скопируете его обратно в ssrs, тогда ssrs не сможет прочитать этот синтаксис! Даже при том, что это генерирует это! Поэтому удалите все лишние квадратные скобки, замените двойные кавычки, и бум снова работает и генерирует ваши параметры.

2 голосов
/ 10 февраля 2009

Я получил нечто похожее на работу, построив запрос как выражение - в вашем примере

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

Некоторый код в целевом SP разделяет строку множественного выбора во временную таблицу, которая используется в соединениях для создания выходных данных.

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

...