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.

