[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