[firebase-br] Commit em transações.

Magno System magno em speet.com.br
Qui Mar 22 18:43:26 -03 2007


Pessoal, é o seguinte: recentemente fiz uma mudança no meu programa onde ao commitar uma transação eu faço assim:

Try
    Transacao.commit
Except
   Transacao.Rollback;

Antes eu só executava a transacao.commit fora do try, ou seja quando dava algum erro de execução da procedure o rollback não era chamado. Minhas duas dúvidas são as seguintes.

1 -O Firebird executa o rollback automaticamente, se houver algum erro na transação e você não der explicitamente um rollback ? 

2 - Houve caso com dois clientes em que deu um erro de execução numa procedure. Ele fechou o programa e abriu de novo. Trabalhou normalmente. No outro dia ele disse que todo o conteúdo registrado após o erro da procedure não havia sido gravado. A impressão que tenho é que de por algum motivo após o erro, os dados não foram commitados. Será que existe a possibilidade deste dados não terem sido gravados devido a falta de um rollback quando ocorreu o erro na execução da procedure ?

Uso o componente Zeos 6.5.1, Servidor Windows XP Professional, Estações Windows 98 (nos dois clientes).


Mais detalhes sobre a lista de discussão lista