Fórum Fuga de memória. Onde? #346153
17/09/2007
0
estou usando IBX para acessar uma base de dados Firebird 2.0. Todo o acesso ocorre sem problema ´aparentemente´. Porém ao colocar uma consulta dentro de um timer ocorre um ´vazamento´ de memória.
Uso Delphi 7 e IBX 7.07
Meu código:
var Transacao : TIBTransaction; qry : TIBQuery; begin qry := TIBQuery.Create(nil); Transacao := TIBTransaction.Create(nil); try qry.Transaction := Transacao; qry.Database := DM.BancoDados; DM.BancoDados.DefaultTransaction := Transacao; //Query para inserção de uma pessoa with qry do begin Transacao.StartTransaction; try Close; SQL.Clear; Case Opcao of SQL.Add(´SELECT * FROM COMPROMISSOS WHERE DATA = :DATA´); ParamByName(´DATA´).AsDate := Date; Open; txtComp.Clear; while not eof do begin txtComp.Items.Add(FieldByName(´COMP´).AsString); next; end; Close; Transacao.CommitRetaining; except showMessage(´Erro!!´); Transacao.RollbackRetaining; end; end; finally qry.Free; Transacao.Free; end;
O que estou fazendo de errado?
Carlosib
Curtir tópico
+ 0Posts
17/09/2007
Carlosib
Gostei + 0
17/09/2007
Massuda
Gostei + 0
18/09/2007
Carlosib
var Transacao : TIBTransaction; qry : TIBQuery; begin qry := TIBQuery.Create(nil); Transacao := TIBTransaction.Create(nil); try qry.Transaction := Transacao; qry.Database := DM.BancoDados; DM.BancoDados.DefaultTransaction := Transacao; //Query para inserção de uma pessoa with qry do begin Transacao.StartTransaction; try Close; SQL.Clear; SQL.Add(´SELECT * FROM COMPROMISSOS WHERE DATA = :DATA´); ParamByName(´DATA´).AsDate := Date; Open; txtComp.Clear; while not eof do begin txtComp.Items.Add(FieldByName(´COMP´).AsString); next; end; Close; Transacao.CommitRetaining; except showMessage(´Erro!!´); Transacao.RollbackRetaining; end; end; finally qry.Free; Transacao.Free; end;
Gostei + 0
20/09/2007
Carlosib
Gostei + 0
24/09/2007
Carlosib
Gostei + 0
26/09/2007
Paulo Samurai
[]´s
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)