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] Darle la vuelta a un campo CHITOBLA GnuCOBOL (OpenCOBOL) 19 24 de octubre de 2022 21:10
[Sintaxis] Nombre de campo dentro de variable. Alberto IBM Enterprise COBOL 10 11 de junio de 2020 17:04
SqlServer Express 2014 / Win10 Home Edition Hrmcobol Sistemas operativos 1 1 de agosto de 2018 13:42
[Duda] Reducir tamaño campo Gatomalo RM/COBOL 4 24 de noviembre de 2017 04:30
[Duda] Tamaño de campo Josber PowerFORM 2 16 de diciembre de 2015 19:47

Respuesta
 
Herramientas

  #1
Antiguo 10 de abril de 2021, 22:28
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 SqlServer Campo DateTime y Date
0 Inactivo Inactivo

Estimados, como andan !!
Como los Trata el Amigo Covid? Yo me he vacunado con la Sputnic-5 Así que ahora hablo Ruso el perfectamente !!! jajajajaj
.
Tengo un problema con una tabla de SqlServer en la que tengo que grabar dos campos, uno DateTime y otro Date. Y no logro encontrar la compatibilidad con PW9.

Alguien sabe como declararlos?!

Abrazo a todos y disculpas por estar medio perdido pero me time uno tiempo de paz y tranquilidad y en abril he vuelto al COBOL.

Hrm
Hrmcobol is offline   Responder Con Cita
  #2
Antiguo 11 de abril de 2021, 01:53
Nino
Forero Junior
Última Actividad 23.11.2021 12:46
Posts Posts: 6
Likes enviados Enviados: 3
Likes recibidos Recibidos: 9

Hola HRM
Me alegro muchísimo de poder colaborar.
He aquí la solución:
a) El campo a "estampar" debes PIC X(19).
b) Su composición debe ser llenada con esta estructura:
YYYY '/' MM '/' DD ' ' HOR ':' MIN ':' SEG *> Notar que se usa sólo hasta SEGUNDOS. La milésima de segundo NO SE ESTAMPA.
... entonces, el modelo de registro es:
Código COBOL:
  1. STRING
  2.       YYYY  '/' MM '/' DD ' ' HOR ':' MIN ':' SEG *> Notar que se usa sólo hasta SEGUNDOS. La milésima de segundo NO SE ESTAMPA.
  3.      DELIMITED SIZE
  4.      INTO WSS_FECHA_Y_HORA *> Este es el campo SQL definido en la WSS
c) Debes usar el separador de fecha "/". El separador "-" NO FUNCIONA !!

