none
Data Source Dinamico RRS feed

  • Pergunta

  • Boa tarde a todos,

    Gostaria de criar um data source dinamico no reporting services, na verdade já criei colocando na conection string como o exemplo abaixo:

    ="Data Source=" & parameters!serverlist.Value

    Porém só acesso através do combo um valor por vez, ou seja, acesso um servidor por vez, gostaria de acessar todos os servidores de uma vez através de multiple values.

    Grato,

    Maurício
    segunda-feira, 13 de maio de 2013 17:38

Todas as Respostas

  • Maurício, bom dia.

    Não entendi o seu objetivo final. A idéia não é possuir um relatório que pode utilizar vários sources, fazendo basicamente um "load Balance" do relatório?

    Qual o próposito de acessar o mesmo relatório com datasources diferentes de uma vez só ?

    Abs;


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    terça-feira, 14 de maio de 2013 13:55
  • Olá,

    O Objetivo é extrair informações do ambiente todo, como por exemplo todos os bancos de todos as instancias em um mesmo relatório, posteriormente utilizar o recurso a título de checklist.

    Grato,

    Maurício

    quarta-feira, 15 de maio de 2013 14:30
  • Mauricio, perfeito, entendi o objetivo :)

    O problema é que quando vc renderiza o relatório, o mesmo precisa estar apontado para um único datasource. O RS não consegue no momento da renderização se conectar em vários data sources para extrair um dado.

    O ideal seria que vc centralizasse este dado antes do RS renderizar os dados no relatório.

    Vc pode utilizar uma stored procedure para tal.

    Escolha um servidor onde o relatório terá um data source fixo.

    Dentro da procedure vc cria a rotina que irá varrer todos os seus servidores, buscando a informação que precisa e inserindo em uma tabela única de trabalho. Para deixar mais dinâmico, vc pode criar uma tabela com os nomes dos sevidores e desta forma, parametrizar esta tabela dentro da procedure.

    No final da procedure vc faz o "select campos from TabelaCentralizada". Desta forma vc terá uma procedure retornando um result set.

    Desta forma, vc colocará a chamada desta procedure no dataset dentro do seu relatório.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quarta-feira, 15 de maio de 2013 14:51
  • Eduardo,

    O Rs consegue se comunicar com varios datasources em um mesmo relatorio. Mas nao datasources criados dinamicamente. Se o numero de servidores que voce quer conectar for fixo, voce pode criar um datasource conectado a cada servidor (com o respectivo dataset) e o relatorio ira consultar todos os datasources.

    A forma como Eduardo recomendou de agregar na base de dados funciona, desde que todos os dadasources estejam no mesmo servidor.

    Uma outra alternativa que voce pode usar, para o efeito de checklist, eh um subreport que tem como parametro a informacao do datasource, esse subrelatorio eh responsavel por monstrar a informacao de 1 servidor somente. No seu relatorio crie um dataset com a lista de todos os datasources (que voce pode ou trazer de um banco, ou criar via xml direto na query). use esse dataset para alimentar uma tabela que usa o subreport acima, passando o datasource como parametro.

    A vantagem de usar subreport eh que se um dos dadasources falhar, ele nao vai falhar o relatorio pai.

    Att

    Boreki


    Boreki[MSFT] - SQL Server Reporting Services

    quarta-feira, 15 de maio de 2013 16:50
  • Sim extado Boreki.

    O que eu quis dizer é que no momento que vc manda "executar" o relatório, não é possível utilizar múltiplas conexões dinâmicas. O RS utilizará a conexão definada no dataset, ou pelo um parâmetro previamente setado antes de renderizar.

    Abs.


    Eduardo Gomes - http://www.h1solucoes.com.br - Twitter: @edugp_sp

    quarta-feira, 15 de maio de 2013 19:21
  • Amigos,

    O que poderia ser feito é algo que eu realizei a alguns anos, mesmo os dados estando distribuídos em bases distintos, realizar a consulta as dados e armazenar em um determinado banco com todos os dados que devem ser apresentados.

    Com isso em seu Reporting Services, você poderá apontar especificamente para o Banco que contém todos os registros agrupados.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quinta-feira, 16 de maio de 2013 16:19