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

Omar Marques Haddad omarhaddadm em gmail.com
Ter Nov 23 09:41:21 -03 2010


Opa, Bom dia.

Felipe,

Deve ser uma transação somente, mesmo que subrotinas (função
"LançarItensDaVenda") estejam em outra parte do programa ou similar ?

Obrigado.

Ats.
Omar M. Haddad

Em 23 de novembro de 2010 07:41, Felipe Aron <felipearon em gmail.com>escreveu:

> 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/)
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Att.
Omar Marques Haddad
Analista de Sistemas Sênior



Mais detalhes sobre a lista de discussão lista