Ver Mensaje Individual
  #15
Antiguo 16 de mayo de 2023, 19:59
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 con respecto a los tipos de datos
yo estoy trabajando en Android(B4A) con:

Código COBOL:
  1.       88  SQL_INTEGER         VALUE 1.  
  2.       88  SQL-REAL               VALUE 2.  
  3.       88  SQL_TEXT              VALUE 3.  

*Tema: Tipo dato Entero*

Para pwcobol es un PIC 9(1...13) dependiendo el uso.
Código COBOL:
  1. evaluate  BD-COLUMNA-TIPO
  2.              when 1
  3.                 perform DB-COLUMNA-INT
  4.  end-evaluate
  5.  
  6.  DB-COLUMNA-INT.
  7. *>Columna tipo Integer
  8.      MOVE SPACES               TO FUNCIONES-SQLITE3-LIB.
  9.      MOVE "sqlite3_column_int" TO FUNCIONES-SQLITE3-LIB.
  10.      call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  11.              USING        BY VALUE   BD-HANDLE-STMT
  12.                           BY VALUE   BD-COLUMNA-NUMERO
  13.                           returning  BD-INT
  14.      end-call.          
  15.     *>DEVUELVE BD-INT.

*Tema : Tipo de dato Fecha*
en Android represento las fechas en ticks(type Long)

Código VB:
  1. DateTime.DateFormat="dd-MM-yyyy"
  2. Dim SomeTime As Long
  3. SomeTime = DateTime.DateParse("16/05/2023")
Para sqlite es un SQL_INTEGER (SomeTime)
Para pwcobol la paso a PIC X(13) (SomeTime)

Código COBOL:
  1. LINKAGE SECTION.
  2.  01  sqlite3-value-text     PIC X(256).
  3.  
  4.  evaluate  BD-COLUMNA-TIPO
  5.              when 3 *>Date Ticks
  6.                perform DB-COLUMNA-TEXT
  7.  end-evaluate
  8.  
  9.  DB-COLUMNA-TEXT.
  10.     *>Columna tipo TEXT
  11.      MOVE SPACES                TO FUNCIONES-SQLITE3-LIB.
  12.      MOVE "sqlite3_column_text" TO FUNCIONES-SQLITE3-LIB.
  13.      MOVE SPACES          TO BD-TEXT.
  14.      call     FUNCIONES-SQLITE3-LIB WITH  STDCALL  LINKAGE
  15.              USING        BY VALUE   BD-HANDLE-STMT
  16.                           BY VALUE   BD-COLUMNA-NUMERO
  17.                           returning  BD-TEXT-POINTER
  18.      end-call.          
  19.      SET ADDRESS OF sqlite3-value-text TO BD-TEXT-POINTER.
  20.      STRING
  21.             sqlite3-value-text delimited by low-value
  22.             into BD-TEXT
  23.      END-STRING.
  24.      SET  BD-TEXT-POINTER TO NULL.
  25.     *>DEVUELVE BD-TEXT.

*Tema : Tipo de dato Real*
Tambien lo trato con sqlite3_column_text y lo muevo a
Código COBOL:
  1.  01 importe-text   pic X(13)
y luego lo convierto a numerico

Código COBOL:
  1.     evaluate  BD-COLUMNA-TIPO
  2.              when 2 *>Real
  3.                perform DB-COLUMNA-TEXT
  4.       end-evaluate

*Tema : Tipo de dato Blob*

No lo he implementado en android
Pero creo que lo mejor es guardar la direccion de la
imagen fisica del archivo de la memoria del celular o
mobil y no la imagen como tal.

*Tema : Tipo de dato Text*

simplemente como text PIC X(1...256)

Espero que te ayude y se entienda.
Saludos...
fastpho is offline   Responder Con Cita