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?


Fcampos

Fcampos

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+


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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar