[firebase-br] Ref. Sub-transações Firebird 2.1

Felipe Aron felipearon em gmail.com
Ter Nov 23 08:41:18 -03 2010


Uma transação serve para dizer que as informações relacionadas a ela foram
salvas corretamente ou não.

Imagine sua conta bancária e que você irá retirar 100,00 do caixa
eletrônico. Basicamente a grosso modo irá ter 2 processos:

1) Debitar 100,00 do seu saldo.

2) Liberar o dinheiro para você.

Esses dois processos, assim como teu exemplo, precisam ser concluídos como
um todo, ou seja, não pode apenas fazer um dos processos. Se isso ocorrer,
não se deve fazer nenhum, ou seja, ou faz todo o processo corretamente ou
não faz nada. Isso garante a integridade das informações.

Imagine se isso não ocorresse corretamente - o sistema iria debitar 100,00
da tua conta mas por algum motivo o dinheiro não foi liberado - simplesmente
você perdeu essa grana.

Então, para o controle desses casos, existe a transação (já pensando em
banco de dados), onde foi abrir 1 transação para o processo total - no teu
caso venda e itens da venda:

try
   AbrirTransação;

   EmitirVenda;
   LançarItensDaVenda;

   FecharTransação; (commit)

except

   ExtornarTransação; (rollback)

end

Fazendo assim, garante a total integridade das informações. Sempre pense no
processo TOTAL, onde nesse caso irá ter apenas 1 transação controlando todo
esse processo.

Espero que tenha ajudado essa informação. :D

Abraço.

-- 
#FollowMe: @felipearon <http://twitter.com/felipearon> (
http://felipearon.com.br/)



Mais detalhes sobre a lista de discussão lista