Fórum Erro ao fechar aplicação #344718

20/08/2007

0

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!


Mmoreira

Mmoreira

Responder

Posts

20/08/2007

Massuda

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.


Responder

Gostei + 0

20/08/2007

Mmoreira

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:

procedure TStringField.SetAsBoolean(Value: Boolean);
const
  Values: array[Boolean] of string[1] = (´F´, ´T´);
begin
  SetAsString(Values[Value]);
end;



O que pode ser?


Responder

Gostei + 0

20/08/2007

Massuda

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.


Responder

Gostei + 0

20/08/2007

Mmoreira

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!


Responder

Gostei + 0

21/08/2007

Mmoreira

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!


Responder

Gostei + 0

21/08/2007

Massuda

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.


Responder

Gostei + 0

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

Aceitar