Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá Pessoal.
Gostaria de uma orientação por favor.
Tenho um projeto do qual o objetivo é extrair dados de vários banco de dados do qual tem o mesmo padrão.
Imaginem que queiram saber informações de venda de 5 banco de dados diferentes, porém, apenas mudando de aba no qlikviwer.
Tipo, aba1 = Loja 1, aba2 = Loja2 etc.
A primeira conexão funciona, mas se crio uma mona Main, e coloco a conexão do segundo banco, não da certo.
Existe essa possibilidade?
O banco é Sql server 2008.
Obrigado.
Maciel
Acredito que você precise criar dois SQL´s para salvar em duas tabelas diferentes ou concatená-las, pois oque pode estar acontecendo é substituindo os dados do primeiro banco pelo do segundo banco.
Coloca esse SQL para o banco dois e chama a tabela de loja02.
Exemplo,
Connect banco 01;
Loja01:
SQL banco 01;
Connect banco 02;
Loja02:
SQL banco 02;
Acredito que a partir dessa estrutura você possa ter respostas para as suas dúvidas.
Maciel,
voce pode ter no seu script varias conexoes para varios bancos (Oracle / SQL Server / DB2 / .....).
A cada connect , o Qlik faz um disconnect automático na ultima conexão.
O que nao pode ocorrer é tentar ler uma tabela de um banco que nao esta conectado. Ou seja, faz a conexao, le as tabelas que precisa. Conecta em outro, le as tabelas que precisa. Se precisar voltar a ler o banco A, conecta novamente e assim por diante.
Creio que não esteja sabendo fazer então Alessandro.
Na Main 1, eu fiz a conexão, e carrego alguns dados, funciona;
OLEDB CONNECT TO [Provider=SQLNCLI10.1;Persist Security Info=True;User ID=colibri;Initial Catalog=colibri;Data Source=25.122.187.159;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=SERVER;Initial File Name="";Use Encryption for Data=False;Tag with column collation when possible=False;MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=False;trusted_connection=no;] (XPassword is KAAAXYIGTBNIE);
Na Main 2, eu faço uma cova conexão para um novo servidor, com outra base de dados, que tem as mesmas informações, mas de outra loja, e ai da erro.
Ele carrega a segunda Main, e a primeira desconecta, e não deixa eu fazer como gostaria, que usar duas abas, uma para cada loja.
Maciel,
eu estava falando em abas dentro do script.
O script roda como um todo. Ou seja, o que aparece na tela (e ai nao importa se tem 1 aba ou 10) é todas as linhas do script (considerando que nao tenha if ou exit script....).
O que voce quer pode ser feito lendo os dois bancos e ao entrar em uma aba na tela, usar um disparador e setar o campo loja para a loja que queres mostrar.
Como Poderia apontar para diferenciar, pois os dados são os mesmo. Veja o exemplo.
Este script serva para todas as lojas, o que vai mudar é só a conexão com o banco.
select
Year(data) Ano,
Month(data) Mes,
Day(data) Dia,
tipo_venda as tipo_loja2,
data,grp_nome as grupo_loja2,
prd_nome as produto_loja2,
CAST(qtd as int) as quantidade_loja2,
CAST(vl_unit*qtd as Decimal(15,3)) as valorunit_loja2
from vw_vendascolibri where ST_CANCITEM <> 'A' and ST_CANCELADO='N' AND st_mesa = 'P'
Maciel,
Anexo um exemplo para facilitar o entendimento, basta adaptar.
A separação por aba realmente é necessária? Caso não seja, sugiro você criar um campo para filtrar o usuário escolher qual loja deseja e fazer uso da redução de dados.
Putz, não deixa abrir, excedeu o numero maximo de visualizações.
Já era.
Mas obrigado de qualquer forma.
Maciel,
Acredito que você esteja confundindo as coisas.
O script (Control-E) é executado em sua totalidade, limpando os dados e recarregando conforme a sua lógica.
Depois que ele é executado, todos os dados ficam disponíveis para consumo pela interface (Abas do seu print). O script não é re-executado a cada mudança de aba.
O mais racional seria nem ter abas separadas, na minha humilde opinião, o campo "Loja" seria apenas mais um filtro na sua tela, permitindo selecionar uma ou mais lojas (ou nenhuma trazendo o consolidado).
Por favor, pressione Control+T e cole aqui a imagem que irá aparecer para continuarmos ajudando
O campo chave nesse caso seria o loja_id.
Não sei como separar, ou seja, seleciono loja 1, ele mostra as informações dela, e assim por diante.
Obrigado pela ajuda.
siga esses passos
1- String de conexao banco1
2- Coloca sua query de select
3-String de de conexao banco2
4-Copia a query anterior e cole o select novamente depois da string do banco 2