[firebase-br] RES: Trigger com campo não presente na sql

Alysson Azevedo agalysson em gmail.com
Qui Jun 17 08:54:02 -03 2010


vi duas possibilidades, vc trata via programação, a sql pra nos momentos que
nao "mencionar" o codigo, a rotina inclua um update codigo = 0... mais ai
cai na sua restrição sobre não poder sempre colocar com 0 em valor padrão...

outra coisa seria se vc pudesse criar uma sp que trate isso... talvez
resolva...
--

Alysson Gonçalves de Azevedo
(11) 8491-7730

(\(''^_^ )/)

"Pobre vive dizendo que não tem nada, mas quando vem a enchente, ele sai
gritando: -Perdi tudo!!!"




Em 17 de junho de 2010 08:12, Kelver Merlotti <kmerlotti em gmail.com>escreveu:

> Eduardo Pombo: DEFAULT é útil somente no INSERT e no caso, preciso
> dele também para o UPDATE. De qualquer forma, obrigado pela força. ;)
>
> Sandro: Exatamente! Independente do valor que já estiver no campo
> CODIGO, se este campo for mensionado no UPDATE/INSERT, devo respeitar
> o valor que está vindo na instrução, caso contrário - campo CODIGO não
> presente na instrução - o valor dele deve passar para zero.
>
> Abraço!
>
> Kelver Merlotti
> Coordenador Editorial do Portal www.ActiveDelphi.com.br
> Contato: kelver em activedelphi.com.br
> Google: kmerlotti em gmail.com
> Msn: kmerlotti em hotmail.com
> Twitter: http://twitter.com/kmerlotti
> Tem um segundo? Então, dá uma olhadinha nisso:
> Um site de publicidades, de Portugal, está pagando em euros (quase 3x
> mais que em reais) pra quem estiver disposto a:
>  * Ler anúncios
>  * Visitar sites
>  * Clicar em banners
>  * Navegar na NET
>  * Ler e-mails
>  * Convidar novos usuários
> O pagamento pode ser feito de várias formas!
> Registra lá. Não custa nada!!! ;-)
> http://www.publipt.com/pages/index.php?refid=kmerlotti
>
>
>
> 2010/6/16 Sandro <sandro_rebelo em ibest.com.br>:
> > Ola, uma duvida para poder ajudá-lo
> >
> > Se o campo código já conter um valor, exemplo: 20
> >
> > E se o update não fizer menção ao campo código,  mesmo assim vc quer que
> ele
> > passe de 20 para 0 ?
> >
> >
> >
> >
> > -----Mensagem original-----
> > De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br]
> Em
> > nome de Kelver Merlotti
> > Enviada em: quarta-feira, 16 de junho de 2010 18:15
> > Para: FireBase
> > Assunto: [firebase-br] Trigger com campo não presente na sql
> >
> > Fala galera, boa noite!
> > Já perdi algumas horinhas brincando com isso e não consegui resolver.
> > Por favor, antes de responder dizendo que eu estou maluco (rs),
> > reproduzam aí pra ter certeza que funcionou:
> >
> > CREATE TABLE TESTE(
> >   CODIGO INTEGER NOT NULL,
> >   NOME VARCHAR(10))
> >
> > INSERT INTO TESTE VALUES (10, 'TESTE')
> >
> > CREATE OR ALTER TRIGGER TESTE_BIU0 FOR TESTE
> > ACTIVE BEFORE INSERT OR UPDATE POSITION 0
> > AS
> > begin
> >  IF (NEW.CODIGO IS NULL) THEN
> >    NEW.CODIGO = 0;
> > end
> >
> > O x da questão é: se nesse momento eu fizer ...
> >
> > UPDATE TESTE SET NOME = 'ABC' WHERE NOME = 'TESTE'
> >
> > ... preciso que o CODIGO seja igual a 0 (zero), ou seja, se o campo
> > CODIGO não estiver no UPDATE / INSERT, preciso que ele passe para
> > zero.
> >
> > Porém, se eu fizer...
> >
> > UPDATE TESTE SET NOME = 'ABC', CODIGO = 10 WHERE NOME = 'TESTE'
> >
> > ... aí tenho que respeitar o valor que está vindo no comando, ou seja,
> > o código seria realmente 10 e não 0 (zero)!
> >
> > Obs.: NÃO há possibilidade, "em hipótese alguma", de eu poder alterar
> > o primeiro update pra sempre passar um valor padrão para o campo
> > CODSINC e comparar na trigger se está vindo este valor padrão. A
> > necessidade realmente é saber se veio ou não o campo na instrução sql
> > de update ou insert.
> >
> > Taí.. espero uma luz, já antecipando meus agradecimentos.
> >
> > Abraços galera!
> >
> > Kelver Merlotti
> > Coordenador Editorial do Portal www.ActiveDelphi.com.br
> > Contato: kelver em activedelphi.com.br
> > Google: kmerlotti em gmail.com
> > Twitter: http://twitter.com/kmerlotti
> > Tem um segundo? Então, dá uma olhadinha nisso:
> > Um site de publicidades, de Portugal, está pagando em euros (quase 3x
> > mais que em reais) pra quem estiver disposto a:
> > * Ler anúncios
> > * Visitar sites
> > * Clicar em banners
> > * Navegar na NET
> > * Ler e-mails
> > * Convidar novos usuários
> > O pagamento pode ser feito de várias formas!
> > Registra lá. Não custa nada!!! ;-)
> > http://www.publipt.com/pages/index.php?refid=kmerlotti
> >
> > ______________________________________________
> > 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