[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