Retornar Valores em uma Store Procedure

Firebird

12/02/2004

Olá amigos,

Preciso fazer uma StoreProcedure que leia os dados de uma tabela, retorne esses dados e ainda faça um update nos dados retornados.

Exemplo:

/* BUSCA AS MENSAGENS NÃO LIDAS */
FOR SELECT C.CH_MSG FROM CHAT C
WHERE (C.CH_LIDA = ´N´)
INTO :rMSG DO BEGIN
SUSPEND;
END

/* SETA AS MENSAGENS COMO LIDA
UPDATE CHAT SET CH_LIDA = ´S´ WHERE (CH_LIDA = ´N´);

O problema é o seguinte, qdo mando dar o UPDATE ele não retorna nada, qdo não dou o UPDATE funciona certinho.

Eu sei que estou dando um UPDATE no campo que faço o WHERE, mas achei que uma vez dado o suspend o retorno do valor estava garantido.

Existe alguma forma de se fazer isso ???

Obrigado e sucesso a todos.


Renatobraun

Renatobraun

Curtidas 0

Respostas

Afarias

Afarias

12/02/2004

estranho... fiz até uns testes e funciona legal...



  FOR SELECT CH_MSG FROM CHAT WHERE (CH_LIDA = ´N´) 
  INTO :rMSG DO SUSPEND; 

  UPDATE CHAT SET CH_LIDA = ´S´ WHERE (CH_LIDA = ´N´); 





T+[/code]


GOSTEI 0
POSTAR