Fórum Porque o Refresh não funciona? #353574
13/02/2008
0
Olá, é o seguinte:
Tenho um banco de dados Firebird 2.0 com 3 tabelas, uso os componentes ADOConnection e ADOQuery do Delphi 2007.
Após iniciar uma transação, deleto um registro da ADOQuery, se eu cancelar a transação, ou seja, dar um RollbackTrans e dar um refresh na ADOQuery, o registro deletado não aparece mais, mesmo estando presente ainda na tabela do banco de dados.
Porque não funciona? Alguém sabe?
Qualquer dica é bem vinda!
Tenho um banco de dados Firebird 2.0 com 3 tabelas, uso os componentes ADOConnection e ADOQuery do Delphi 2007.
Após iniciar uma transação, deleto um registro da ADOQuery, se eu cancelar a transação, ou seja, dar um RollbackTrans e dar um refresh na ADOQuery, o registro deletado não aparece mais, mesmo estando presente ainda na tabela do banco de dados.
Porque não funciona? Alguém sabe?
Qualquer dica é bem vinda!
Edjlle
Curtir tópico
+ 0
Responder
Posts
14/02/2008
Xandikbelo
cara, uma saída simples seria tu usar Delete da query depois da operação, assim o registro so seria excluido quando o usuario realmente desse o commit...
Caso tu não possa fazer dessa forma, tenta simplesmente abrir a query de novo...
Mas se tu tb não pode fazer isso em função do funcionamento do negocio... posta ae os detalhes pra gente dar uma olhada!
Espero ter ajudado.
Caso tu não possa fazer dessa forma, tenta simplesmente abrir a query de novo...
Mas se tu tb não pode fazer isso em função do funcionamento do negocio... posta ae os detalhes pra gente dar uma olhada!
Espero ter ajudado.
Responder
Gostei + 0
14/02/2008
Edjlle
xandikbelo:
em primeiro lugar, obrigado pelas dicas, vamos aos detalhes:
infelizmente não é possível pq tô usando um DBGrid conectado a query, se for deletado da DBGrid, já é automaticamente deletado da query.
isso é o q eu tenho feito, demora um pouco mas funciona,
O q eu queria saber mesmo é pq o refresh nunca funciona? Será q existe um jeito de fazer funcionar?
em primeiro lugar, obrigado pelas dicas, vamos aos detalhes:
uma saída simples seria tu usar Delete da query depois da operação, assim o registro so seria excluido quando o usuario realmente desse o commit...
infelizmente não é possível pq tô usando um DBGrid conectado a query, se for deletado da DBGrid, já é automaticamente deletado da query.
Caso tu não possa fazer dessa forma, tenta simplesmente abrir a query de novo...
isso é o q eu tenho feito, demora um pouco mas funciona,
O q eu queria saber mesmo é pq o refresh nunca funciona? Será q existe um jeito de fazer funcionar?
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)