Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao gravar notas fiscdaisem banco de dados


reij
  • Este tópico foi criado há 2414 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia amigos estou com um pequeno problema ao importar dados de xml pro banco de dados estou sando essa rotina aqui porem ela esta duplicando dezenas de vezes o mesmo item

procedure TF_Import.importarxmlpasta;
var
  i, j, k, n  : integer;
begin
      QxmlPasta.Open();
        ACBrNFe1.NotasFiscais.Clear;
      //ACBrNFe1.NotasFiscais.Add;
        for i := 0 to Ltbxml.Items.Count -1 do
          begin
          try
              ACBrNFe1.NotasFiscais.LoadFromFile(Ltbxml.Items);
          except
              ShowMessage('Arquivo NFe Inválido');
              exit;
          end;

            for n:=0 to ACBrNFe1.NotasFiscais.Count-1 do
            begin
              with ACBrNFe1.NotasFiscais.Items[n].NFe do
                begin
                QxmlPasta.insert;
                QXmlPastaCODIGO.AsInteger := inc_gen('GEN_XML_IMPORTADOS_PASTA_ID');
                QXmlPastaDATANF.AsDateTime := Ide.dEmi;
                QXmlPastaCHAVE.AsString := procNFe.chNFe;
                QXmlPastaVLR_NOTA.AsCurrency := total.ICMSTot.vNF;
                QXmlPastaNOME_RAZAO.AsString := Emit.xNome;
                QXmlPastaNOME_UNIDADE.AsString := Dest.xNome;
                QXmlPastaCNPJ_UNIDADE.AsString := Dest.CNPJCPF;
                QXmlPastaNUMNFE.AsString := IntToStr(Ide.nNF);
                QXmlPastaNOP.AsString := Ide.natOp;
                      QxmlPasta.Post;
                   //   QxmlPasta.CommitUpdates();
          //      QxmlPasta.ApplyUpdates(0);
                end;

            end;

          end;
          QxmlPasta.ApplyUpdates(0);
           Showmessage('Importação Realizada com sucesso');
          QxmlPasta.Close;
end;
 

 

lembrando que quando usava no dbexpress funcionava porem no  firedac ta dando esse problema

desde ja grato pela ajuda

Link para o comentário
Compartilhar em outros sites

  • Moderadores
42 minutos atrás, reij disse:

Bom dia amigos estou com um pequeno problema ao importar dados de xml pro banco de dados estou sando essa rotina aqui porem ela esta duplicando dezenas de vezes o mesmo item

Seu código está bem indentado?

Se a resposta é não, sugiro que faça isso, o erro de lógica nele ficaria evidente.

Ou use o debug...

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link para o comentário
Compartilhar em outros sites

44 minutos atrás, reij disse:

Bom dia amigos estou com um pequeno problema ao importar dados de xml pro banco de dados estou sando essa rotina aqui porem ela esta duplicando dezenas de vezes o mesmo item

procedure TF_Import.importarxmlpasta;
var
  i, j, k, n  : integer;
begin
      QxmlPasta.Open();
        ACBrNFe1.NotasFiscais.Clear;
      //ACBrNFe1.NotasFiscais.Add;
        for i := 0 to Ltbxml.Items.Count -1 do
          begin
          try
              ACBrNFe1.NotasFiscais.LoadFromFile(Ltbxml.Items);
          except
              ShowMessage('Arquivo NFe Inválido');
              exit;
          end;

            for n:=0 to ACBrNFe1.NotasFiscais.Count-1 do
            begin
              with ACBrNFe1.NotasFiscais.Items[n].NFe do
                begin
                QxmlPasta.insert;
                QXmlPastaCODIGO.AsInteger := inc_gen('GEN_XML_IMPORTADOS_PASTA_ID');
                QXmlPastaDATANF.AsDateTime := Ide.dEmi;
                QXmlPastaCHAVE.AsString := procNFe.chNFe;
                QXmlPastaVLR_NOTA.AsCurrency := total.ICMSTot.vNF;
                QXmlPastaNOME_RAZAO.AsString := Emit.xNome;
                QXmlPastaNOME_UNIDADE.AsString := Dest.xNome;
                QXmlPastaCNPJ_UNIDADE.AsString := Dest.CNPJCPF;
                QXmlPastaNUMNFE.AsString := IntToStr(Ide.nNF);
                QXmlPastaNOP.AsString := Ide.natOp;
                      QxmlPasta.Post;
                   //   QxmlPasta.CommitUpdates();
          //      QxmlPasta.ApplyUpdates(0);
                end;

            end;

          end;
          QxmlPasta.ApplyUpdates(0);
           Showmessage('Importação Realizada com sucesso');
          QxmlPasta.Close;
end;
 

 

lembrando que quando usava no dbexpress funcionava porem no  firedac ta dando esse problema

desde ja grato pela ajuda

Você diz, duplicando os itens das notas ou as notas?

 

_____________

Prates, Agnaldo

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2414 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.