[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