Gracias Miguel.
Ya encontré una solución para este problemita, y la verdad que en SQL puedes determinar un LOOP de varias maneras así como en RPG y yo lo que hago es que combino SQL con RPG ya sea embebido o por procedimientos almacenados tipo SQL y Externos. Gracias mil, saludos!! Date: Fri, 10 Sep 2010 12:19:55 +0200 Subject: Re: Procedimiento Almacenado From: [email protected] To: [email protected] 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!! ____________________________________________________ Ú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.
____________________________________________________ Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.

