Gracias por la aclaración de lo de Sprint, aunque estoy seguro que muchos
sabemos que es un Sprint y conocemos el modelo de referencia Scrum, por lo
cual no era necesaria.

Saludos y suerte.

El 14 de enero de 2016, 1:40, Juan Ramón Garcia <[email protected]>
escribió:

> Je, je, es como está ahora, con 4 cursores diferentes según el tipo de
> selección.
> El problema es que, al cambiar el orden de impresión de los registros,
> todo esto ya no sirve.
> No puedo seguir empleando más tiempo con este "Sprint" (*) la solución es
> utilizar un fichero temporal y un programilla que lo trate.
>
> Un saludo.
>
> Juanra
> ScrumSaurio
>
> (*) Lo de Sprint viene de la metodología del departamento en el que
> actualmente trabajo, basada en Scrum
>
> El 13 de enero de 2016, 15:49, Bernabé Estrada <[email protected]>
> escribió:
>
>> Y con sentencias preparadas?
>>
>> El 13 de enero de 2016, 4:26, Juan Ramón Garcia <[email protected]>
>> escribió:
>>
>>> Hola Bernabé:
>>>
>>> El código quedaría muy poco "elegante" y farragoso de comprender, yo os
>>> he mandado un ejemplo sencillito pero intervienen 3 tablas, cada una de
>>> ellas con decenas de elementos, las combinaciones AND y OR serían
>>> larguísimas.
>>>
>>> Un saludo.
>>> Juanra
>>>
>>> El 12 de enero de 2016, 18:00, Bernabé Estrada <
>>> [email protected]> escribió:
>>>
>>>> Sin pensar, solo traduciendo tus if podría ser así:
>>>>
>>>>
>>>> WHERE B.FECENT  = :W-FECHA and  (
>>>>
>>>> (:w-horaini1 <> "    " AND B.HINIENT = :W-HORAINI1)
>>>>
>>>> or
>>>>
>>>> (:w-horaini2 <> "    " AND B.HINIENT = :W-HORAINI2)
>>>>
>>>> )
>>>>
>>>>  AND B.CODEST IN ("20", "25", "27")
>>>>
>>>>
>>>> El 12 de enero de 2016, 10:51, Rafa Vidal <[email protected]>
>>>> escribió:
>>>>
>>>>> ...¿Y porqué no pruebas a sustituir el "<>" por un "=" y el "AND" por
>>>>> un "OR"...?
>>>>>
>>>>> Un saludo,
>>>>> Rafa Vidal
>>>>>
>>>>> Enviado desde mi Windows Phone
>>>>> ------------------------------
>>>>> De: Juan Ramón Garcia <[email protected]>
>>>>> Enviado: ‎12/‎01/‎2016 17:35
>>>>> Para: forum.help400 <[email protected]>
>>>>> Asunto: Re: COBOL y SQL embebido IF dentro de WHERE
>>>>>
>>>>> Pues.... no funciona, en cuanto encuentra un elemento de W-HORA en
>>>>> blanco ya no se cumple la condición AND y no selecciona el registro.
>>>>>
>>>>> Puffff, o me lo monto con PREPARE o un fichero temporal.
>>>>> El problema es que yo no soy quien decido como hacerlo, tengo que
>>>>> consultar a mi supervisor. Antes como yo era el Jefe lo hacía coo me daba
>>>>> la gana :-)
>>>>>
>>>>> Un saludo.
>>>>> Juanra
>>>>>
>>>>>
>>>>>
>>>>> El 12 de enero de 2016, 17:12, Juan Ramón Garcia <
>>>>> [email protected]> escribió:
>>>>>
>>>>> Hola Javier:
>>>>>
>>>>> Pues compilar, compila, que ya es mucho :-)
>>>>> Pues nada, voy a tirar por ese camino y ya os contaré
>>>>>
>>>>> Un saludo.
>>>>> Juanra
>>>>>
>>>>>
>>>>> El 12 de enero de 2016, 17:08, Juan Ramón Garcia <
>>>>> [email protected]> escribió:
>>>>>
>>>>> Hola Javier:
>>>>>
>>>>> Pues no está nada mal, tiene pinta de funcionar y es sencillo de
>>>>> implantar :-)
>>>>>
>>>>> De todas formas acabo de encontrar ejemplos de PREPARE y EXCUTE para
>>>>> COBOL, por si a alguien le interesa:
>>>>> http://www.craigsmullins.com/dbu_1004.htm
>>>>>
>>>>> Voy a probar lo tuyo, me resulta más cómodo y tengo que cambiar menos
>>>>> cosas. Muchas gracias
>>>>>
>>>>> Un saludo.
>>>>> Juanra
>>>>>
>>>>>
>>>>> El 12 de enero de 2016, 17:01, Javier Mora <[email protected]>
>>>>> escribió:
>>>>>
>>>>> Si no recuerdo mal, en mi instalación hemos tenido que hacer algo
>>>>> parecido pero ahora no lo encuentro. Se me ocurre lo siguiente:
>>>>>
>>>>>
>>>>>
>>>>>       WHERE B.FECENT  = :W-FECHA
>>>>>
>>>>>         AND (:w-horaini1 <> “  “ and B.HINIENT = :W-HORAINI1)
>>>>>
>>>>>         AND (:w-horaini2 <> "    " and B.HINIENT = :W-HORAINI2)
>>>>>
>>>>>         AND B.CODEST IN ("20", "25", "27")
>>>>>
>>>>>
>>>>>
>>>>> Saludos
>>>>>
>>>>>
>>>>>
>>>>> *De:* [email protected] [mailto:
>>>>> [email protected]] *En nombre de *Juan Ramón
>>>>> Garcia
>>>>> *Enviado el:* martes, 12 de enero de 2016 16:04
>>>>> *Para:* forum.help400
>>>>> *Asunto:* COBOL y SQL embebido IF dentro de WHERE
>>>>>
>>>>>
>>>>>
>>>>> Hola a tod@s:
>>>>>
>>>>> Nunca me he encontrado con este problema pero...siempre hay una
>>>>> primera vez.
>>>>>
>>>>> En un programa COBOL complicadísimo se utiliza SQL embebido para
>>>>> seleccionar una serie de registros cuyas características han sido
>>>>> seleccionadas por el usuario mediante una pantalla de opciones.
>>>>>
>>>>> El caso es que quieren cambiar el orden de impresión de los registros
>>>>> pero, tal y como está el programa, habría que rehacerlo y utilizar un
>>>>> fichero temporal cosa que prefieren que no se haga.
>>>>>
>>>>> La solución que se me ha ocurrido es condicionar algunas opciones del
>>>>> WHERE a si tiene o no tiene datos el campo correspondiente.
>>>>>
>>>>> Una imagen vale más que mil palabras:
>>>>>
>>>>> EXEC SQL
>>>>>    DECLARE CUR5 CURSOR FOR
>>>>>    SELECT B.PTOSERV, B.NPEDWEB, B.RUTA
>>>>>       FROM FSPEDC3 A
>>>>>       LEFT JOIN FPEDHIPC5 B
>>>>>          ON A.NPEDWEB = B.NPEDWEB
>>>>>       WHERE B.FECENT  = :W-FECHA
>>>>>         AND B.HINIENT = :W-HORAINI
>>>>>         AND B.CODEST IN ("20", "25", "27")
>>>>>       ORDER BY A.CCIRCOD, B.HINIENT, B.RUTA, B.NPEDWEB
>>>>> END-EXEC.
>>>>>
>>>>> lo que necesitaría seria algo como esto: (lo escribo en minúsculas
>>>>> para que se distinga
>>>>>
>>>>> EXEC SQL
>>>>>    DECLARE CUR5 CURSOR FOR
>>>>>    SELECT B.PTOSERV, B.NPEDWEB, B.RUTA
>>>>>       FROM FSPEDC3 A
>>>>>       LEFT JOIN FPEDHIPC5 B
>>>>>          ON A.NPEDWEB = B.NPEDWEB
>>>>>       WHERE B.FECENT  = :W-FECHA
>>>>>
>>>>> if :w-horaini1 <> "    "
>>>>>
>>>>>         AND B.HINIENT = :W-HORAINI1
>>>>>
>>>>> end-if
>>>>>
>>>>> if :w-horaini2 <> "    "
>>>>>
>>>>>         AND B.HINIENT = :W-HORAINI2
>>>>>
>>>>> end-if
>>>>>
>>>>>         AND B.CODEST IN ("20", "25", "27")
>>>>>       ORDER BY A.CCIRCOD, B.HINIENT, B.RUTA, B.NPEDWEB
>>>>> END-EXEC.
>>>>>
>>>>>
>>>>>
>>>>> Evidentemente no funciona y he probado con CASE y otras "cosas" que he
>>>>> encontrado por ahí pero no lo consigo y esto simplificaría mi problema.
>>>>>
>>>>> ¿Hay alguna forma de condicionar las sentencias del WHERE?
>>>>>
>>>>> Un saludo.
>>>>>
>>>>>
>>>>>
>>>>> Juanra
>>>>>
>>>>> SqlCobolSaurio
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> ____________________________________________________
>>>>> Ú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.
>>>>
>>>
>>>
>>> ____________________________________________________
>>> Ú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.
>
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Responder a