Ver Mensaje Individual
  #11
Antiguo 13 de mayo de 2023, 14:06
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

Citación del post de Joseg Ver Mensaje
Hola,

Como implementar un loop en PowerCobol?

Ejemplo de lista de todos los registros de "MyTable":
Código SQL:
  1. SELECT * FROM MyTable

Creo que tienes que usar "sqlite3_prepare" y "sqlite3_step", o implementar una "devolución de llamada" (callback),
Código COBOL:
  1. 01 CALLBACK USAGE PROCEDURE-POINTER.

... pero no lo estoy consiguiendo.

Gracias,
Jose
A ver, yo con SQLLite, no lo sé, porque no lo he usado nunca pero, con SQL_Embebido o SQL normal, lo que se hace para hacer un bucle es, lo primero, crear un cursor y lo segundo es un FETCH a ese cursor, hasta que SQLSTATE, sea "02000", que indica un "fin_de_fichero", por lo que me supongo que en este caso, será muy parecido, es que otra manera de hacerlo, me parece rara

En PWC, con SQL_Embebido, sería algo así:

Código COBOL:
  1. EXEC SQL
  2.         DECLARE  cursor_consulta CURSOR FOR
  3.                        SELECT * FROM CLIENTES
  4.                                    WHERE .....
  5.                                    ORDER BY .....
  6. END-EXEC.
  7.  
  8. INITIALIZE SQLSTATE.
  9.  
  10. EXEC SQL
  11.          OPEN cursor_consulta
  12. END-EXEC.
  13.  
  14. PERFORM WITH NO LIMIT
  15.                EXEC SQL
  16.                        FETCH cursor_consulta
  17.                                  INTO .....
  18.                END-EXEC
  19.                IF SQLSTATE = "02000"
  20.                    EXEC SQL
  21.                             CLOSE cursor_consulta
  22.                    END-EXEC
  23.                    EXIT PERFORM
  24.                END-IF
  25. END-PERFORM.

por lo menos, esa es la manera con la que yo hago un bucle. Lo puedes hacer con un PREPARE también pero, es más lioso, y se usa si tienes que montar la consulta armando un STRING, pero ese es otro tema.

Un salu2.-
Josber is offline   Responder Con Cita