Fórum porq so atualiza BD depois q fecha aplicaçao ? #279339
28/04/2005
Tenho uma aplicaçao em rede e se um usuario alterar alguma coisa num registro os outros usuarios da rede so vem a alteraçao depois q quem alterou o registro fechar o programa ou seja nao esta atualizando o banco de dados, so atualiza depois q fecha o prog!
Uso interbase 6.0 acesso via ibx !
[color=green:2fd8fad081]Tópico editado por gandalf.nho. Por favor, não poste em maiúsculas[/color:2fd8fad081]
Posts
Vc está comitando assim que salva e setou as transações como ReadCommited?
so estou dando applyupdate no afterpost !!!!tenho q fazer mais alguma coisa???? o q ????
Vc precisa comitar a transação para que as alterações sejam gravadas em definitivo no banco. Provavelmente só está comitando ao fechar o sistema.
intao vc pode me falar como faço isso ????????????????
Vc não está usando ClientDataSet, né? Se não, após realizar suas alterações vc deve dar um Commit na transação associada ao componente que vc está usando. Não esqueça de configurar as transações como ReadCommited para que as outras máquinas possam enxergar as alterações que uma fez. E vc não precisa usar ApplyUpdates a menos que esteja com o cache ativo, basta dar o Post e depois Commit.
Ex:
Transaction1.StartTransaction;
Query1.Insert;
Query1NOME_CAMPO.Value = ´TESTE´;
Query1.Post;
Transaction1.Commit;
usei assim IBTransaction1.CommitRetaining; (assim deu certo )
pois so o commit; sumia os dados da tela por isso ocorre ???
Isso acontece pq o Commit fecha a transação e consequentemente os datasets associados e o CommitRetaining mantém a transação aberta.
11/05/2005
Steve_narancic
Isso acontece pq o Commit fecha a transação e consequentemente os datasets associados e o CommitRetaining mantém a transação aberta.
Isto significa que o registro ficará bloqueado até eu der um commit?
O CommitRetaining comita a transação mas não a fecha como o Commit faz, vc pode usá-la, embora geralmente se recomende não deixar uma transação aberta por mais tempo que o necessário.