Skip to main content
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.