Hola La respuesta corta es que no tienes ningún procedimiento que se llame Program2; si que existe un programa pero no un Store procedure con dicho nombre
La respuesta larga la puedes encontrar en este artículo https://www.itjungle.com/2010/08/25/fhg082510-story02/ Saludos El lun, 10 jun 2024, 17:59, Jordi Teres <tecn...@inupsa.es> escribió: > Hola, > > Necesitaría algo de orientación, me explico. > > Tengo dos programas: PROGRAM1 y PROGRAM2. El PROGRAM1 utiliza el PROGRAM2. > > *PROGRAM2----(SQLRPGLE)--------------------------------* > ... dcl-pi PROGRAM2; > pParam int(10) const options(*nopass); > end-pi; ... > exec sql > prepare myStmt from SELECT FIELD FROM FILE; > exec sql > declare myCursor cursor for myStmt; > exec sql > open myCursor; > exec sql > set result sets cursor myCursor; > Return; > *PROGRAM1----(SQLRPGLE)-------------------------------- *... > dcl-pr PROGRAM2 extpgm('PROGRAM2'); > pParam int(10) const options(*nopass); > end-pr; > dcl-s loc1 SQLTYPE(RESULT_SET_LOCATOR); > dcl-s sqlParam int(10) inz(0); > exec sql call PROGRAM2; *<-------------------- Versión 1 > .................................... o * > call PROGRAM2(:sqlParam); *<----- Versión 2 (SQLCODE +466: One or > more ad hoc result sets were returned from the procedure)* > exec sql > associate result set locators (:loc1) with procedure PROGRAM2; *<----- > Para la Versión 2 (SQLCODE -480: The procedure referenced in a DESCRIBE > PROCEDURE or ASSOCIATE LOCATOR statement has not yet been called within the > application process.)* > exec sql > allocate myCursor cursor for result set :loc1; > exec sql > fetch from myCursor into :field; > dow (....); .... > exec sql > fetch next from myCursor into :field; .... enddo; .... > La cuestión es que si la llamada al PROGRAM2 la hago sin parámetros (*Versión > 1*), todo funciona correctamente y el result set lo puedo leer desde el > PROGRAM1. Si la llamada al PROGRAM2 la hago con parámetros (*Versión 2*), > al procesarse la línea exec sql associate result set locators (:loc1) > with procedure PROGRAM2; recibo el error -480 que indica que PROGRAM2 no > se ha llamado en el proceso. Me podéis echar una mano para ver lo que me > falta? Muchas gracias Jordi Teres > > > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> > Libre > de virus.www.avast.com > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> > <#m_-5895608832472835477_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > ____________________________________________________ > Ú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.