[firebase-br] Procedure como função em Trigger

Rodrigo Gomes da Silva rodrgomes em gmail.com
Sex Jul 5 15:10:26 -03 2013


Por sinal, vc poderia colocar a trigger no before update e insert e fazer
direto por setagem de variavel, sem depender de um novo update na trigger,
usando algo como

 if ((inserting) or (old.clinome <> new.clinome)) then
   begin
       select ret_fonetica  from prc_fonetica(new.nome,10, 'n') into new.
clifonetic;
   end

Detalhe, imagino q a comparação com o (old.clinome <> new.clinome) pode dar
falsa se o registro anterior estiver com null e o novo não


Em 5 de julho de 2013 15:06, Rodrigo Gomes da Silva
<rodrgomes em gmail.com>escreveu:

> Troca o update por
>
>        UPDATE
>            Clientes cli
>        SET
>            cli.clifonetic = (select ret_fonetica  from
> prc_fonetica(new.nome,10, 'n'))
>        WHERE
>            cli.codigo = new.clicod;
>
>
> Em 5 de julho de 2013 11:38, Reinaldo <diasmartins em gmail.com> escreveu:
>
>
>> Bom Dia.
>>
>> Tenho um procedure que calcula a fonetica de um determinado texto como
>> abaixo.
>>
>> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**
>> =-=-=-=-=-
>>
>> procedure prc_fonetica(Texto, Tamanho Bloco, Vogais_Sim_Nao);
>> begin
>>    trata Texto
>>    ret_fonetica = Texto tratado
>>    suspend;
>> end
>>
>> E a mesma está executando perfeitamente.
>>
>> execute procedure prc_fonetica('charles pascoal da silva xavier', 10, 'n')
>> ret_fonetica = 'XRLZ PZKL ZLV XVR'
>>
>> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**
>> =-=-=-=-=-
>>
>> A dúvida está no seguinte, gostaria de chamar essa função toda vez que o
>> nome do cliente fosse inserido ou alterado porém não estou conseguindo.
>> Tentei fazer algo como abaixo, porém está dando erro
>> no comando de execute procedure, tambem tentei criar uma variavel, porém
>> nao funcionou tambem.
>>
>> Alguém pode dar alguma dica.
>>
>> Reinaldo
>> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**
>> =-=-=-=-=-
>>
>> TRIGGER CLIENTES
>> AS
>> begin
>>    if ((inserting) or (old.clinome <> new.clinome)) then
>>    begin
>>        UPDATE
>>            Clientes cli
>>        SET
>>            cli.clifonetic = execute procedure prc_fonetica(new.nome,
>> 10, 'n')
>>        WHERE
>>            cli.codigo = new.clicod;
>>    end
>> end
>> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**
>> =-=-=-=-=-
>>
>>
>>
>>
>>
>>
>> ______________________________**________________
>> 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<http://www.firebase.com.br/fb/artigo.php?id=1107>
>> Para consultar mensagens antigas: http://firebase.com.br/**pesquisa<http://firebase.com.br/pesquisa>
>>
>
>



Mais detalhes sobre a lista de discussão lista