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] Control DBAccess Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 4 23 de octubre de 2017 23:11

Respuesta

  #1
Antiguo 15 de abril de 2021, 16:39
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243
Predeterminado Control DBAccess...
1 Inactivo Inactivo

Hola Amigos:

Estoy haciendo un trabajo con unas notas de pedido que están en un SQL Server de un tercero. Y necesito leer y modificar sus tablas. Para eso estoy usando el control DBAceccess.

El primer problema que me encuentro es que no logro filtrar por fecha.

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  
  3.  01  db-error                pic s9(5) comp-5.
  4.  01  db-eof                  pic s9(5) comp-5.
  5.  
  6.  01  ind                     pic s9(5) comp-5.
  7.  01  wcondicion              pic x(256).
  8.  
  9.  01  wdesfec-comp.
  10.      02 wdesfec-aa           pic 9999.
  11.      02                      pic x value "/".
  12.      02 wdesfec-mm           pic 99.
  13.      02                      pic x value "/".
  14.      02 wdesfec-dd           pic 99.
  15.      02                      pic x(9) value " 00:00:00".
  16.  01  redefines wdesfec-comp.
  17.      02 wdesfec              pic x(19).
  18.      
  19.  01  whasfec-comp.
  20.      02 whasfec-aa           pic 9999.
  21.      02                      pic x value "/".
  22.      02 whasfec-mm           pic 99.
  23.      02                      pic x value "/".
  24.      02 whasfec-dd           pic 99.
  25.      02                      pic x(9) value " 00:00:00".
  26.  01  redefines whasfec-comp.
  27.      02 whasfec              pic x(19).
  28.  
  29.  01  wfec-comp.
  30.      02 wfec-aa              pic 9999.
  31.      02                      pic x value "/".
  32.      02 wfec-mm              pic 99.
  33.      02                      pic x value "/".
  34.      02 wfec-dd              pic 99.
  35.  01  redefines wfec-comp.
  36.      02 wfec                 pic x(19).
  37.  
  38.  PROCEDURE       DIVISION.
  39.      
  40.  #include "copys\declara.cpy".
  41.  
  42.  comienzo.
  43.      invoke grdLista "ClearList".
  44.  
  45.      invoke dbPedidos  "OpenDB".
  46.  
  47.      move spaces                       to wdesfec whasfec.
  48.      
  49.      move "text" of txtDesfec          to fecha-dma.
  50.      move fecha-dma-aa                 to wdesfec-aa.
  51.      move fecha-dma-mm                 to wdesfec-mm.
  52.      move fecha-dma-dd                 to wdesfec-dd.
  53.  
  54.      move "text" of txtHasfec          to fecha-dma.
  55.      move fecha-dma-aa                 to whasfec-aa.
  56.      move fecha-dma-mm                 to whasfec-mm.
  57.      move fecha-dma-dd                 to whasfec-dd.
  58.  
  59.      open output tempo close tempo open i-o tempo.
  60.  
  61.      open input ctacte arti.
  62.  
  63.      move spaces            to wcondicion.
  64.      
  65.      string "XFECHA >= "       delimited by size
  66.             wdesfec            delimited by size
  67.             " and XFECHA <= "  delimited by size  
  68.             whasfec            delimited by size
  69.         into wcondicion
  70.      end-string.
  71.      
  72.      move wcondicion        to "Condition" of dbPedidos.
  73.      
  74.      invoke dbPedidos "SelectRecords" returning db-error.
  75.      if db-error >= zeros
  76.         move 1          to db-eof
  77.         perform until db-eof not = 1
  78.            invoke dbPedidos "ReadNextRecord" returning db-eof
  79.            if db-eof = 1
  80.               perform hace thru f-hace
  81.            end-if
  82.         end-perform
  83.      end-if.
  84.      
  85.      invoke dbPedidos  "CloseDB".

Ya he probado de varias maneras y no logro hacerlo.

Le saco la condición de filtro y me trae todo y me fijo de qué manera me trae la fecha 2021/03/29 16:28:21

Saludos.

Fito...

---------- Post añadido : 11:55 ---------- Post anterior : 11:23 ----------

Me contesto solo.

El campos fecha debe ser pic 9(8) AAAAMMDD y va entre apóstrofes.

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  
  3.  01  xdesfec                 pic 9(8).
  4.  01  xhasfec                 pic 9(8).
  5.  
  6.  PROCEDURE       DIVISION.
  7.  
  8.      string "XFECHA >= '"        delimited by size
  9.             xdesfec              delimited by size
  10.             "' and XFECHA <= '"  delimited by size  
  11.             xhasfec              delimited by size
  12.             "'"                  delimited by size  
  13.         into wcondicion
  14.      end-string.


---------- Post añadido : 11:39 ---------- Post anterior : 11:55 ----------

Holaaaa:

Me parece que hasta acá llegué con el control DBAccess.

No me etrae los datos de un campo tipo "decimal", si bien la conversión me dice que es un s9(14)v99, no me lee nada.
Creo que ese problema lo tuve con un MySql una vez, evidentemente acá tambien.

Voy a tener que probar con otra cosa

Saludos

Fito...
Fito is offline   Responder Con Cita
  #2
