[firebase-br] RES: RES: Ajuda com Procedure

Cássio cassio.hc em gmail.com
Seg Jul 6 11:06:00 -03 2009


quanto a isso tudo bem, ate já tinha feito assim. o problema é na 
chamada da SP. porque to chamando asssim: Select * from SP(param)

se na sp existe=0 então tem que executar.. ai é que tá. não executa o 
delete.

isso não dá mesmo? o fb não aceita assim?

vlw.

Ivan Guimarães Meirelles escreveu:
> Olá Cássio...
> 
> Se vc só quer saber se tem relação... então use COUNT ao invés de usar
> COALESCE veja:
> 
> SELECT COUNT(1) 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;
> 
> Ai sim vc pode verificar se a variável existe retorna zero
> 
> IF (:EXISTE = 0) THEN...
> 
> Espero ter ajudado.
> 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: segunda-feira, 6 de julho de 2009 09:11
> Para: lista em firebase.com.br
> Assunto: Re: [firebase-br] RES: Ajuda com Procedure
> 
> Estou tentando executar minha SP conforme já falamos abaixo.
> Se eu a chamo pelo Execute Procedure nomesp(codigo); executa o delete se 
> retornar.
> 
> quando faço com select para obter o retorno, ele retorna o que deve 
> retornar porem não executa o delete.
> 
> select * from pr_minha(3); -- assim só retorna a msg mas não executa o 
> comando delete.
> 
> o que está faltando?
> 
> 
> 
> Magno System escreveu:
>> Não está dando certo porque quando não existe retorna NULL e não zero.
>>
>> Tente assim:
>>
>> SELECT COALESCE(LOC.ID_LOCACAO, 0) 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;
>>
>> ----- Original Message ----- From: "Ivan Guimarães Meirelles" 
>> <igmeirelles em gmail.com>
>> To: "'FireBase'" <lista em firebase.com.br>
>> Sent: Saturday, July 04, 2009 6:56 PM
>> Subject: [firebase-br] RES: Ajuda com Procedure
>>
>>
>> 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
>>
>>
>> ______________________________________________
>> 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
>>
> 
> 
> ______________________________________________
> 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
> 





Mais detalhes sobre a lista de discussão lista