[firebase-br] Dúvida Geração de ID Generators.

Fabiano Moura mctbrasil em gmail.com
Ter Nov 9 15:57:53 -03 2010


Se você colocar o código NEW.CODPIS_CST = GEN_ID(GEN_NFE_PIS_CST,1); numa
trigger que somente é usado na inserção você pode tirar o IF sem problema
algum, desde que, o seu sistema não deixe o usuário a digitar o código,
afinal, se o sistema deixa o usuário digitar o código deve ter um motivo
para isso. Para evitar problema de chave primária, você pode fazer de N
formas, uma delas é disparar uma excessão pelo banco de dados mesmo e depois
tratar isso na aplicação ou fazer a checagem direto na aplicação se você
achar melhor.

Cada caso é um caso, precisa ser analisado todos os casos.



Obrigado,


Fabiano

Em 9 de novembro de 2010 15:47, Emerson Sanches
<emerson.sanches em gmail.com>escreveu:

> Bem isso não é tão sem sentido assim, esse tipo de código é feito para
> casos
> em que o usuário terá a opção de controlar o sequencial, por exemplo, o
> usuário precisa preencher buracos no sequencial deixados por exclusões. Sei
> que esse tipo de logica pode gerar problemas, pois se o usuário preencher o
> código com numero maior que o numero atual do generator, isso gerará
> problemas no futuro, mas é uma situação real (eu mesmo já tive que fazer).
>
> []s
> Emerson Sanches
> Analista de Sistemas
>
>
> Em 9 de novembro de 2010 15:39, Nivaldo Martins <nivaldomart em gmail.com
> >escreveu:
>
> > A primeira vista isso é totalmente sem sentido. Permite que um campo
> > controlado por um generator receba um valor qualquer. De fato em algum
> > momento o generator pode chegar no valor inserido aleatoriamente e dar
> pau
> > mesmo. O efeito colateral é justamente o que você colocou na sua pergunta
> >
> > Em 9 de novembro de 2010 14:19, Julio Cezar - Desenvolvimento <
> > juliocezarsilva em sfox.com.br> escreveu:
> >
> > > Boa Tarde,
> > >
> > >
> > >
> > > Aonde trabalho atualmente se utiliza o seguinte código para gerar os
> ids.
> > >
> > >
> > >
> > >  IF (NEW.CODPIS_CST IS NULL) THEN
> > >
> > >    NEW.CODPIS_CST = GEN_ID(GEN_NFE_PIS_CST,1);
> > >
> > >
> > >
> > >
> > >
> > > Gostaria de saber se está é a maneira mais correta? Pois que fez assim
> > > disse
> > > ter aprendido assim e sempre ter visto somente dessa maneira, mas vi
> que
> > se
> > > por acaso o id for enviado no sql o mesmo será inserido e o generator
> não
> > > ativado e na próxima inserção com o generator não ocorrerá um erro de
> > chave
> > > primaria duplicada não?
> > >
> > >
> > >
> > > Obrigado.
> > >
> > > Julio
> > >
> > >
> > > Nada substitui o ser humano! Inst. Faber Ludens
> > >
> > >
> > >
> > > ______________________________________________
> > > 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
> > >
> > ______________________________________________
> > 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
> >
> ______________________________________________
> 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
>



Mais detalhes sobre a lista de discussão lista