[firebase-br] commitretaining

Fortes Marcelo marcelosoftware em yahoo.com.br
Ter Set 26 16:51:13 -03 2006



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


Mais detalhes sobre a lista de discussão lista