GARANTIR DESCONTO

Fórum Access violation após fechar a aplicação #510489

12/02/2015

0

Boa tarde, pesquisei um monte, porém a pesquisa sobre isso me levou a muitos caminhos diferentes e não consegui descobrir o que acontece.

Após fechar a aplicação aparece o erro: "First chance exception at $004067A8. Exception class $C0000005 with message 'access violation at 0x004067a8: read of address 0x0000002e'. Process ERP.exe (2424)"

Se eu abrir a aplicação e fechar não acontece nada, mas quando eu manipulo algumas tabelas o erro aparece.

Rodando com debug ele não mostra nada, acho que porque já fechou tudo.

Delphi XE2, Firebird 2.5, DBX
Henrique Rodrigues

Henrique Rodrigues

Responder

Posts

12/02/2015

Douglas

Olá Henrique, tudo bem?
Será que nessa manipulação de tabelas, você não está tentando instanciar algum tipo de objeto ou destruir algum que não exista? Dê uma debugada com calma no seu código!
Responder

Gostei + 0

13/02/2015

Henrique Rodrigues

Percebi que isso ocorre quando crio e utilizo um form , fecho voltando ao form principal, depois abro de novo utilizo e fecho, aí quando vou fechar o principal aparece o erro, depois de fechado.

Quando dou um break ele não vai ao erro como normalmente acontece quando o erro aparece com a aplicação aberta.

no CPU aparece isso: "004067A8 FF51FC call dword ptr [ecx-$04]"

Alguém sabe interpretar essas informações do CPU?
Responder

Gostei + 0

13/02/2015

Cauê Nishijima

Olá Henrique,

De mais informações do seu projeto, como esta chamando os forms, e como está destruindo os mesmo, são forms fsMDIChild ou são fsNormal?
Quais componentes de acesso a dados você esta utilizando?

A principio parece que você esta tentando manipular algum objeto após sua destruição.

Att.Cauê Nishijima
Responder

Gostei + 0

13/02/2015

Douglas

Percebi que isso ocorre quando crio e utilizo um form , fecho voltando ao form principal, depois abro de novo utilizo e fecho, aí quando vou fechar o principal aparece o erro, depois de fechado.

Quando dou um break ele não vai ao erro como normalmente acontece quando o erro aparece com a aplicação aberta.

no CPU aparece isso: "004067A8 FF51FC call dword ptr [ecx-$04]"

Alguém sabe interpretar essas informações do CPU?


Henrique, será que você não está tentando utilizar no seu form principal um objeto do formulário que você já utilizou?
Responder

Gostei + 0

13/02/2015

Renato Rubinho

Buenas,

Veja se tem algum timer que pode tentar executar algo enquanto está saindo do sistema, tentando acessar algum objeto já destruído.
Toma tempo, mas coloque um breakpoint nos eventos do seu form principal e tenta fechar debugando para verificar se não está entrando em algo que não deveria (algum onExit, por exemplo).
Tente fechar sua conexão com o banco antes de fechar o sistema, pode estar falhando a comunicação de acordo com o que está destruindo antes de finalizar.

Abraççç,
rrubinho
Responder

Gostei + 0

14/02/2015

Henrique Rodrigues

Boa tarde, estou na luta aqui para descobrir onde está o erro, mas até agora não encontrei.

O curioso e que faço o tratamento de erro em todos os comandos para que o sistema não trave tudo, e esse erro não vem dentro de nenhum deles.
Responder

Gostei + 0

14/02/2015

Henrique Rodrigues

Achei algo. Em um form modelo onde é herdado por todos coloquei o valor para PacketRecords.

Assim,

TClientDataSet(DataSouce).PacketRecords := 50;

removi, parou o erro.

coloco volta o erro, parece que é isso mesmo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar