[firebase-br] usando IF no fb

Fábio Marques fmarques em nautilus.com.br
Sex Abr 17 15:37:16 -03 2009


    Eu tenho uma SP que faz exatamente isso o que você está falando, 
verifica se o registro existe ou não... Dê uma olhada e adapte às suas 
necessidades.

> CREATE PROCEDURE GRAVARLOCAL (
>     ID Integer,
>     ... outras entradas omitidas )
> AS
> DECLARE VARIABLE EXISTE Integer;
> BEGIN
>   /* write your code here */
>   SELECT COUNT(ID) FROM LOCAL
>     WHERE ((ID) = :ID)
>   INTO :EXISTE;
>
>   IF (:EXISTE = 0) THEN
>     BEGIN
>       SELECT COALESCE(MAX(ID), 0) + 1
>         FROM LOCAL
>         INTO :ID;
>
>       INSERT INTO LOCAL (ID, ...) VALUES (:ID, ....);
>     END
>   ELSE
>     UPDATE LOCAL
>       SET ....
>       WHERE ((ID) = :ID);
> END^
> SET TERM ; ^

-- 
F. Marques
Systems Analyst/IT Consultant
E-mail/MSN: fmarques em nautilus.com.br
Home Page: www.nautilus.com.br/~fmarques
Mobile: 91 8208-5996 (TIM) & 8859-3998 (OI) / ICQ: 267-074-196
Linux Registred User #362204 (debian 5.0 "Lenny")
Brazilian Computer Society Member #18201

"The box said: Requires MS Windows or better, so I instaled Linux"



Magno System wrote:
> Se eu estiver errado corrijam-me mas desta forma você tem que fazer 
> dentro de uma STORED PROCEDURE ou usando o comando EXECUTE BLOCK
>
>
> ----- Original Message ----- From: "Cássio" <cassio.hc em gmail.com>
> To: <lista em firebase.com.br>
> Sent: Friday, April 17, 2009 2:39 PM
> Subject: Re: [firebase-br] usando IF no fb
>
>
> Estranho. To fazendo assim:
>
> if (not exists (select descricao
>               from dados
>               where descricao='Aluguel Temporada')) then
>    INSERT INTO DADOS
>    Select max(id_dado) + 1 as id_dado, 'Aluguel Temporada' as descr, 11
> as id
>    from dados;
>
> e retorna este erro:
>
> SQL Error:  Dynamic SQL Error SQL error code = -104 Token unknown - line
> 1, column 1 if. Error Code: -104.
>
>
>
>
> Daniel Hiromy escreveu:
>> if (exists(select registro from tabela)) then
>>   insert
>>
>>
>>
>> 2009/4/17 Cássio <cassio.hc em gmail.com>
>>
>>> opa.
>>> quero fazer um insert numa tabela mas antes do insert verificar 
>>> (select) se
>>> o registro já existe na tabela..
>>>
>>> tipo assim:
>>> if (select registro) = true then
>>>        insert registro
>>>
>>> como faço isso no firebird, qual a sintaxe?
>>>
>>> vlw.
>>>
>>>
>>> ______________________________________________
>>> 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
>
>
> -------------------------------------------------------------------------------- 
>
>
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 8.0.238 / Virus Database: 270.11.59/2064 - Release Date: 
> 04/17/09 07:08:00
>
>
> ______________________________________________
> 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