В SSRS 2005 необходимо объявить скалярную переменную

StackOverflow https://stackoverflow.com/questions/532141

Вопрос

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

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

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

"Must declare scalar variable "@ProjectID"

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top