[firebase-br] RES: Ajuda com Procedure

Ivan Guimarães Meirelles igmeirelles em gmail.com
Sáb Jul 4 18:56:07 -03 2009


Olá Cássio... 
Não seria interessante usar FOREIGN KEY para controlar isso ??

Um abraço...

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Cássio
Enviada em: sábado, 4 de julho de 2009 10:26
Para: lista em firebase.com.br
Assunto: [firebase-br] Ajuda com Procedure

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





Mais detalhes sobre a lista de discussão lista