Динамическое изменение источника данных в Sql Reporting Servces 2008 - PullRequest
1 голос
/ 18 января 2012

Я хочу использовать те же отчеты (.rdl) для создания отчетов для 24 баз данных.

Например, если в моих отчетах есть пользовательская таблица (.rdl), то источник данных для отчета (.rdl) должен динамически меняться. Сейчас я делаю 24 разных отчета для 24 баз данных.

Я хочу один отчет (.rdl) с измененным источником данных во время выполнения.

Ответы [ 2 ]

1 голос
/ 18 января 2012

Для достижения этой цели можно добавить 3 параметра в файл отчета (.rdl)

Имя_сервера

Имя_базы_данных

и при необходимости

Пароль

Затем измените строку подключения для источника данных, например

= "источник данных =" & Параметры! ServerName.Value &"; initial catalog =" & Parameters! DatabaseName.Value

Единственная небольшая проблема с этим подходом - имена параметров видны в URI, поэтому caveat emptor

0 голосов
/ 21 января 2012

Я нашел альтернативное решение моей проблемы. Я создал один (.rdl) файл отчета, в котором использовался пользователь, который имел право на все базы данных, предоставил источник данных в качестве этого пользователя и базу данных, в которой я сделал одну процедуру в базе данных, предположим, что база данных администратора (используется для всех процедура, которая является общей для всех), в этой процедуре я выполнил процедуру, которая присутствует в других базах данных, например:

set @sSql='Execute '+ @databasename + '.'+ @username + '.'+'GetData'
EXEC (@sSql)

где имя пользователя и имя базы данных присутствуют в таблице (для всей базы данных) и имя столбца sentDate, который обновляется до текущей даты после выполнения процедуры для этого databaseName, так что источник данных перемещается на следующий после имени пользователя и имени базы данных после выполнения процедура. И заставил подписку работать через 10 минут, чтобы она могла отправлять отчеты по всем базам данных, получая данные из разных баз данных при каждом выполнении.

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