[firebase-br] RES: RES: Trigger

UPSAI | Informatica informatica em upsai.com.br
Quinta Setembro 8 14:24:15 -03 2022


Grato


O que eu estou buscando é (me baseando no exemplo):

         if (new.qt_quantia is null) then
         begin
           instrução para abortar a execução da trigger (ou seja não realizar o comando COMMIT na tabela);
         end

Saudações

Wagner Aranha
Tel. (11) 2606-4100

 Antes de imprimir, pense em sua responsabilidade e compromisso para com o MEIO AMBIENTE.
Esta mensagem, incluindo qual(is)quer anexo(s), é endereçada exclusivamente ao(s) seu(s) destinatário(s) e poderá conter informações confidenciais. A revisão, distribuição, divulgação e o uso não autorizado de tais informações é proibido e estará sujeita as penalidades cabíveis.
Caso você não seja o destinatário, por favor informe o remetente respondendo o e-mail e destrua todas as cópias da mensagem original. 

-----Mensagem original-----
De: lista <lista-bounces em firebase.com.br> Em nome de José Mauricio Barbisan Zottis via lista
Enviada em: quinta-feira, 8 de setembro de 2022 13:26
Para: Carlos H. Cantu <listas em warmboot.com.br>; FireBase <lista em firebase.com.br>
Cc: José Mauricio Barbisan Zottis <zottissistemas em gmail.com>
Assunto: Re: [firebase-br] RES: Trigger

acho que o que você quer fazer é algo assim:
CREATE EXCEPTION EXCEPTION_GENERICA 'MEU TEXTO!';

       if (old.qt_atendida > 0) then
         begin
           EXCEPTION exception_generica 'JÁ EXISTE QUANTIDADE ATENDIDA.
IMPOSSÌVEL EXCLUIR - SOLICITAÇÃO';
         end else
         if (old.qt_quantia is null) then
         begin
           EXCEPTION exception_generica 'A QUANTIDADE PRECISA SER DECLARADA;
         end else




Em qui., 8 de set. de 2022 às 12:19, Carlos H. Cantu via lista < lista em firebase.com.br> escreveu:

> Você não leu a documentação com atenção.
>
> Exception tem que ser seguido do nome da exceção que será disparada. 
> Só pode ser usado sem o nome se já estiver dentro de um bloco de 
> tratamento de exceção e vc quiser dar um re-raise da exceção capturada 
> por ele.
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php 
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> U|I> Prezados
>
> U|I> Grato pelas informações.
>
> U|I> Seguindo as orientações contidas no link, tentei executar as 
> U|I> seguintes instruções (a trigger foi compilada sem problemas):
>
> U|I> "AS
> U|I>  declare variable Entrega date;
> U|I> begin
> U|I>    EXCEPTION;"
>
> U|I> Porém a execução do código não foi interrompido.
>
>
> U|I> Ai realizei a seguinte modificação:
>
>
> U|I> "AS
> U|I>  declare variable Entrega date;
> U|I> begin
> U|I>    EXCEPTION;
> U|I>    exception producao;"
>
>
> U|I> Desta forma a execução do procedimento é interrompido no 2º exception.
>
> U|I> O que poderia estar faltando no comando?
>
> U|I> Em realidade estou precisando de um comando que interrompa a 
> U|I> execução
> de uma
> U|I> trigger dado certas condições como por exemplo um campo em 
> U|I> branco,
> etc. Não
> U|I> precisa ser necessariamente o EXCEPTION.
>
> U|I> Saudações
>
> U|I> Wagner Aranha
>
> U|I> -----Mensagem original-----
> U|I> De: lista <lista-bounces em firebase.com.br> Em nome de Carlos H. 
> U|I> Cantu
> via
> U|I> lista
> U|I> Enviada em: quinta-feira, 8 de setembro de 2022 08:51
> U|I> Para: FireBase <lista em firebase.com.br>
> U|I> Cc: Carlos H. Cantu <listas em warmboot.com.br>
> U|I> Assunto: Re: [firebase-br] Trigger
>
> U|I> Você pode gerar exception tanto em trigger como em procedure, e
> capturar ela
> U|I> com um bloco when...do...
>
> U|I> Mais informações:
> U|I>
> https://ib-aid.com/download/docs/firebird-language-reference-2.5/fblan
> gref25
> U|I> -psql-handleexceptions.html
>
> U|I> []s
> U|I> Carlos H. Cantu
> U|I> eBook Guia de Migração para o FB 4 - 
> U|I> www.firebase.com.br/guiafb4.php www.FireBase.com.br - 
> U|I> www.firebirdnews.org - blog.firebase.com.br
>
> U|Ivl>> Prezados
>
> U|Ivl>>
>
> U|Ivl>> Em uma trigger, existe alguma forma de executar a instrução
> EXCEPTION
> U|I> onde:
>
> U|Ivl>> 1- não seja exibido mensagens;
>
> U|Ivl>> 2- que o procedimento da trigger seja finalizado?
>
> U|Ivl>>
>
> U|Ivl>> Ou se existe algum outro comando para abandonar a execução de 
> U|Ivl>> uma Trigger....
>
> U|Ivl>>
>
> U|Ivl>> Atenciosamente
>
> U|Ivl>>
>
> U|Ivl>> Wagner
>
> U|Ivl>>
>
> U|Ivl>>
>
> U|Ivl>> Saudações
>
> U|Ivl>>
>
> U|Ivl>> Wagner Aranha
>
> U|Ivl>> ______________________________________________
> U|Ivl>> FireBase-BR (www.firebase.com.br) - Hospedado em 
> U|Ivl>> www.locador.com.br Para saber como gerenciar/excluir seu 
> U|Ivl>> cadastro
> na
> U|I> lista, use:
> U|Ivl>> http://www.firebase.com.br/fb/artigo.php?id=1107
> U|Ivl>> Para consultar mensagens antigas:
> U|Ivl>> http://www.firebase.com.br/pesquisa_lista.html
>
>
> U|I> ______________________________________________
> U|I> FireBase-BR (www.firebase.com.br) - Hospedado em 
> U|I> www.locador.com.br
> Para
> U|I> saber como gerenciar/excluir seu cadastro na lista, use:
> U|I> http://www.firebase.com.br/fb/artigo.php?id=1107
> U|I> Para consultar mensagens antigas:
> U|I> http://www.firebase.com.br/pesquisa_lista.html
>
>
> ______________________________________________
> 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://www.firebase.com.br/pesquisa_lista.html
>


--
______________________________________________
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://www.firebase.com.br/pesquisa_lista.html




Mais detalhes sobre a lista de discussão lista