Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Marcio_Campestrini
Specialist
Specialist

Carga de arquivos QVD

Bom dia a todos

Eu estou com uma dúvida em relação a carga de dados vindos de arquivos QVD.

Estou fazendo uma carga parcial (leituras de 100 linhas, conforme script abaixo), e após carregar dois arquivos, o total de linhas da tabela de destino (PedidoVenda) é de 300 linhas e não 200, como era o esperado.

Alguém tem uma ideia do motivo?

Let $(vL.Ano) = Year(Today(1));

Let $(vL.Linha) = 100;

For i = $(vL.Ano) - 1 To $(vL.Ano)

  PedidoVenda:

  First $(vL.Linha)

  Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd);

Next

Obrigado!

Márcio Rodrigo Campestrini
Labels (2)
7 Replies
lucianosv
Specialist
Specialist

Bom dia.

Coloca dentro do loop a resolução do nome do qvd e debuga para saber o que está lendo duplicado.

Att.

Luciano.

Em 30/12/2014, às 08:35, Márcio Rodrigo Campestrini <qcwebmaster@qlikview.com> escreveu:

Qlik Community

Carga de arquivos QVD

criado por Márcio Rodrigo Campestrini em Qlik Brasil - Visualize a discussão completa

Bom dia a todos

Eu estou com uma dúvida em relação a carga de dados vindos de arquivos QVD.

Estou fazendo uma carga parcial (leituras de 100 linhas, conforme script abaixo), e após carregar dois arquivos, o total de linhas da tabela de destino (PedidoVenda) é de 300 linhas e não 200, como era o esperado.

Alguém tem uma ideia do motivo?

Let $(vL.Ano) = Year(Today(1));

Let $(vL.Linha) = 100;

For i = $(vL.Ano) - 1 To $(vL.Ano)

PedidoVenda:

First $(vL.Linha)

Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd);

Next

Obrigado!

Responda a esta mensagem respondendo a este e-mail ou vá para a mensagem em Qlik Community

Inicie uma nova discussão em Qlik Brasil por e-mail ou em Qlik Community

Seguindo Qlik Brasil nestes fluxos: Caixa de Entrada

felipe_dutra
Partner - Creator
Partner - Creator

Faça da seguinte maneira, Márcio:

Let vL.Ano = Year(Today(1));

Let vL.Linha = 100;

For i = $(vL.Ano) - 1  To $(vL.Ano)

  PedidoVenda:

  Load * From $(vG.SharedQVDPath)PedidoVenda_$(i).qvd (qvd)

  Where RecNo() <= $(vL.Linha);

Next

Marcio_Campestrini
Specialist
Specialist
Author

Boa tarde Felipe

Fiz o que você sugeriu e funcionou. Somente ainda não entendi o que estava acontecendo.

Márcio Rodrigo Campestrini
afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Bom dia.

Eu acredito que nao seja o For o problema.

Fiz um teste com a seguinte rotina

  PedidoVenda:

   First 10   Load * From Final_2013.qvd (qvd);

  Concatenate

   First 10   Load * From Final_2014.qvd (qvd);

e mesmo assim le 10 registros no primeiro qvd e 20 no segundo dando 30 o total nos 2 qvds,

Por teoria deveria ler 10 registros de cada.  Sera que nao pode ser um bug no first / load ?

Alessandro Furtado

furtado@farolbi.com.br
junior_ehlke
Creator III
Creator III

Alessando, posso estar errado, mas quando vc concatena as tabelas, o contador nao zera, o QV le 10 registros da primeira e 10 da segunda, porém no contador da um total de 20, aparecendo 10 no  Final_2013.qvd e 20 no Final_2014.qvd

junior_ehlke
Creator III
Creator III

Me equivoquei, fiz um teste aqui, como eu disse anteriormente o sistema não zera o contador de um QVD para o outro, porém usando o FIRST ele realmente aparece 30 ao invés de 20, parece que ele vai multiplicando os FIRSTs

Venda_10_2014 (qvd optimized) 10 registros lidos

Venda_10_2014 << Venda_11_2014 (qvd optimized) 30 registros lidos

Venda_10_2014 << Venda_12_2014 (qvd optimized) 70 registros lidos

porém se usar o modo Depurador não carrega a ultima tabela:

Venda_10_2014 (qvd optimized) 10 registros lidos

Venda_10_2014 << Venda_11_2014 (qvd optimized) 30 registros lidos

--- Script Finalizado ---

pablolabbe
Luminary Alumni
Luminary Alumni

Mais alguém já teve um problema parecido: Working of first and Concatenate

Outra solução seria carregar a tabela sem concatenar e depois concatenar os dados na tabela principal lendo com RESIDENT.