Este programa lo fabriqué para probar. Funciona tanto para Postgres SQL como para SQL Server (los probé en ambos).

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 TODAY PIC X(16).
  5.  01 FECHA-Y-HORA REDEFINES TODAY.
  6.    05 FECHA-HOY.
  7.      10 YYYY PIC X(4).
  8.      10 MM   PIC X(2).
  9.      10 DD   PIC X(2).
  10.    05 HORA-HOY.
  11.      10 HOR  PIC 99.
  12.      10 MIN  PIC 99.
  13.      10 SEG  PIC 99.
  14.      10 MDS  PIC 99.
  15.  
  16.      EXEC SQL BEGIN DECLARE SECTION END-EXEC.
  17.  01 WSS_FECHA_Y_HORA         PIC X(19).
  18.      EXEC SQL END DECLARE SECTION END-EXEC.
  19.  
  20.  PROCEDURE       DIVISION.
  21.      MOVE FUNCTION CURRENT-DATE TO TODAY *> Función para obtener la fecha y la hora deseada
  22.      DISPLAY TODAY '<-TODAY luego de ejecutar MOVE FUNCTION CURRENT-DATE TO TODAY'
  23.      MOVE SPACES TO WSS_FECHA_Y_HORA
  24.      STRING
  25.       YYYY  '/' MM '/' DD ' ' HOR ':' MIN ':' SEG *> Notar que se usa sólo hasta SEGUNDOS. La milésima de segundo NO SE ESTAMPA.
  26.      DELIMITED SIZE
  27.      INTO WSS_FECHA_Y_HORA
  28.      DISPLAY WSS_FECHA_Y_HORA '<- Así queda el campo luego de llenado'
  29.  *>**************************
  30.  *> CONECTAMOS SERVIDOR SQL *
  31.  *>**************************
  32.      EXEC SQL CONNECT TO DEFAULT END-EXEC
  33.      CALL "Analiza-Mensaje-Error-SQL"
  34.  *>************************
  35.  *>************************
  36.      MOVE 76080362          TO MRP_SLC_ID_GIMNASIO   *> Usado para probar el programa ejemplo. Debes usar tus propios elementos de registro.
  37.      MOVE 16963676          TO MRP_SLC_RUT           *> Usado para probar el programa ejemplo. Debes usar tus propios elementos de registro.
  38.      MOVE 1                 TO MRP_SLC_ID_SOLICITUD  *> Usado para probar el programa ejemplo. Debes usar tus propios elementos de registro.
  39.     *>  fecha_solicitud es el campo DateTime de la tabla SQL que se requiere actualizar (UPDATE)
  40.      EXEC SQL
  41.       UPDATE solicitud
  42.        SET fecha_solicitud = :WSS_FECHA_Y_HORA
  43.       WHERE id_gimnasio    = :MRP_SLC_ID_GIMNASIO AND
  44.             rut            = :MRP_SLC_RUT         AND
  45.             id_solicitud   = :MRP_SLC_ID_SOLICITUD
  46.      END-EXEC
  47.      CALL "Analiza-Mensaje-Error-SQL". *> Esta es una rutina que valida la acción sobre la tabla.
  48.  *>*****************************
  49.  *> DESCONECTAMOS SERVIDOR SQL *
  50.  *>*****************************
  51.      EXEC SQL DISCONNECT DEFAULT END-EXEC
  52.      CALL "Analiza-Mensaje-Error-SQL".
  53.  *>*****************************
  54.  *>*****************************

Comentario de Moderador

Usa los botones de resalto de sintaxis

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Captura1.JPG
Vistas: 129
Tamaño:  47,3 KB   Pulsar la imagen para la versión amplia
Nombre:  Captura2.JPG
Vistas: 131
Tamaño:  22,4 KB   Pulsar la imagen para la versión amplia
Nombre:  Captura3.JPG
Vistas: 137
Tamaño:  43,7 KB   Pulsar la imagen para la versión amplia
Nombre:  Captura4.JPG
Vistas: 140
Tamaño:  63,6 KB  

Última edición por Kuk fecha: 11 de abril de 2021 a las 14:31. Razón: Resalto de sintaxis
Nino is offline   Responder Con Cita
  #3
Antiguo 26 de mayo de 2021, 11:45
David
Forero Junior
Última Actividad 25.02.2022 13:37
Posts Posts: 12
Likes enviados Enviados: 16
Likes recibidos Recibidos: 3

Hola Nino.

Estupendo tu aporte sobre el campo FECHA HORA.
He tenido un pequeño inconveniente con el, lo atribuyo a la configuración de SQL-Server

La instruccion:
Código COBOL:
  1.       STRING   YYYY  '/' MM '/' DD ' ' HOR ':' MIN ':' SEG  DELIMITED SIZE INTO WSS_FECHA_Y_HORA

La he Tenido que cambiar por:
Código COBOL:
  1.      STRING   YYYY  '-' MM '-' DD 'T' HOR ':' MIN ':' SEG  DELIMITED SIZE INTO WSS_FECHA_Y_HORA

Cambiando el "/" por "-" y El " " por "T" como delimitadores.


Comentario de Moderador

Usa los botones de resalto de sintaxis


Saludos

Última edición por Kuk fecha: 26 de mayo de 2021 a las 12:21. Razón: Usa los botones de resalto de sintaxis ;)
David is offline   Responder Con Cita
Respuesta



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:16.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.