Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

   Estou com um problema sério, o meu sistema está dando acess violation em diversos lugares, de forma aleatória, utilizo o Delphi XE6 e impressora Fiscal bematech MP-4000 TH FI. Quando utilizo o emulador não ocorre o erro mais se utilizo a impressora dá o erro em pontos diferentes do sistema. Parece que o delphi não consegue alocar e desalocar a memória.

O problema é no delphi ?

 

O problema é no ACBR ?

 

O problema é no hardware ?

  • Moderadores
Postado

   Estou com um problema sério, o meu sistema está dando acess violation em diversos lugares, de forma aleatória, utilizo o Delphi XE6 e impressora Fiscal bematech MP-4000 TH FI. Quando utilizo o emulador não ocorre o erro mais se utilizo a impressora dá o erro em pontos diferentes do sistema. Parece que o delphi não consegue alocar e desalocar a memória.

O problema é no delphi ?

 

O problema é no ACBR ?

 

O problema é no hardware ?

Boa noite!

A primeira coisa a ser feito é habilitar o log do ACBrECF !

com isso saberemos se o problema está partindo de onde!

é possível fazer isso em sua aplicação e após anexar o log aqui?

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Então com a configuração assim :

TimeOut := 10;
IntervaloAposComando := 1
00;
ArqLOG := 'c:\spk sistemas\logecf.txt';

 

Ocorre o erro.

 

Agora passando o IntervaloAposComando de 100 para 500 não ocorre o erro mais.

Segue o log como solicitado.

logecf.txt

  • Fundadores
Postado

Access Violation ocorre quando você tenta acessar um Objeto que não existe mais, ou que ainda não foi criado...

 

Veja, se o erro fosse no ACBrECF, o fórum estaria inundado de posts como esse...

 

Você mesmo pode testar o ACBrECF, usando o projeto ECFTeste

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Sua resposta foi muito vaga, cara sinceramente eu seu o que ocasiona access violation, vc pelo menos olhou o log, o Juliomar pediu para eu mandar.

 

Eu testei o projeto ECFTeste.

 

Tem mais de 5 anos que utilizo os componentes ACBBr.

 

O fato que hoje coloquei o Timeout como 3 e tirei mais de 30 cupons sem erro.

  • Fundadores
Postado

Faço a você mesmo a sua pergunta... Olhou o Log ?

 

Não consta nada nele.. nenhuma mensagem de erro...

 

Mas como você sabe o que causa "access violation" então não terá dificuldades em corrigir o seu problema....

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

Agora passando o IntervaloAposComando de 100 para 500 não ocorre o erro mais.

Segue o log como solicitado.

 

O fato que hoje coloquei o Timeout como 3 e tirei mais de 30 cupons sem erro.

 

Isso pode parecer alguma coisa, mas não explica o que está acontecendo. Na verdade, ficou parecendo que os erros foram aleatórios já que tanto faz se você alterar o IntervaloAposComando ou o Timeout.

 

Algumas perguntas para tentarmos encontrar a solução:

Consegue reproduzir o problema no ECFTeste?

Você consegue reproduzir o problema toda hora com uma configuração específica?

Consegue perceber diferenças nos logs de quando dá problema ou não?

Esse problema acontece em quantos clientes diferentes?

Quais os modelos de ECF?

Ao compilar com outra versão do Delphi continua o problema?

Qual a mensagem de erro completa? Ela é sempre a mesma?

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Durante quase todo dia não ocorreu o erro, agora pouco ocorreu o erro (arq. anexo).

 

O at 0x00406a40 sempre é o mesmo só muda read of.

 

No log não apresenta nenhum erro.

 

 

post-2838-0-30681100-1415127954_thumb.pn

  • Consultores
Postado

Durante quase todo dia não ocorreu o erro, agora pouco ocorreu o erro (arq. anexo).

Então parece que não importando suas modificações nas propriedades o problema continua...

 

O at 0x00406a40 sempre é o mesmo só muda read of.

Pode significar que é sempre no mesmo local do código... pelo menos até que você compile novamente...

A propósito, sua imagem mostra que você estava debugando no momento.

Em que linha específica acontece o erro?

 

No log não apresenta nenhum erro.

Acho que não entendeu. Queria saber se há diferenças no log e não se apresenta erros. Assim como o Daniel, já vi que não há erros no log... E se não há diferenças, isso pode indicar que o erro é exterior ao componente ou pelo menos exterior a sua comunicação com o ECF.

 

Conseguiu verificar em que parte da venda ocorre o problema?

Faltou algumas perguntas que você não respondeu...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

result := False;
  for I := 0 to Length(clsComandosECF.infFormasPagamento)-1 do
  begin
    if AnsiUpperCase(Forma) = AnsiUpperCase(clsComandosECF.infFormasPagamento.Descricao) then
       result := True;

  end;

 

O erro está dando quando ele percorre o laço, o array possui as formas de pagamento da impressora na forma 14 ele dá o erro.

Observação não estava dando erro antes.

  • Fundadores
Postado

Não há nenhum objeto no ACBr que contenha a propriedade "infFormasPagamento"...

 

Esse trecho de código muito provavelmente é do seu sistema...

 

Somente conseguimos investigar problemas relatados com o ECFTeste...

Se conseguir reproduzir o problema usando o ECFTeste, por favor poste um passo a passo bem detalhado...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Consultores
Postado

Olá lucmaranho,

 

O Daniel tem razão. Esse código não parece ser dos componentes.

Infelizmente, como está fora do contexto da aplicação, o trecho do código que você postou não nos ajuda em saber o que o código faz e como poderia ser corrigido. Então, procure onde ele está sendo chamado, quantas vezes no código ele é chamado, o motivo de ser chamado, se não poderia ser feito outra coisa no lugar, etc...

 

Veja, no entanto, que não há validação se os objetos citados estão disponíveis. Talvez você precise adicionar.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 2 semanas depois ...
  • Este tópico foi criado há 3657 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.