[firebase-br] GEN_ID TRIGER & Valores por Defeito

Mário Reis secretariadogeral em acra.pt
Dom Jan 21 11:17:57 -03 2007


Depois tem outra cena! Imagine tenho uma triger que valida o Checkdigit de 
um numero funciona perfeitamente com o MDO mas não é disparada com o 
DbExpress???
Alguma ideia?
Obrigado
Mário


"Erick Sasse" <erick.sasse em cadena.com.br> escreveu 
na mensagem 
news:24113230701210452g72ba78f2ua1599300c8214bd8 em mail.gmail.com...
Se você marcar no SQLDataSet (ou SQLQuery) e no ClientDataSet o campo
como Required = False, o Delphi vai permitir que você deixe em branco.

O problema é que o banco vai preencher esse valor no trigger, mas o
Delphi não vai recarregar o valor pra você no DataSet.

Nesse caso, eu recomendo usar o BeforeUpdateRecord do DataSetProvider
para atribuir a chave primária quando for uma inserção.

Erick

On 1/20/07, Mário Reis <secretariadogeral em acra.pt> 
wrote:
> 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
>
>

______________________________________________
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







Mais detalhes sobre a lista de discussão lista