[firebase-br] GEN_ID TRIGER & Valores por Defeito

Jeferson Oliveira jefersonfoliveira em gmail.com
Dom Jan 21 10:43:01 -03 2007


Mário Reis escreveu:
> Mas isso é perverter o que de bom existe nas bases de dados relacionais! O
> Delphi tem bugs corrijam-se os bugs Se fizermos todos pressão junto da
> Borland ela pela certa que os corrigirá.
> Não acham?

Se o desenvolvedor especifica na aplicação que o campo é de
preenchimento obrigatório, nada mais adequado do que a aplicação
alertar em caso de não preenchimento deste. A aplicação tem regras
independentes do banco de dados; e as regras de preenchimento tratam
exatamente de validações prévias à gravação no banco. Acho antes que
trata-se de uma questão de modelagem.

Se precisa exibir o valor da nova chave mesmo antes do registro ser
gravado, então incluir GEN_ID(SeuGenerator, 1) é uma boa saída, desde
que tenha ciência que em caso de cancelamento da inclusão esse número
da sequência já foi utilizado. Se, por outro lado, não precisa exibir
a chave antes da confirmação do cadastro, incrementar o valor na
trigger BeforeInsert deve ser o suficiente.

De toda forma, os componentes InterbaseExpress (IBX) possuem a
propriedade GeneratorField, que trata com eficácia esse problema; os
componentes ZeosDBO possuem o TZSequence que também resolve com
primazia essa questão.
Por isso tenho dúvidas se estamos falando de um bug, ou da ausência de
um recurso útil. Por tantas questões pequenas como essas que há muito
já deixei de utilizar dbExpress.


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista