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