[firebase-br] If dentro de Stored Procedure
Renato - Eficaz Informática
renato em eturbo.com.br
Qua Nov 23 16:38:17 -03 2005
até onde eu já apanhei, esse select não pode fazer parte da condição IF
THEN, vc terá que fazer o select descarregar o valor em uma variavel e
depois usa-la na condição, ficaria assim:
CREATE PROCEDURE SPR_atualiza_status(
IDUSUARIO INTEGER,
IDSTATUS INTEGER,
DELOCAL VARCHAR(255),
DTINICIO TIMESTAMP,
DTFIM TIMESTAMP
)
AS
declare variable v_contador integer;
BEGIN
select count(*) from usuariostatus where idUsuario = :IDUSUARIO
into :v_contador;
if (v_contador = 0 ) THEN
BEGIN
insert into usuariostatus
(idUsuario, idStatus, deLocal, dtInicio, dtFim)
values
(:idUsuario, :idStatus, :deLocal, :dtInicio, :dtFim);
END
ELSE BEGIN
update usuariostatus set
idStatus = :idStatus,
deLocal = :deLocal,
dtInicio = :dtInicio,
dtFim = :dtFim
where idUsuario = :idUsuario;
END
END
----- Original Message -----
From: "Frederico Fernandes" <fredy992 em hotmail.com>
To: <lista em firebase.com.br>
Sent: Wednesday, November 23, 2005 4:22 PM
Subject: [firebase-br] If dentro de Stored Procedure
> Quando teno criar a Stored Procedure abaixo me da um erro na linha do "if
> (select count(*)....."
> Me diz :
>
> "Token unknown - line 10, char 9.
> select."
>
> O que tem de errado nessa Stored Procedure minha ???
>
> CREATE PROCEDURE SPR_atualiza_status(
> IDUSUARIO INTEGER,
> IDSTATUS INTEGER,
> DELOCAL VARCHAR(255),
> DTINICIO TIMESTAMP,
> DTFIM TIMESTAMP
> )
> AS
> BEGIN
> if (select count(*) from usuariostatus where idUsuario = :IDUSUARIO) =
> 0
> THEN
> BEGIN
> insert into usuariostatus
> (idUsuario, idStatus, deLocal, dtInicio, dtFim)
> values
> (:idUsuario, :idStatus, :deLocal, :dtInicio, :dtFim);
> END
> ELSE BEGIN
> update usuariostatus set
> idStatus = :idStatus,
> deLocal = :deLocal,
> dtInicio = :dtInicio,
> dtFim = :dtFim
> where idUsuario = :idUsuario;
> END
> END
>
>
>
>
--------------------------------------------------------------------------------
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista