[firebase-br] Comando SUSPEND?

Oleber oleber_itajai em yahoo.com.br
Sáb Jun 16 10:12:41 -03 2007


Voce vai usar suspend somente quando querer que o resultado de cada linha do select seja enviado para seus parametros de retorno,  para serem visualizados na sua aplicacção ( num dbgrid por exemplo);
 
 
 

Joubert Rinaldi Vieira <rinaldi.vieira em gmail.com> escreveu: Amigos,

Fiz a procedure abaixo usando os exemplos e dicas encontradas no ng:


CREATE PROCEDURE SP_ATUALIZACAO (
    pcodigorca varchar(10))
returns (
    rregistro varchar(2),
    rchave varchar(40),
    rconteudo varchar(1024))
as
declare variable vachou integer;
declare variable vdata_inicio_processamento date;
declare variable vhora_inicio_processamento time;
declare variable vdata_ultima_conexao date;
declare variable vhora_ultima_conexao time;
declare variable vnumero_conexoes integer;
begin
   vdata_inicio_processamento = Current_date;
   vhora_inicio_processamento = Current_time;

   Select Count(*) From RCA Where RCA.CODIGO = :pCodigoRCA Into :vAchou;

   if (vAchou = 0) then
      Begin
         Insert Into RCA
            (CODIGO, DATA, HORA, NUMERO_CONEXOES)
         Values
            (:pcodigorca,  :vdata_inicio_processamento,
:vhora_inicio_processamento, 0);
      End

   Select RCA.DATA,
          RCA.HORA,
          RCA.NUMERO_CONEXOES
     From RCA
    Where RCA.CODIGO = :pcodigorca
     Into :vdata_ultima_conexao, :vhora_ultima_conexao, :vnumero_conexoes;

   For
      Select TARGET.REGISTRO, TARGET.CHAVE, TARGET.CONTEUDO
        From TARGET
       Where (TARGET.data >= :vdata_ultima_conexao)
         and (TARGET.hora >= :vhora_ultima_conexao)
       Order By TARGET.registro, TARGET.chave
        Into :rregistro, :rchave, :rconteudo
   Do
   Begin
      suspend;
   End

   update RCA set
      RCA.data = :vdata_inicio_processamento,
      RCA.hora = :vhora_inicio_processamento,
      RCA.numero_conexoes = :vnumero_conexoes+1
   Where
      RCA.CODIGO = :pcodigorca;

end^

Porem no meu entendimento deveria colocar um comando "SUSPEND" depois do
"Update" e quando faço isso é retornado linhas duplicadas. Preciso entender
quando devo colocar o SUSPEND, alguem tem algum dica de livro artigo mais
aprofundado ou etc.

att

Joubert

-- 
MSN: jcombr em hotmail.com
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.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


       
---------------------------------
Novo Yahoo! Cadê? - Experimente uma nova busca. 


Mais detalhes sobre a lista de discussão lista