[firebase-br] GEN_ID TRIGER & Valores por Defeito

Renato Miranda renato.smiranda em gmail.com
Sáb Jan 20 20:23:53 -03 2007


Mário, tudo bem ?

Se entendi o seu problema, esclareço o seguinte:

Até o Delphi 7 ainda há um "bug" nos campos "not null" que, mesmo usando um
trigger before insert, tem que estar preenchidos com um valor qualquer ANTES
do trigger disparar. Eu costumo usar 0 (zero). Uma vez feito isso, o trigger
dispara e coloca o valor correto no campo.

Abraços,

RMiranda

Em 20/01/07, Mário Reis <secretariadogeral em acra.pt> escreveu:
>
> Olá pessoal,
>
> Cá estou eu de novo. Desta vez por causa do comportamento do D7 + Firebird
> +
> DbExpress. Mas crei que o mm vale para qq outro modo de aceder à base de
> dados:
>
> É assim: tenho este campo NOT NULL Primary_KEY C/autoiincremento triger
> /GEN_ID(<qq_coisa,>,1 ). Porém quando estou a inserir dados sou obrigado a
> fornecer
> o valor deste campo do lado do Cliente D7 o mesmo se passando com os
> campos
> com valor por defeito. Isto é, o servidor não me fornece esses dados
> quando
> tinha toda a vantagem nisso.
> Obriga-me a chamar via SQLQuery a função Gen_ID(????) e a
> SQLStoredProcedure
> para assignar os valores do lado do cliente e envia-los ao servidor.
> Isto é mesmo assim ou estou errado? Como se pode ustrapassar isto.
> Então não era muito mais fácil enviar do lado do cliente apenas os
> dados/valores do meu input enquanto o servidor se encarregaria de fornecer
> o
> Autoincremento e os valores por defeito?
> Cheguei inclusivé a alterar a minha triger para caso o valor fosse zero
> ter
> o mm comportamento que o NULL mas nada feito, fica tudo na mesma.
> Alguem pode explicar-me a vantagem destes campos se tenho de estar a
> invocár
> a sua chamada do lado do cliente antes do triger disparar, particularmente
> porque se trata de um triger "Before Insert"?
> Depois se eu permitir que o cliente faça input do campo de autorincremento
> ele não incrementa e a consistencia dos dados poderá ficar em causa.
> Certo?
> Estarei enganado?
>
> Obrigado
> Mário
>
>
>
>
>
>
> ______________________________________________
> 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
>
>


-- 
Abraços,

RMiranda



Mais detalhes sobre a lista de discussão lista