...¿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<mailto:[email protected]>
Enviado: ‎12/‎01/‎2016 17:35
Para: forum.help400<mailto:[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.

Responder a