[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