Buenos días, Javier.
Esa es la misma sensación que tengo yo, que la sentencia preparada
anterior está todavía "en el limbo" y por eso no puede volver a
prepararla. Lo que no sé es como sacarla de ese limbo.
El procedimiento está creado como NOT DETERMINISTIC, ya que entre dos
ejecuciones los datos podrían haber variado.
---
url: http://www.paredes.info
mail: [email protected]
El 29/06/2017 18:45, Javier Mora escribió:
> ¿Podría ser que el cursor no se cierre o la sentencia preparada anterior
> estuviera todavía activa/vigente/etc (no sabría cómo expresarlo)?
>
> ¿Algún parámetro al crear el procedimiento como DETERMINISTIC? Esto son
> "palos de ciego".
>
> Javier
>
> DE: [email protected]
> [mailto:[email protected]] EN NOMBRE DE Juan Carlos
> Paredes Castañón
> ENVIADO EL: jueves, 29 de junio de 2017 17:12
> PARA: Forum Help 400
> ASUNTO: Una de procedimientos almacenados
>
> Buenas tardes, foro:
>
> A ver si alguien me puede echar una mano, porque llevo todo el día
> volviéndome loco con este tema y no encuentro solución:
>
> Tengo un procedimiento almacenado en SQL que obtiene datos de diferentes
> ordenadores (todos ellos AS/400). Tiene un primer cursor que, en función de
> un parámetro recibido obtiene los ordenadores a los que se tiene que
> conectar.
>
> Recorriendo este cursor, mediante SQL dinámico, prepara una sentencia para
> obtener, en un segundo cursor, unos acumulados de unidades pendientes en cada
> uno de los ordenadores. Este resultado lo graba en una tabla temporal, que
> luego es la que se devuelve (una vez procesados todos los ordenadores) como
> Result Set del procedimiento.
>
> La primera vez que ejecuto el procedimiento, todo funciona correctamente. Lo
> he probado desde STRSQL en pantalla verde, desde Ejecutar Scripts de SQL de
> System i Navigator y desde Data Studio.
>
> La segunda vez no me devuelve ningún resultado. Si cierro la conexión (me
> salgo del STRSQL, cierro la ventana de Ejecutar Scripts o desconecto de la
> base de datos en Data Studio) y la vuelvo a abrir, me devuelve correctamente
> los datos de nuevo.
>
> Revisando las anotaciones de trabajo, veo que la primera vez que lo ejecuto,
> al preparar dinámicamente el cursor, hace correctamente el prepare y abre el
> cursor.
>
> La segunda, llega a componer la variable para el prepare, pero cuando va a
> abrir el cursor me da el siguiente error:
>
> "Sentencia preparada ST2 no encontrada."
>
> ¿Alguna idea al respecto?
>
> Gracias.
>
> Juan Carlos.
>
> --
>
> url: http://www.paredes.info
> mail: [email protected]
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 (c) Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.