Почему подписка на основе данных в SSRS 2005 не похожа на мою хранимую процедуру? - PullRequest
1 голос
/ 16 марта 2010

Я пытаюсь определить управляемую данными подписку для отчета в SSRS 2005.

На шаге 3 установки вас просят:

"команда или запрос, который возвращает список получателей и дополнительно возвращает поля, используемые для изменения настроек доставки и значений параметров отчета для каждого получателя"

Это я написал, и он возвращает данные без помех. Я нажимаю «Далее», и он переходит к следующему экрану в настройках, в котором есть все переменные, которые нужно установить для DDS, и в каждом случае у него есть опция «Выбрать значение из базы данных»

Я выбираю этот переключатель и нажимаю раскрывающийся список. Нет доступных мне полей.

Теперь единственный способ изменить количество параметров, возвращаемых SP, - это заставить SP записать SQL в переменную nvarchar, а затем в конце выполнить переменную как sql. Я проверил это в Management Studio, и он возвращает ожидаемые поля. Я даже назвал их в честь полей в SSRS, но в выпадающих списках имена не помещаются.

Я даже вынул тело запроса из сохраненного процесса, проверил его в SSRS и затем попробовал. Это тоже не работает.

Может кто-нибудь пролить свет на то, что я делаю неправильно?

1 Ответ

4 голосов
/ 16 марта 2010

Возможно, вам понадобится запустить сохраненный процесс примерно так:

CREATE PROCEDURE [GetRecipients]
AS

SET NOCOUNT ON
If 1=0
BEGIN
Select CAST(NULL as nvarchar(50)) as RecipientEmail,
CAST(NULL as integer) as  Param1, 
CAST(NULL as nvarchar(10)) as Param2,
CAST(NULL as DATETIME) as Param3
END

... введите свой код здесь ...

End;  

Это было необходимо для процедуры, которую я использовал в качестве источника данных в SSIS, которая использовала временные таблицы. Выбор в верхней части с форматом окончательного вывода никогда не выполняется из-за contstruct If, но он позволяет SSIS (и, возможно, SSRS) видеть и получать метаданные для вывода. Я полагаю, что это связано с тем, что службы SSIS и службы SSRS ищут в вашем коде первый вариант выбора, чтобы попытаться получить метаданные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...