REVELAR

Fórum Nova ajuda com Stored Procedure (Quase lá) #55646

29/03/2006

0

Pessoal, tive um problema com uma stored procedure (pode-se observar o post logo abaixo no fórum) e, com ajuda de vcs do fórum, consegui compilar e rodar a sp. O código dela é:

CREATE PROCEDURE GERA_FALTA (
    DATAINI DATE,
    DATAFIM DATE)
AS
DECLARE VARIABLE DATAMINHA DATE;
BEGIN

   DATAMINHA = :DATAINI;

   WHILE (DATAMINHA <= :DATAFIM) DO
   BEGIN
   
      INSERT INTO TMP_FALTAS
      SELECT DISTINCT :DATAMINHA AS DATA, HORARIO.MATRICULA
      FROM HORARIO
      WHERE HORARIO.MATRICULA NOT IN
      (SELECT MATRICULA
         FROM PRESENCA
        WHERE DATA = :DATAMINHA)
      AND DIA = (EXTRACT(WEEKDAY FROM :DATAMINHA)+1);
      --ORDER BY HORARIO.MATRICULA;

      DATAMINHA = DATAMINHA + 1;

      SUSPEND;
   END

END


Como se pode ver eu faço um loop baseado entre duas datas para preencher o resultado da select numa tabela temporária. O meu problema é que somente a data inicial está preenchendo a tabela e eu valores para outras datas, é como se a variável DATAMINHA nunca fosse incrementada. Detalhe: na versão trial do IBExpert eu depurei (debug) a sp e deu o loop certo. Alguém tem alguma idéia pq somente a data inicial está gerando dados?

Outra coisa: pq eu tive que comentar a linha do ORDER BY? Onde está errada essa linha? Se eu usar a select que tem ele FORA da sp roda tudo bem, prova que a select tá correta.

Galera,

Obrigado pela ajuda!

[]s
Willian


Willian

Willian

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar