Erro ao fechar aplicação
Pessoal,
Tenho um sistema feito em Delphi 7 instalado em varios clientes ja tem bastante tempo ... eu terminei uma atualizacao do mesmo e agora em todos os meus clientes esta acontecendo um erro que nao consigo encontrar o motivo.
O sistema funciona perfeitamente mas na hora de fechar o mesmo esta dando um erro que nunca tinha aparecido antes ... o detalhe é que na minha maquina que tem o delphi instalado este problema nao ocorre .. segue o erro:
Exception EAccessViolation in module ControlCall.exe at 00125dDC0.
Access violation at address 00525DC0 in module ´ControlCall.exe´ Read of address 01722CC4
Bom sera que alguem pode me ajudar ??
Valew!
Tenho um sistema feito em Delphi 7 instalado em varios clientes ja tem bastante tempo ... eu terminei uma atualizacao do mesmo e agora em todos os meus clientes esta acontecendo um erro que nao consigo encontrar o motivo.
O sistema funciona perfeitamente mas na hora de fechar o mesmo esta dando um erro que nunca tinha aparecido antes ... o detalhe é que na minha maquina que tem o delphi instalado este problema nao ocorre .. segue o erro:
Exception EAccessViolation in module ControlCall.exe at 00125dDC0.
Access violation at address 00525DC0 in module ´ControlCall.exe´ Read of address 01722CC4
Bom sera que alguem pode me ajudar ??
Valew!
Mmoreira
Curtidas 0
Respostas
Massuda
20/08/2007
Um ponto de partida seria tentar descobrir o que o programa estava executando quando deu o erro.
AccessViolation geralmente está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.
Para facilitar, tente determinar onde o erro está ocorrendo. Para isso:[list:08a770dddc][*:08a770dddc]marque as opções de debug em Project/Options/Compiler/Debugging[*:08a770dddc]dê um build (menu Project/Build) no seu programa[*:08a770dddc]inicie a execução do seu programa[*:08a770dddc]volte no Delphi[*:08a770dddc]no menu Search/Find Error, informe o endereço do erro (esse endereço está na mensagem de erro)[/list:u:08a770dddc]Com um pouco de sorte, o Delphi irá mostrar a linha problemática.
AccessViolation geralmente está relacionado com tentativas de utilizar objetos que não foram criados ou que já foram destruídos (automaticamente ou não) em algum ponto do programa.
Para facilitar, tente determinar onde o erro está ocorrendo. Para isso:[list:08a770dddc][*:08a770dddc]marque as opções de debug em Project/Options/Compiler/Debugging[*:08a770dddc]dê um build (menu Project/Build) no seu programa[*:08a770dddc]inicie a execução do seu programa[*:08a770dddc]volte no Delphi[*:08a770dddc]no menu Search/Find Error, informe o endereço do erro (esse endereço está na mensagem de erro)[/list:u:08a770dddc]Com um pouco de sorte, o Delphi irá mostrar a linha problemática.
GOSTEI 0
Mmoreira
20/08/2007
Massuda,
No caso eu apenas abro o sistema e nao faco nada .. simplesmente clico no botao fechar com o codigo:
Close;
E pronto .. vem o erro.
Eu fiz o que vc sugeriu acima e quando em mando ele localizar o erro atravez do endereco o delphi abre a unit DB e posiciona o cursosr nesta linha:
O que pode ser?
No caso eu apenas abro o sistema e nao faco nada .. simplesmente clico no botao fechar com o codigo:
Close;
E pronto .. vem o erro.
Eu fiz o que vc sugeriu acima e quando em mando ele localizar o erro atravez do endereco o delphi abre a unit DB e posiciona o cursosr nesta linha:
procedure TStringField.SetAsBoolean(Value: Boolean); const Values: array[Boolean] of string[1] = (´F´, ´T´); begin SetAsString(Values[Value]); end;
O que pode ser?
GOSTEI 0
Massuda
20/08/2007
Como deu erro em uma procedure relacionada com atualizar dados em BD, minha sugestão é que você dê uma olhada no seu programa nas procedures executadas ao encerrar o programa e ao fechar forms... em especial dar uma olhada em eventuais procedures que envolvam campos boolean que seu programa atualize ao sair.
GOSTEI 0
Mmoreira
20/08/2007
Massuda,
Muito obrigado pela atenção!
Vou partir dai entao ... vou dar uma olhada em todos este detalhes .. acho que uma boa ideia é olhar de traz para frente .. vou começar dos ultimos forms que criei e mudancas no DataModule .. uma vez que no meu form principal nao tem muita coisa.
Assim que descobrir o que eu eu posto aqui.
Abs!
Muito obrigado pela atenção!
Vou partir dai entao ... vou dar uma olhada em todos este detalhes .. acho que uma boa ideia é olhar de traz para frente .. vou começar dos ultimos forms que criei e mudancas no DataModule .. uma vez que no meu form principal nao tem muita coisa.
Assim que descobrir o que eu eu posto aqui.
Abs!
GOSTEI 0
Mmoreira
20/08/2007
Massuda,
Ja dei uma revisada em tudo e mesmo assim o problema continua acontecendo ... estive conversando com um colega e ele me disse que poderia ser alguma coisa relacionado ao ClientDataSet estar abrindo uma tabela que tem muitos campos ... e é exatamente uma situacao que existe em meu sistema logo na inicialização eu abro uma tabela que tem muitos campos pois é a tabela onde eu guardo as permissoes do usuario logado.
No caso este meu colega usava o Zeus e apos alterar algumas propriedades em um arquivo INI dos componente o problema foi resolvido. Voce ja viu isso acontecer com o DbExpress?
Obrigado pela atenção
Abs!
Ja dei uma revisada em tudo e mesmo assim o problema continua acontecendo ... estive conversando com um colega e ele me disse que poderia ser alguma coisa relacionado ao ClientDataSet estar abrindo uma tabela que tem muitos campos ... e é exatamente uma situacao que existe em meu sistema logo na inicialização eu abro uma tabela que tem muitos campos pois é a tabela onde eu guardo as permissoes do usuario logado.
No caso este meu colega usava o Zeus e apos alterar algumas propriedades em um arquivo INI dos componente o problema foi resolvido. Voce ja viu isso acontecer com o DbExpress?
Obrigado pela atenção
Abs!
GOSTEI 0
Massuda
20/08/2007
Não entendo muito de BD, mas meu palpite é que você tem algum código executado ao terminar o programa que tenta atualizar um campo de uma tabela em algum data module e, quando esse código é executado, o data module já foi destruído ou a tabela foi fechada.
Lamento não poder ajudar mais que isso.
Lamento não poder ajudar mais que isso.
GOSTEI 0