Patricia;
 
de uma olhadinha
 
SET TERM !! ;
CREATE PROCEDURE ANDAMENTONET4
  (NUMRPROC     VARCHAR(25),
   DATACOMP    TIMESTAMP,
   CODGANDAM   INTEGER,
   CODGFASE    INTEGER,
   FLAGINTERNO CHAR(1),
   DESCCOMP    BLOB SUB_TYPE 1)
RETURNS
  (CONTADOR INTEGER)
AS
DECLARE VARIABLE CONTADOR INTEGER;
BEGIN
   /* Faz um loop contando a coluna da tabela fasecomp */
   FOR SELECT COUNT(NUMR_FASECOMP) 
         FROM FASECOMP 
        WHERE (NUMR_PROC = :NUMRPROC and DATA_COMP = :DATACOMP and
DESC_COMP = :DESCCOMP)
         INTO :CONTADOR
   DO BEGIN
      /* Se o contador for nulo ajusta para 0 */
      /* Voce poderia utilizar o COALESCE no select acima e tirar fora
este if 
         Teste ai: SELECT COALESCE(COUNT(NUMR_FASECOMP),0) .... */
      IF (CONTADOR IS NULL) THEN BEGIN
         CONTADOR = 0;
      END;
      /* Entao se o contador for maior que 0 retorna result set */
      IF (CONTADOR > 0 ) THEN BEGIN
         SUSPEND;
      /* Caso contrario */
      END ELSE BEGIN
         /* Insere na tabela de fase comp */
         INSERT INTO FASECOMP 
           (NUMR_PROC, 
            DATA_COMP, 
            CODG_ANDAM, 
            CODG_FASE, 
            FLAG_INTERNO, 
            DESC_COMP)
         VALUES 
           (:NUMRPROC, 
            :DATACOMP, 
            :CODGANDAM, 
            :CODGFASE,  
            'N', 
            :DESCCOMP);
      END
   END  
END!!
SET TERM ; !!
 
/* Nao tive como testar aqui.., pois nao tenho a tabela...rs mas acho
que vai funcionar */
 
 
Atenc.
 
Elazar
 
 
 -----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Patricia Santana
Enviada em: quarta-feira, 23 de novembro de 2005 16:19
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Stored Procedure no Interbase



Boa tarde a todos!
   
  Podem informar o que estou fazendo de errado nesta Stored Procedure?
   
  SET TERM !! ;
CREATE PROCEDURE ANDAMENTONET4
(NUMRPROC VARCHAR(25),
DATACOMP TIMESTAMP,
CODGANDAM INTEGER,
CODGFASE INTEGER,
FLAGINTERNO CHAR(1),
DESCCOMP BLOB SUB_TYPE 1)
RETURNS
    (CONTADOR INTEGER)
AS
   DECLARE VARIABLE CONTADOR INTEGER;
BEGIN
   FOR SELECT COUNT(NUMR_FASECOMP) FROM FASECOMP WHERE (NUMR_PROC =
:NUMRPROC and DATA_COMP = :DATACOMP and DESC_COMP = :DESCCOMP)
      INTO :CONTADOR
   DO
     BEGIN
       IF (CONTADOR is null) THEN
         BEGIN
           CONTADOR = 0;
         END;
       IF (CONTADOR > 0 ) THEN
          BEGIN
            SUSPEND
          END
       ELSE
          INSERT INTO FASECOMP (NUMR_PROC, DATA_COMP, CODG_ANDAM,
CODG_FASE, FLAG_INTERNO, DESC_COMP)
          VALUES (:NUMRPROC, :DATACOMP, :CODGANDAM, :CODGFASE,  'N',
:DESCCOMP);
  END!!
SET TERM ; !!
   
  Alguém tem agum modelo parecido, para ajudar-me?
   
   
  Desde já agradeço a todos!!!!
   
  Patricia Santana

            




[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a