[firebase-br] Qual o Componente Usar

Eduardo Bahiense eduardo em icontroller.com.br
Sex Jun 2 22:27:25 -03 2006


Esta é, certamente, a maneira correta de se fazer.

Só pegue o generator quando for realmente usar.

Generators são uma benção para se trabalhar com segurança em ambientes 
multiusuários.
Tentar voltar um generator pode ser desastroso. Observe:

1. peguei o GEN_ID(X,1)

2. agaurdei o usuário confirmar e ele cancelou

3. voltei o Generator para seu Valor -1

entre 1. e 3. outros terminais incrementaram o generator

Aí você diz, vou resetar o generator pelo MAX(X) from tabela, mas...

O Banco pode retorna um gen_id tão rápido, que no tempo em que ele 
processa uma transação "select max()", outros threads podem incrementar 
o generator diversas vezes.

Desta forma, na minha humilde opinião, a menos que você tenha certeza 
que não há outros riscos, deixe o banco gerenciar os generators e fique 
em paz.

[]s Eduardo


Arno escreveu:
> Fernando, obrigado pela resposta, o controle do generator está sendo feito
> por meio de uma trigger, resolví parcialmente o problema setando o
> componente mdo para disparar a trigger no post, assim, em caso de
> cancelamento, não perco a sequência dos registros, mas ainda acho que esta
> não seria a melhor solução.
> 
> Bom final de semana a todos...
> 
> Arno.





Mais detalhes sobre a lista de discussão lista