[firebase-br] RES: commitretaining

Eduardo Jedliczka (TeamFB) jedyfb em gmail.com
Ter Set 26 17:50:45 -03 2006


Commit Retaining não é SAVE POINT.

Commit Retaining é um hard-commit que retém o DataSet.

Se você quer que seja feito tudo ou não seja feito nada, é muito simples:

Try
      ExecProc1;
      ExecProc2;
      Commit;
except
      Rollback;
end;

======================
Eduardo Jedliczka
Membro do TeamFB - FireBase
Apucarana - PR
======================
"Posso não concordar com nada do que dizes.
Mas defenderei até a morte o seu direito de dizê-lo"
(Voltaire 1694-1778)
----- Original Message ----- 
From: "wilton em wos" <wilton em wosinformatica.com.br>
To: "'FireBase'" <lista em firebase.com.br>
Sent: Tuesday, September 26, 2006 5:30 PM
Subject: [firebase-br] RES: commitretaining


Sim, mas no meu caso, quero fazer um  bloco de procedimentos (São vários),
que sejam efetivamente realizados ou todos rejeitados.

Garantindo assim a integridade do processo... ta acontecendo de gravar uns e
outros não. Daí estar optando por essa solução... qual a melhor estrutura
para gravar vários arquivos entro de uma transaction???

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Fortes Marcelo
Enviada em: terça-feira, 26 de setembro de 2006 15:51
Para: FireBase
Assunto: Re: [firebase-br] commitretaining



O ideal é você ter uma transação para InterBase e Firebird
o mínimo de tempo necessário.

O problema é que um commit ou um rollback fecham seus
datasets, não é isso?

Então você está optando por commitretaining e
rollbackretaining

Em que a transação não é fechada realmente.
E acaba por criar um problema de performance, por isso,
não muito indicados.

No caso tente desenhar sua aplicação para estilo
Client/Server onde só um punhado pequeno de registros são
processados por vez, mas isso sana só parcialmente o
problema por que as veze fica chato mapear vários datasets
que estão fechados para abrirem etc...

Como suponho que estej usando IBX te indico que opte por
FIB Plus da devrace www.devrace.com, que são primos do ibx
melhorados, inclusive no Fib-plus você pode tem uma transação
só para leitura e outra pros updates, inserts, delets que
acaba com o problema de de deixar a transação aberta por
muito tempo, pois aí você dá um commit a cada update ou insert
ou delete.

O IBO também gerencia isso de forma bem elegante e inteligente
mas perde a compatibilidade com outros componentes.

Leia mais na seção artigos da www.firebase.com.br e você encon
trará dicas valiosas!

Marcelo Fortes.






No seu caso Basta ou o segundo se você quer todos os dois
procesos num batch só.

    Try

      ExecProc1;

      Commitretaining;

    Except

      Rollbackretaining;

    End;



    Try

      ExecProc2;

      Commitretaining;

    Except

      Rollbackretaining;

    End;

    Commmit;


"wilton em wos" <wilton em wosinformatica.com.br> escreveu: Olá galera, preciso
tirar uma duvida meio sinistra... como devo aplicar o
commitretaining, qual das estruturas é mais adequada??



Estrutura 1:



Startransaction;

Try

    Try

      ExecProc1;

      Commitretaining;

    Except

      Rollbackretaining;

    End;



    Try

      ExecProc2;

      Commitretaining;

    Except

      Rollbackretaining;

    End;



    Commmit;

Except

   Roolback;

End;


Estrutura 2:



Startransaction;

Try

   ExecProc1;

   Commitretaining;



   ExecProc2;

   Commitretaining;



   Commmit;

Except

   Roolback;

End;


Atenciosamente

Wilton de Oliveira



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa



---------------------------------
 Yahoo! Search
 Música para ver e ouvir: You're Beautiful, do James Blunt
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista