[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