porq so atualiza BD depois q fecha aplicaçao ?
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]
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]
Guilherme
Curtidas 0
Respostas
Gandalf.nho
28/04/2005
Vc está comitando assim que salva e setou as transações como ReadCommited?
GOSTEI 0
Guilherme
28/04/2005
so estou dando applyupdate no afterpost !!!!tenho q fazer mais alguma coisa???? o q ????
GOSTEI 0
Gandalf.nho
28/04/2005
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.
GOSTEI 0
Guilherme
28/04/2005
intao vc pode me falar como faço isso ????????????????
GOSTEI 0
Gandalf.nho
28/04/2005
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:
Ex:
Transaction1.StartTransaction; Query1.Insert; Query1NOME_CAMPO.Value = ´TESTE´; Query1.Post; Transaction1.Commit;
GOSTEI 0
Guilherme
28/04/2005
usei assim IBTransaction1.CommitRetaining; (assim deu certo )
pois so o commit; sumia os dados da tela por isso ocorre ???
pois so o commit; sumia os dados da tela por isso ocorre ???
GOSTEI 0
Gandalf.nho
28/04/2005
Isso acontece pq o Commit fecha a transação e consequentemente os datasets associados e o CommitRetaining mantém a transação aberta.
GOSTEI 0
Steve_narancic
28/04/2005
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?
GOSTEI 0
Gandalf.nho
28/04/2005
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.
GOSTEI 0