Службы Reporting Services Соединяют отчет с несколькими базами данных. - PullRequest
1 голос
/ 23 сентября 2011

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

Редактировать Существует функция, называемая строками запросов на основе выражений, которая не появлялась до версии служб отчетов SQL Server 2005. http://blogs.msdn.com/b/bimusings/archive/2006/07/20/673051.aspx Одна версия слишком поздно для меня.

1 Ответ

0 голосов
/ 23 сентября 2011

Одной из самых мощных функций служб Reporting Services является то, что все является выражением, включая SQL для вашего набора данных. Это означает, что вы можете создать свое выражение SQL с нуля.

У нас есть таблица баз данных, представляющая различные снимки наших данных с описанием и именем базы данных. Это используется в качестве запроса для заполнения параметра, из которого пользователь может выбрать, а затем имя базы данных вставляется в SQL, поэтому выражение вашего набора данных выглядит следующим образом:

="SELECT Field1, Field2, Field3 "
&"FROM " & Parameters!Database.Value & ".dbo.MyTable "

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

С серверами должно быть похоже, что-то вроде:

="SELECT Field1, Field2, Field3 "
&"FROM " & Parameters!Server.Value & "." & Parameters!Database.Value & ".dbo.MyTable "

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

...