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

Kelver Merlotti kmerlotti em gmail.com
Qui Jun 17 09:11:24 -03 2010


Bom dia, Sr. Alysson "F7"!
Como já comentei, mudar a programação onde as instruções são
executadas é impossível.
Já sobre utilizar SP poderia dar alguma sugestão sobre como seria a procedure?
Será mesmo que não tem outra alternativa pra saber se o campo está ou
não na instrução UPDATE/INSERT ?
Obrigado e fico no aguardo de mais alguma sugestão da lista.

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



2010/6/17 Alysson Azevedo <agalysson em gmail.com>:
> 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
>>
> ______________________________________________
> 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