RES: [firebase-br] If dentro de Stored Procedure
Ton
hevertonc em hotmail.com
Qua Nov 23 16:33:42 -03 2005
Tenta o seguinte: A parte alterada está com setas:
CREATE PROCEDURE SPR_atualiza_status(
IDUSUARIO INTEGER,
IDSTATUS INTEGER,
DELOCAL VARCHAR(255),
DTINICIO TIMESTAMP,
DTFIM TIMESTAMP
)
AS
>>Declare variable CONT_USU Integer;
BEGIN
>> select count(*)
>> from usuariostatus
>> where idUsuario = :IDUSUARIO
>> into :CONT_USU;
>> if (:CONT_USU = 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
Ton
Analista de Sistemas
DotCom Informática
"A informação não é um produto,
mas sim a matéria prima." (Ton)
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Frederico Fernandes
Enviada em: quarta-feira, 23 de novembro de 2005 16:22
Para: lista em firebase.com.br
Assunto: [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
Mais detalhes sobre a lista de discussão lista