Ver Mensaje Individual
  #3
Antiguo 25 de abril de 2020, 12:43
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 22.09.2026 16:20
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Hrmcobol,

Bueno, antes de nada Hrm, nunca utilices nombres_de_variables con el guión medio (-), usa siempre el guión bajo (_), porque si no, el gestor de SQL, cree que estás restando los valores de esas 2 variables, yo al principio me volví loco con eso, hasta que me di cuenta de casualidad, por eso en el ejemplo que te he puesto, uso las mismas variables que tú, pero cambiando el guión.

Para ese tipo de consulta, (que dependen de unas condiciones para montar un tipo u otro de consulta), no puedes hacerlo con un DECLARE sólo, has de usar un PREPARE también, prueba de la siguiente manera a ver si te funciona:

Código COBOL:
  1.  
  2.      INITIALIZE SQL_WG_TXT001.
  3.      STRING "SELECT * FROM EST_ORIGEN WHERE "
  4.             "ART_DESCRI LIKE '%RECEP%' AND ART_CODIGO LIKE '%X-123%'"
  5.             DELIMITED BY SIZE INTO SQL_WG_TXT001
  6.      END-STRING.
  7.  
  8.      EXEC SQL
  9.           DECLARE cursor_1 CURSOR FOR CONSULTA
  10.      END-EXEC.
  11.  
  12.      EXEC SQL
  13.           PREPARE CONSULTA FROM :SQL_WG_TXT001
  14.      END-EXEC.
  15.  
  16.      EXEC SQL
  17.           OPEN cursor_1
  18.      END-EXEC.
  19.  
  20.       .
  21.       .
  22.       .
  23.       .
  24.  
  25.      EXEC SQL
  26.           CLOSE cursor_1
  27.      END-EXEC.

De ésta manera, con el STRING y el PREPARE, puedes montar la consulta que quieras, si no, imagínate lo que sería hacer una consulta de la pantalla que adjunto ...

Si necesitas un ejemplo más grande, dímelo y te pongo alguno de los que tengo hecho en algún programa mío.

Un saludo
Imágenes Adjuntas
 
Josber is offline   Responder Con Cita