Antiguo 15 de abril de 2021, 20:52
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

@Fito, Hola podes subir la bd para ver si te podemos ayudar con el campo tipo decimal
fastpho is offline   Responder Con Cita
  #3
Antiguo 15 de abril de 2021, 23:37
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola:

Ahí subi la tabla

saludos

Fito
Archivos Adjuntos
Tipo de Archivo: rar DKPEDIDOSCUERPO_202104151834.rar (17,4 KB)Descargas: 118
Fito is offline   Responder Con Cita
  #4
Antiguo 16 de abril de 2021, 01:20
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

En PowerCobol no se, pero en RM/Cobol que es lo que yo utilizo con base de datos SQLserver, PostgreSQL, etc, utilizo para los importes campos de edición o alfanumericos que seria lo mismo.

Intenta declarar un campo para probar:

01 importe pic ---------------9.99.

Yo pongo siempre "." en vez de ',' para no meter configuraciones ni conversiones.

Si no te funciona prueba con

01 importe pic x(16).

y luego un "move importe to importe-numerico "


Y en algunas ocasiones para ejecutar procedimientos almacenados en la base de datos (o funciones) utilizo campos numericos como tu indicas:


Código COBOL:
  1.        01 valor1 pic S9(15)V99.
  2.        01 consulta-sql  pic x(100).
  3.  
  4.  
  5. ****** esto seria la consulta que quiero hacer al procedimiento almacenado f_saldo
  6.  
  7.            initialize consulta-sql
  8.            
  9.            STRING "select f_saldo"
  10.                       delimited by size
  11.                   "('"  cuenta "')"
  12.                       delimited by size
  13.                       INTO consulta-sql
  14.  
  15. ********** para ejecutar la consulta y recibir resultado
  16.  
  17.           SQL PREPARE QUERY sql-QueryHaNdle
  18.                sql-ConnectionHandle
  19.                consulta-sql.
  20.            SQL START QUERY sql-QueryHandle.
  21.            SQL FETCH ROW sql-QueryHandle
  22.            SQL GET DATA sql-queryhandle
  23.                  1 VALOR1 OMITTED.

Pero este ultimo rollo que he puesto aqui es para rm/cobol
JCantero is offline   Responder Con Cita
  #5
Antiguo 16 de abril de 2021, 02:26
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

@Fito, yo lo meteria en listview y probaria asi:
Código COBOL:
  1. *----------------
  2.  Carga.      
  3.        INVOKE DB-Ventas-Database "ReadNextRecord" RETURNING ReturnValue.
  4.  
  5.        IF ReturnValue not = 1 then 
  6.                  MOVE 2 to OFlag  
  7.                  exit program
  8.                  end-if
  9.        end-if.
  10.        IF ReturnValue = 1  
  11.          INVOKE CMLISTVIEW1 "Add" USING 1 1 RETURNING WK-IDX
  12.          IF WK-IDX > 0 THEN
  13.             MOVE "ListItems"(WK-IDX) OF CMLISTVIEW1   TO POW-PCMLIST
  14.             MOVE "ARTICULOID"  OF DB-Ventas-Database       TO "Text"(1) OF POW-PCMLIST            
  15.             MOVE "CANTIDAD"    OF DB-Ventas-Database       TO "Numeric"(2) OF POW-PCMLIST *> picture $$$,$$$,$$9.99
  16.             MOVE "XTOTAL"      OF DB-Ventas-Database       TO "Numeric"(3) OF POW-PCMLIST *> picture $$$,$$$,$$9.99
  17.             MOVE "PRECIO"      OF DB-Ventas-Database       TO "Numeric"(4) OF POW-PCMLIST *> picture $$$,$$$,$$9.99      
  18.             INVOKE CMLISTVIEW1 "Refresh"
  19.             MOVE 3 TO OFlag
  20.          END-IF
  21.        END-IF.  
  22. *----------------        
  23.  F-Carga.
  24.     exit program.    
Saludos
fastpho is offline   Responder Con Cita
  #6
Antiguo 16 de abril de 2021, 16:02
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola:

Me viene en cero el dato, sin importar el formato que le de.

No voy a renegar más con esto, voy a ver con ADO si funciona

Muchas gracias...

Saludos...

Fito...
Fito is offline   Responder Con Cita
  #7
Antiguo 16 de abril de 2021, 17:30
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 @Fito, es muy raro que te traiga los valores en zero , no tendra que ver con la configuracion regional que tenes , o la declaracion
Código COBOL:
  1. SPECIAL-NAMES
  2.       DECIMAL-POINT IS COMMA.


---------- Post añadido : 16:30 ---------- Post anterior : 15:50 ----------

Citación del post de fastpho Ver Mensaje
Hola @Fito, es muy raro que te traiga los valores en zero , no tendra que ver con la configuracion regional que tenes , o la declaracion
Código COBOL:
  1. SPECIAL-NAMES
  2.       DECIMAL-POINT IS COMMA.
yo le pondria en la configuracion regional de numeros , Setear "." separador de decimales (numeros) y Setear "," separador de miles (numeros)
fastpho is offline   Responder Con Cita
Respuesta


Herramientas

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