[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