Fórum Access Violation at Adress #244778

28/07/2004

0

Meus amigos do portal, preciso de ajuda para resolver este pequeno bug.
Utilizo o delphi 7, banco firebird, componente dbexpress.
O cliente está trabalhando, iserindo informações, alterando, fazendo consulta, gerando relatório, etc. ora ou outra aparece esta mensagem(Access Violation at Adress 03f71c10: read of address).
Em algum momento utililizo query dinamica como ex. abaixo:

with TSQLQuery.Create(nil) do
begin
try
SQLConnection := FrmPrincipalSGCAdm.SQLConnection1;
Sql.Add(´ SELECT PROD_CODIGO, PROD_DESCRICAOPRODUTO,PROD_QTDEESTOQUEFISICO, PROD_PRECOAVISTA FROM PRODUTO´);
Sql.Add(´ WHERE EMP_CODIGO =´ +IntToStr(FrmPrincipalSGCAdm.CodEmpresa));
Sql.Add(´ AND PROD_CODIGO = ´+IntToStr(cdsDetalhePROD_CODIGO.AsInteger));
Open;
cdsDetalhePIT_VALORUNITARIO.AsCurrency := Fields[3].AsCurrency;
finally
Free;
end;
end;


Ou chamar uma tela padrao para consulta.

edtBanco.SetFocus;
FrmPesquisaGeral.QryPadrao.close;
FrmPesquisaGeral.QryPadrao.sql.Clear;
FrmPesquisaGeral.QryPadrao.SQL.Add(´SELECT BCO_CODIGO AS CodBanco, Bco_DESCRICAO as Banco ´);
FrmPesquisaGeral.QryPadrao.SQL.Add(´FROM banco´ );
FrmPesquisaGeral.QryPadrao.SQL.Add(´WHERE BCO_DESCRICAO like :Pesquisa ´ );
FrmPesquisaGeral.ResultField := 1;
FrmPesquisaGeral.Pesquisa := true;
result := FrmPesquisaGeral.Open;
if result <> null
then begin
edtBanco.Text := result;
edtBanco.OnExit(Sender);
end;

Alguem pode me ajudar a resolver este problema? o que pode ser isto?
problema de memória, ou algum bug na minha aplicação?

Obrigado um abraço a todos.

Plácido


Placido

Placido

Responder

Posts

28/07/2004

Moonlight

Olha direitinho em que linha dá o erro... isso ajuda demais. Pode ser que o programa esteja acessando um componente ainda não criado.


Responder

Gostei + 0

28/07/2004

Placido

Letícia boa tarde!
Obrigado pela colaboração, mas o meu problema é exatamente este, não dá o erro no mesmo local, ou na mesma tela.
Grato


Responder

Gostei + 0

28/07/2004

Sandra

placido,

Sua TSQLQuery é criada em tempo de excução, certo?

Então, se for este o seu caso, experimente primeiro criá-la e altere as propriedades convenientemente. Em seguida, utilize-a normalmente. Talvez o problema esteja aí, pois, pelo que entendi, está criando a Query e alterando propriedades ao mesmo tempo.


Responder

Gostei + 0

28/07/2004

Placido

Sandra obrigado pela atenção.
Sim minha query está sendo criada em tempo de execução, mas ouço falar que é aconselahvel criar querys dinamicas, ou seja excuta e libera memória ao mesmo tempo, pois é exatamente esta minha dúvida, antes de fazer as mudanças na minha aplicação preciso ter certeza se este o problema.
Grato :roll:


Responder

Gostei + 0

28/07/2004

Sandra

placido,

Uma outra coisa que estive observando. O Access Violation não seria o caso do ´(nil)´?

Faça mais um teste, alterando o ´nil´ para ´Self´, assim:
with TSQLQuery.Create(Self) do
begin 
  try 
... // demais códigos
end; 


Verfique se ainda assim a mensagem de erro persiste.


Responder

Gostei + 0

16/08/2004

Jose Oliveira

Placido, conseguiu solucionar esse erro.
Numa aplicaçao que estava normal, agora está apresentando
este tipo de erro.

Qual foi a solucao?

Desde já agradeco,
Geraldo


Responder

Gostei + 0

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

Aceitar