Ver Mensaje Individual
  #13
Antiguo 15 de mayo de 2023, 20:28
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Hola @Joseg como recorrer la tabla para saber que tipo valor se puede almacenar por columnas
Código COBOL:
  1. *-------------------------------------------------------------------------      
  2. *>STEP
  3. *-------------------------------------------------------------------------
  4.      DISPLAY "------------------".
  5.      DISPLAY "sqlite3_step      ".
  6.  
  7.      PERFORM DB-STEP.
  8.      evaluate bd-status
  9.      when  SQLITE_ROW  
  10.         perform muestro-cabecera
  11.      when  SQLITE_DONE
  12.         display "termino"
  13.         continue
  14.      when other
  15.         display "error"
  16.         exit program
  17.      end-evaluate.
  18. *-------------------------------------------------------------------------    
  19. *>FINALIZE
  20. *-------------------------------------------------------------------------
  21.      DISPLAY "------------------".
  22.      DISPLAY "sqlite3_finalize".
  23.  
  24.      MOVE SPACES                  TO FUNCIONES-SQLITE3-LIB.
  25.      MOVE "sqlite3_finalize"      TO FUNCIONES-SQLITE3-LIB.    
  26.      
  27.      call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  28.               USING        BY VALUE   stmt-handle
  29.                            returning  BD-STATUS
  30.  
  31.      end-call.          
  32.    
  33.      IF BD-STATUS NOT = SQLITE_OK then
  34.           DISPLAY "ERROR "
  35.      
  36.      ELSE
  37.           DISPLAY "OK"
  38.      END-IF.
  39. *-------------------------------------------------------------------------    
  40. *>CLOSE_V2
  41. *-------------------------------------------------------------------------
  42.      DISPLAY "------------------".
  43.      DISPLAY "sqlite3_close_v2".
  44.  
  45.      MOVE SPACES                  TO FUNCIONES-SQLITE3-LIB.
  46.      MOVE "sqlite3_close_v2"      TO FUNCIONES-SQLITE3-LIB.    
  47.      
  48.      call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  49.               USING        BY VALUE   BD-HANDLE
  50.                            returning  BD-STATUS
  51.  
  52.      end-call.          
  53.    
  54.      IF BD-STATUS NOT = SQLITE_OK then
  55.              CALL "BD-ERROR"
  56.           EXIT PROGRAM
  57.      ELSE
  58.           DISPLAY "OK"
  59.      END-IF.
  60.          
  61.      
  62.      EXIT PROGRAM.
  63.  
  64. *-------------------------------------------------------------------------
  65.  MUESTRO-CABECERA.
  66. *-------------------------------------------------------------------------
  67.  
  68.      PERFORM  DB-CANTIDAD-COLUMNAS.
  69.      
  70.      MOVE ZEROS TO BD-COLUMNA-NUMERO.
  71.      PERFORM VARYING BD-COLUMNA-NUMERO  FROM 0 BY 1  UNTIL BD-COLUMNA-NUMERO = BD-COLUMNA-CANTIDAD
  72.     *>sqlite3_column_type
  73. *          DISPLAY "--------------------"
  74. *          DISPLAY "sqlite3_column_type"
  75.  
  76.            MOVE SPACES                  TO FUNCIONES-SQLITE3-LIB
  77.            MOVE "sqlite3_column_type"   TO FUNCIONES-SQLITE3-LIB    
  78.  
  79.            call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  80.              USING        BY VALUE   stmt-handle
  81.                           BY VALUE   BD-COLUMNA-NUMERO *> COMIENZA DE 0 LAS COLUMNAS HASTA sqlite3_column_count - 1
  82.                           returning  BD-COLUMNA-TIPO   *> RETORNA EL TIPO DE COLUMNA
  83.            end-call          
  84.  
  85.           DISPLAY "--------------------"
  86.           DISPLAY " COL NRO : " , BD-COLUMNA-NUMERO  , " es  COLUMNA-TIPO  " , BD-COLUMNA-TIPO  
  87.           DISPLAY "--------------------"
  88.      END-PERFORM.
  89.  
  90. *-------------------------------------------------------------------------
  91.  DB-CANTIDAD-COLUMNAS.
  92. *-------------------------------------------------------------------------
  93. *>sqlite3_column_count
  94. *    DISPLAY "--------------------".
  95. *    DISPLAY "sqlite3_column_count".
  96.  
  97.      MOVE SPACES                  TO FUNCIONES-SQLITE3-LIB.
  98.      MOVE "sqlite3_column_count"  TO FUNCIONES-SQLITE3-LIB.    
  99.  
  100.      call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  101.               USING        BY VALUE   stmt-handle
  102.                            returning  BD-COLUMNA-CANTIDAD
  103.  
  104.      end-call.          
  105.  
  106. *     DISPLAY "BD-COLUMNA-CANTIDAD : " , BD-COLUMNA-CANTIDAD.
  107.  
  108. *-------------------------------------------------------------------------
  109.  DB-STEP.
  110. *-------------------------------------------------------------------------
  111. *>sqlite3_step
  112. *    DISPLAY "--------------------".
  113. *    DISPLAY "sqlite3_step".
  114.  
  115.      MOVE SPACES TO FUNCIONES-SQLITE3-LIB.
  116.      MOVE "sqlite3_step"          TO FUNCIONES-SQLITE3-LIB.    
  117.  
  118.      call     FUNCIONES-SQLITE3-LIB  WITH STDCALL LINKAGE
  119.               USING        BY VALUE   stmt-handle
  120.                            returning  BD-STATUS
  121.  
  122.      end-call.      
  123. *    DISPLAY BD-STATUS.    
  124.      
  125.  
  126.  
Saludos ...
fastpho is offline   Responder Con Cita