2009-02-10 8 views
0

У меня есть отчет, который выполняется хранимая процедура:В SSRS 2005, необходимо объявить скалярную переменную

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID 

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

"Must declare scalar variable "@ProjectID" 

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

ответ

2

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

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

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

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

2

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

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

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

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

+0

Удаление дополнительных квадратных скобок из SQL в BIDS Query Designer было для меня ключом. Спасибо! – leqid