[firebase-br] Ajuda com Procedure

Washington Tavares washingtontavares em gmail.com
Sáb Jul 4 11:40:32 -03 2009


Cássio,

Nesta setença: SELECT ID_ORIGEM
                       FROM   LANCAMENTOS
                       WHERE  ID_ORIGEM=LOC.ID_lOCACAO)
                              AND LOC.ID_LOCACAO =:ID_LOCACAO
Caso não exista ela retornará NULL, nesse caso a sua condição deveria
ser  IF (:EXISTE IS NULL)

Washington Tavares

2009/7/4 Cássio <cassio.hc em gmail.com>:
> Opa.
> Quero fazer uma pr que exclua um registro de uma tabela caso não exista este
> registro não esteja em outra. fiz assim, mas sem sucesso.
>
>
> SET TERM ^ ;
>
> RECREATE PROCEDURE PR_EXCLUIR_LOC (
>  ID_LOCACAO BIGINT)
> AS
> DECLARE VARIABLE EXISTE INTEGER;
>
> BEGIN
>  --verifico se há locação em lançamentos e adicionado o resutado no inteiro
> existe.
>  SELECT LOC.ID_LOCACAO FROM LOCACOES LOC
>  WHERE ID_LOCACAO IN (SELECT ID_ORIGEM
>                       FROM   LANCAMENTOS
>                       WHERE  ID_ORIGEM=LOC.ID_lOCACAO)
>                              AND LOC.ID_LOCACAO =:ID_LOCACAO INTO :EXISTE;
>
>   IF (:EXISTE = 0) THEN --caso não exista então apaga a locação...
>     BEGIN
>          DELETE FROM LOCACOES WHERE LOCACOES.ID_LOCACAO =:ID_LOCACAO;
>    END
> END^
>
> SET TERM ; ^
>
> chamo por fora assim:
> execute procedure pr_excluir_loc(5);
>
> retorna "The command(s) completed successfully."
> mas o registro da locação continua la.
>
>
> obrigado!
>
>
> ______________________________________________
> 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
>



-- 
Washington Tavares




Mais detalhes sobre a lista de discussão lista