[firebase-br] Ref. Erro Trigger

Sandro Souza escovadordebits em gmail.com
Seg Dez 1 18:46:22 -03 2008


Bom dia/tarde Magno.

Sua observação foi perfeita.

Realmente o Firebird não reclamou quando tentei inserir via comando SQL um
valor nulo em um campo obrigatório que não tem qualquer valor padrão e que é
preenchido via trigger.

Por favor, queiram desculpa o meu engano.

2008/12/1 Magno System <magno em speet.com.br>

> No caso dele não vai dar erro, pois ele criou uma trigger BEFORE INSERT que
> gera o valor ao campo chave.
>
>
> ----- Original Message ----- From: "Sandro Souza" <
> escovadordebits em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Monday, December 01, 2008 5:04 PM
>
> Subject: Re: [firebase-br] Ref. Erro Trigger
>
>
> Bom dia/tarde pessoal.
>
> Lembrem-se que mesmo que vocês alterem a propriedade "Required" do
> respectivo campo para "False", o próprio Firebird não vai aceitar que você
> não envie o valor do respectivo campo, ou seja, o componente-campo que está
> no seu formulário está apenas refletindo a situação que ele encontrou na
> respectiva tabela.
>
> Você pode evitar que o componente-campo exiba a mensagem de campo
> obrigatório, mas vai esbarrar na mensagem de erro do próprio servidor
> Firebird reclamando que não recebeu o valor daquele campo obrigatório.
>
> Teste aí.
>
> 2008/12/1 Magno System <magno em speet.com.br>
>
>  Omar, o zeos tem a propriedade REQUIRED. Dê dois clique no ZQuery. Irá
>> aparecer os campos. Selecione o campo CHAVE e sete a propriedade REQUIRED
>> para FALSE.
>>
>>
>> ----- Original Message ----- From: "Omar Haddad" <omarhaddadm em gmail.com>
>> To: "FireBase" <lista em firebase.com.br>
>> Sent: Monday, December 01, 2008 2:15 PM
>> Subject: Re: [firebase-br] Ref. Erro Trigger
>>
>>
>>
>> Opa. Estou utilizando Zeos Lib.
>>
>> Estou usando Delphi 5 Enterprise e Zeos.
>>
>> Parece-me que ele está tentando gravar o reigstro sem valor para a chave,
>> mas a chave é gerada no banco.
>> Mas quem sabe terei de fazer da forma que vc utiliza ai. Saber o proximo
>> valor e atribuir ao campo.
>>
>> Obrigado
>>
>> Abraço
>>
>> 2008/12/1 Forrest(R) <fernando.bg em gmail.com>
>>
>>  Omar Haddad wrote:
>>
>>>
>>> > Salve amigos da lista, estamos ai aprendendo a trabalhar com o
>>> > Firebird ( is fire !) (rs)
>>> >
>>> > Mas amigos.é o seguinte:
>>> >
>>> > Anteriormente crei as tabelas sem campo chave específico, por exemplo,
>>> > categoria. Criei um generator e uma trigger ao inserir atualizando o
>>> > campo CAT_CODIGO (este seria o chave)
>>> >
>>> > Quando eu não tinha definido nenhum campo chave, funcionava de boa o
>>> > cadastro, inclusão/alteração/etc. Agora, resolvi definir um campo como
>>> > chave, e quem foi, (já sei) CAT_CODIGO,
>>> > coloquei ele como 'not null" e o defini na constraints como chave
>>> > primária
>>> >
>>> > Agora, rodando a aplicação, ao tentar inserir uma categoria, eu
>>> > recebo a mensagem:
>>> >
>>> > Campo "CAT_CODIGO" deve ter um valor"
>>> >
>>> > Mas se a trigger esta definida para o campo CAT_CODIGO no before
>>> > insert, qual a razão desta mensagem ?
>>> >
>>> > PS: Eu ja fui cliquei 2x no campo CAT_CODIGO, fui na aba
>>> > Auto-Increment e marquei a GEN_CATEGORIA, novamente mas nada.
>>> >
>>> > Abraço e obrigado pela paciência.
>>>
>>> Boa tarde Omar é o seguinte não sei qual componente você está usando,
>>> mas eu utilizo o DBX e para solucionar isso no ClientDataSet tem o
>>> evento onnewrecord. Nesse evendo eu atribuo um valor para o campo para
>>> não aparecer essa mensagem.
>>>
>>> T++++++++++++
>>>
>>> --
>>>
>>>
>>>
>>> ______________________________________________
>>> 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
>>
>>  ______________________________________________
> 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