Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] SQL embebido - cursor con COUNT() en PowerCOBOL 7 drvedia1981 PowerCOBOL (ActiveX, v4 - v11) 13 7 de junio de 2023 11:28
[Compilador] Microfocus Cobol y SQL Embebido EBERCAMACHO Micro Focus COBOL 3 9 de agosto de 2019 16:07
[Sintaxis] Sql Embebido Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 23 28 de junio de 2017 01:09
[PowerCOBOL] Ejemplo PWC y SQL Embebido Josber Cocina PowerCOBOL 10 15 de junio de 2017 03:17
[Sintaxis] Variables en programa con SQL embebido DYANY IBM Enterprise COBOL 1 20 de diciembre de 2016 16:26

Respuesta

  #1
Antiguo 25 de abril de 2020, 11:47
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120
Predeterminado Sql Embebido condición where
0 Inactivo Inactivo

Hola Amigos, espero que sen encuentren todos bien, Don Corona nos tiene a todos enjaulados !!!

EstoY empezando a trabajar con Sql Embebido como dije en otro post.
Resulta que tengo la condición siguiente cargada en una variable cobol que se genera de acuerdo a ciertas condiciones que decide el operador del Soft:

Código SQL:
  1. ART-DESCRI LIKE '%RECEP%' AND ART-CODIGO LIKE '%X-123%'

Si yo muevo el contenido de esta variable a la "Condición" del Control DbAccess del pw encuentra los registros con esa condición.

Código COBOL:
  1. MOVE WG-TXT001 TO SQL-WG-TXT001
  2. EXEC SQL DECLARE WS-LECTURA  CURSOR FOR SELECT * FROM EST_ORIGEN WHERE SQL-WG-TXT001 END-EXEC

No trae ningún registro.
No encontré ejemplos con esta necesidad, alguien sabe que estoy hacineda mal?

Abrazooooo !!!

Y quédense en casa !!!
Hrmcobol is offline   Responder Con Cita
  #2
Antiguo 25 de abril de 2020, 12:03
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Hrmcobol, te has olvidado de que el embebido no es dinámico, debes pasar la condición en claro a la hora de compilar.

Código COBOL:
  1. EXEC SQL
  2.     DECLARE WS-LECTURA CURSOR FOR
  3.     SELECT *
  4.       FROM EST_ORIGEN
  5.      WHERE ART-DESCRI LIKE '%RECEP%' AND ART-CODIGO LIKE '%X-123%'
  6. END-EXEC



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #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 20.09.2026 12:17
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

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Screenshot_7.jpg
Vistas: 123
Tamaño:  168,8 KB  
Josber is offline   Responder Con Cita
  #4
Antiguo 25 de abril de 2020, 21:43
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

SALIO ANDANDOOOOO !!! ! ! ! ! ! ! ! !
Hrmcobol is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 17:26.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.