Fórum Commit no Interbase #38392
28/08/2003
0
estou com alguns problemas com o interbase, por exemplo, qdo
acesso uma aplicação desenvolvida em Delphi 5, executo várias transações, inserção de novos dados, updates de dados...
mas se dá uma queda de energia, ou trava o PC tudos o q fiz, ou seja
tudo o q gravei vai por áqua à baixo, perco tudo.
Apesar de q dentro da aplicação é executado table.post, em todas as gravações no banco, pelo q entendi se ele não achar Application.Terminate, finalização da aplicação corretamente, é feito rollback de tudo o q foi feito naquele instante. Tem com evitar isso?
acesso uma aplicação desenvolvida em Delphi 5, executo várias transações, inserção de novos dados, updates de dados...
mas se dá uma queda de energia, ou trava o PC tudos o q fiz, ou seja
tudo o q gravei vai por áqua à baixo, perco tudo.
Apesar de q dentro da aplicação é executado table.post, em todas as gravações no banco, pelo q entendi se ele não achar Application.Terminate, finalização da aplicação corretamente, é feito rollback de tudo o q foi feito naquele instante. Tem com evitar isso?
Fcampos
Curtir tópico
+ 0
Responder
Posts
28/08/2003
Afarias
|qdo acesso uma aplicação desenvolvida em Delphi 5, executo várias
|transações, inserção de novos dados, updates de dados...
|mas se dá uma queda de energia, ou trava o PC tudos o q fiz, {...}
Um POST não confirma as operações e então estas são perdidas. Vc tem q executar um COMMIT na transação para tornar suas operações ´gravadas´ no banco de dados.
Vc pode definir a propriedade DefaultAction do IBTransaction para Commit -- assim, quando o objeto for destruido ele dá um COMMIT em vez do Rollback -- entretanto isso não ocorre quando o micro TRAVA ou FALTA energia -- para esses casos não há software q dê geito -- só um Nobreak e um micro bem configurado para resolver.
T+
|transações, inserção de novos dados, updates de dados...
|mas se dá uma queda de energia, ou trava o PC tudos o q fiz, {...}
Um POST não confirma as operações e então estas são perdidas. Vc tem q executar um COMMIT na transação para tornar suas operações ´gravadas´ no banco de dados.
Vc pode definir a propriedade DefaultAction do IBTransaction para Commit -- assim, quando o objeto for destruido ele dá um COMMIT em vez do Rollback -- entretanto isso não ocorre quando o micro TRAVA ou FALTA energia -- para esses casos não há software q dê geito -- só um Nobreak e um micro bem configurado para resolver.
T+
Responder
Gostei + 0
29/10/2003
Maicon Loffi
Amigo,
Quando você grava, altera ou deleta algum registro, você deve fazer o seguinte.
Nos Eventos AfterDelete e AfterPost se estiver usando o IBQuery Faça
TIBQuery(DataSet).Transaction.CommitRetaining;
Caso for o TIBDataSet então
TIBDataSet(DataSet).Transaction.CommitRetaining;
Aí automaticamente a cada Modificação da base de dados será atualizado.
Quando você grava, altera ou deleta algum registro, você deve fazer o seguinte.
Nos Eventos AfterDelete e AfterPost se estiver usando o IBQuery Faça
TIBQuery(DataSet).Transaction.CommitRetaining;
Caso for o TIBDataSet então
TIBDataSet(DataSet).Transaction.CommitRetaining;
Aí automaticamente a cada Modificação da base de dados será atualizado.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)