[firebase-br] Ajuda com Procedure

Washington Tavares washingtontavares em gmail.com
Sáb Jul 4 12:36:10 -03 2009


Voce poderia criar um parametro de retorno e atribuir um valor ou
mensagem, como no exemplo abaixo :

CREATE PROCEDURE PR_EXCLUIR_LOC (ID_LOCACAO BIGINT)
RETURNS(  MENSAGEM VARCHAR(30) )
AS
MENSAGEM=''

 IF (:EXISTE = 0) THEN --caso não exista então apaga a locação...
   BEGIN
         DELETE FROM LOCACOES WHERE LOCACOES.ID_LOCACAO =:ID_LOCACAO;
         MENSAGEM='REGISTRO EXCLUIDO'
   END



2009/7/4 Cássio <cassio.hc em gmail.com>:
> Perfeito, isso mesmo.
> Mais uma dúvida. como eu faço para que a procedure me retorne se a delete
> aconteceu ou não?
>
>
> vlw.
>
>
>
> Washington Tavares escreveu:
>>
>> 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
>>>
>>
>>
>>
>
>
> ______________________________________________
> 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