Buenas
No controlo mucho de sql, pero parece que AT_END siempre es 0. ¿No sería
mejor controlar el bucle por otro concepto?

El 10 de septiembre de 2010 00:42, Pedro Molina <[email protected]>escribió:

> Hola Foro!!
>
> Tengo un problemita con un PA que se me queda en un loop, de hecho lo que
> estaba probando era eso, de que no se me quedara colgado, les envío el
> codigo para que lo analizen y me den su opinión al respecto:
>
> --  Generar SQL
> --  Versión:                    V5R2M0 020719
> --  Generado en:               31/08/10 14:42:33
> --  Base de datos relacional:        S105V3CM
> --  Opción de estándares:           DB2 UDB AS/400
> CREATE PROCEDURE LIBDAT.PA_POSTPPRICING ( )
>  LANGUAGE SQL
>  SPECIFIC LIBDAT.PA_POSTPPRICING
>  NOT DETERMINISTIC
>  MODIFIES SQL DATA
>  CALLED ON NULL INPUT
>  BEGIN
>
>    -- Variables receptoras del cursor
>  DECLARE WUMCEL DECIMAL ( 20 , 0 ) ;
>  DECLARE WECINI DATE ;
>  DECLARE WORINI TIME ;
>  DECLARE WECFIN DATE ;
>  DECLARE WORFIN TIME ;
>  DECLARE WURTIM TIME ;
>  DECLARE WURSEC DECIMAL ( 6 , 0 ) ;
>  DECLARE WUMDEST DECIMAL ( 20 , 0 ) ;
>  DECLARE WICLO DECIMAL ( 6 , 0 ) ;
>  DECLARE WODPLAN CHAR(5) ;
>  DECLARE WENTRAL CHAR(4) ;
>  DECLARE WUTENT CHAR(6) ;
>  DECLARE WUTSAL CHAR(6) ;
>  DECLARE WELDORI CHAR(10) ;
>  DECLARE WELDTER CHAR(10) ;
>  DECLARE WWDNBR DECIMAL ( 20 , 0 ) ;
>  DECLARE WRDSER DECIMAL ( 10 , 0 ) ;
>  DECLARE WIPTIC CHAR(3) ;
>  DECLARE WTSREG CHAR(1) ;
>  DECLARE WERFAC DECIMAL( 6 , 0) ;
>  DECLARE WAIS DECIMAL ( 3 , 0 ) ;
>  DECLARE WREA DECIMAL ( 4 , 0 ) ;
>  DECLARE WODERR DECIMAL ( 5 , 0 ) ;
>  DECLARE WLRLLA DECIMAL ( 9 , 2 ) ;
>  DECLARE WIPLLA CHAR(2) ;
>
>
>    -- Variables de trabajo
>  DECLARE AT_END INT DEFAULT 0 ;
>  DECLARE NOT_FOUND CONDITION FOR '02000' ;
>
>    -- Cursor de Datos
>  DECLARE C1 CURSOR FOR
>
>  SELECT * FROM SICODAT . DETTRAM
>  WHERE STSREG = 'P' ;
>
>  DECLARE CONTINUE HANDLER FOR NOT_FOUND SET AT_END = 1 ;
>
>  OPEN C1 ;
>
>       FETCH C1 INTO  WUMCEL, WECINI, WORINI, WECFIN, WORFIN, WURTIM,
> WURSEC, WUMDEST, WICLO,
>                                                  WODPLAN, WENTRAL, WUTENT,
> WUTSAL, WELDORI, WELDTER, WWDNBR, WRDSER,
>                                                  WIPTIC, WTSREG, WERFAC,
> WAIS, WREA, WODERR, WLRLLA, WIPLLA ;
>  WHILE AT_END = 0 DO
>      SET WTSREG = 'F' ;
>                         UPDATE SICODAT.DETTRAM SET STSREG = WTSREG ;
>       FETCH C1 INTO  WUMCEL, WECINI, WORINI, WECFIN, WORFIN, WURTIM,
> WURSEC, WUMDEST, WICLO,
>                                                  WODPLAN, WENTRAL, WUTENT,
> WUTSAL, WELDORI, WELDTER, WWDNBR, WRDSER,
>                                                  WIPTIC, WTSREG, WERFAC,
> WAIS, WREA, WODERR, WLRLLA, WIPLLA ;
>
>  END WHILE ;
>
>  CLOSE C1 ;
>
>  END  ;
>
> Como podrán apreciar, pues es bastante sencillo, generalmente los cursores
> embebidos en rpg si los controlo con el SQLCOD.
>
> Quizá me puedan dar una manita.
>
> Saludos!!
>  <http://www.bandoo.com/wp/ie.php?plg=ie&ad2=0&subs=hotmail&elm=sign>
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a