Resultados 1 al 5 de 5

Tema: Cursor SQL sobre tablas de nombres variables

  1. #1
      Acabo de llegar...
    N

    Registrado
    septiembre de 2019
    Ubicación
    Santiago De Chile
    Mensajes
    6
    Última visita
    29.09.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Base de datos Cursor SQL sobre tablas de nombres variables

    Hola apreciados colegas.
    Necesito realizar un cursor SQL que realice una consulta sobre tablas que tienen nombres distintos pero igual estructura de datos (mismas columnas).
    Es el típico proceso de datos almacenados en tablas de uso mensual (liquidaciones por ejemplo), respecto de las cuales necesito realizar una búsqueda según cierta lógica de control.
    En cobol basta con asignar el nombre al archivo definido en la select:
    COBOL Código:
    1.            SELECT OPTIONAL LIQSUE ASSIGN TO IDF-LIQSUE
    ...
    Y , en el perform antes de abrir el archivo se le asigna un nombre según la lógica requerida,por ejemplo:
    COBOL Código:
    1.      PERFORM VARYING GLOBAL-ANO FROM 2015 BY 1 UNTIL GLOBAL-ANO > 2021
    2.       PERFORM VARYING GLOBAL-MES FROM 1 BY 1 UNTIL GLOBAL-MES > 12
    3.         MOVE SPACES TO IDF-LIQSUE
    4.         STRING GLOBAL-ANO GLOBAL-MES 'LiqSue' DELIMITED SIZE INTO IDF-LIQSUE *> el nombre del archivo o tabla sería -por ejemplo- "202103LiqSue"
    5.         OPEN INPUT LIQSUE
    6.         PERFORM PROCESA-CONSULTA *> Lógica asociada a la consulta
    7.         CLOSE LIQSUE
    8.       END-PERFORM
    9.      END-PERFORM

    ... Entonces, el cursor SQL que se requiere, debe procesar nombres de tablas dinámicos (variables) que se diferencian entre sí SÓLO POR EL NOMBRE pero, que contienen datos relativos al periodo de proceso hurgado.

    He probado creando las consultas en campos de texto, usando el los comandos SQL embebidos PREPARE y EXECUTE más, sin éxito hasta ahora.

    Saludos cordiales para todos y los mejores deseos de salud !!!
    Atte. Nino.
    PD: GRACIAAAAAAAAAAAAAAASSSSSS !!!!!!

    0 Not allowed!

  2. #2
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Hoy a las 18:48

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @Nino, hola bienvenido.

    Lo primero, dinos con qué compilador trabajas.

    Lo segundo, todo código SQL, sea embebido o no, trabaja con "punteros" hacía los recursos de la BBDD.

    Si tabajas con SQL embebido, no habrá más remedio que declarar 2 cursores. Si trabajas con ODBC/JDBC, la cosa puede cambiar. Y si trabajas con controles tipo ADO etc, es aún otra historia.

    Así que danos más datos.

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  3. #3
      Acabo de llegar...
    N

    Registrado
    septiembre de 2019
    Ubicación
    Santiago De Chile
    Mensajes
    6
    Última visita
    29.09.2023

    Agradecimientos
     
    Recibidos
    9
    Enviados
    3

    Citaciones y menciones
     
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    0 Post(s)
    Poder de Reputación
    0

    Predeterminado

    Gracias KUK.
    Me declaro un completo ignorante, ávido de conocimientos y, lejos de llegar a incomodar de una a los foreros, dedico muchas horas a estudiar antes de preguntar (intentando descubrir la pólvora).
    Utilizo SQL embebido, y POWERCOBOL 9.
    No existe forma de expresar mis agradecimientos, por el valioso tiempo que me dedicas, excepto ponerme a tu disposición y a la de los demás colegas para siempre colaborar el lo que más pueda.
    Saludos cordiales.
    Nino.

    0 Not allowed!

  4. #4
      Administrador
    Avatar de Kuk

    Registrado
    enero de 2015
    Ubicación
    Madrid
    Edad
    39
    Mensajes
    2,286
    Última visita
    Hoy a las 18:48

    Agradecimientos
     
    Recibidos
    1,036
    Enviados
    888

    Citaciones y menciones
     
    Mentioned
    102 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    31 Post(s)
    Poder de Reputación
    10

    Predeterminado

    @Nino, nos alegramos siempre de tener compañeros nuevos.
    No dudes en preguntarnos todo lo que necesites.

    En cuanto a tu problema, no te queda otra que declarar 2 cursores diferentes y trataros individualmente cada uno.
    Puedes tenerlos ambos abiertos al mismo tiempo etc. sin problemas y tratarlos en los bucles anidados. Pero deben ser declarados por separado con nombres diferentes.

    0 Not allowed!
    ¿Te han ayudado? NO TE OLVIDES de darle al botón
    ¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
    1. Haciendo clic en el icono al lado de su nick
    2. Haciendo clic en el botón en el editor y escribiendo su nick.

  5. #5
      Guru de COBOL
    Avatar de Nitzer

    Registrado
    noviembre de 2015
    Ubicación
    Almeria
    Edad
    58
    Mensajes
    203
    Última visita
    15.03.2024

    Agradecimientos
     
    Recibidos
    161
    Enviados
    73

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    7 Post(s)
    Poder de Reputación
    20
    Activista del Foro / Point Value: 0 Guru de los Gurus / Point Value: 0

    Predeterminado

    Hola a todos, @Nino no veo el problema, eso que comentas que haces en cobol con ficheros lo puedes hacer exactamente igual en Tablas de una BBDD.
    Dinamicamente puedes cambiar el nombre de la tabla y que el proceso sea exactamente el mismo.

    Estoy casi seguro que te he entendido y lo veo exactamente igual.
    Yo tengo sentencias que para construirlas igual tengo 40 líneas de código, todo completamente dinámico.

    0 Not allowed!

Información de Tema

Usuarios Viendo este Tema

Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)

Temas Similares

  1. [Sintaxis] SQL embebido - cursor con COUNT() en PowerCOBOL 7
    Por drvedia1981 en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 13
    Último Mensaje: 07.06.2023, 11:28
  2. [Sintaxis] Tablas en Cobol
    Por dariodr en el foro COBOL - General
    Respuestas: 3
    Último Mensaje: 21.04.2020, 10:03
  3. [Aporte] Tablas bidimensionales de longitud variable
    Por Kuk en el foro Cocina MicroFocus
    Respuestas: 2
    Último Mensaje: 23.05.2018, 11:13
  4. [Sintaxis] Variables en programa con SQL embebido
    Por DYANY en el foro IBM Enterprise COBOL
    Respuestas: 1
    Último Mensaje: 20.12.2016, 16:26
  5. [Sintaxis] Ocultar Cursor
    Por Recato53 en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 3
    Último Mensaje: 21.02.2015, 17:08

Etiquetas para este Tema

Marcadores

Marcadores

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •