Resultados 1 al 7 de 7

Tema: Control DBAccess...

  1. #1
      Guardián del Foro
    Avatar de Fito

    Registrado
    febrero de 2015
    Ubicación
    Córdoba, Villa María
    Edad
    53
    Mensajes
    410
    Última visita
    Ayer a las 13:47

    Agradecimientos
     
    Recibidos
    208
    Enviados
    225

    Citaciones y menciones
     
    Mentioned
    53 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    26
    Agradecimientos / Point Value: 0 Guardián del Foro / Point Value: 0 Activista del Foro / Point Value: 0

    Predeterminado Control DBAccess...

    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.

    COBOL Código:
    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.

    COBOL Código:
    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...

    0 Not allowed!

  2. #2
      Senior
    Avatar de fastpho

    Registrado
    diciembre de 2016
    Ubicación
    Mendoza
    Edad
    53
    Mensajes
    326
    Última visita
    18.04.2024

    Agradecimientos
     
    Recibidos
    226
    Enviados
    209

    Citaciones y menciones
     
    Mentioned
    49 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    15 Post(s)
    Poder de Reputación
    21
    Innovación / Point Value: 0 Concurso: Primer puesto / Point Value: 0

    Predeterminado

    @Fito, Hola podes subir la bd para ver si te podemos ayudar con el campo tipo decimal

    0 Not allowed!

  3. #3
      Guardián del Foro
    Avatar de Fito

    Registrado
    febrero de 2015
    Ubicación
    Córdoba, Villa María
    Edad
    53
    Mensajes
    410
    Última visita
    Ayer a las 13:47

    Agradecimientos
     
    Recibidos
    208
    Enviados
    225

    Citaciones y menciones
     
    Mentioned
    53 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    26
    Agradecimientos / Point Value: 0 Guardián del Foro / Point Value: 0 Activista del Foro / Point Value: 0

    Predeterminado

    Hola:

    Ahí subi la tabla

    saludos

    Fito
    Ficheros adjuntos Ficheros adjuntos

    0 Not allowed!

  4. #4
      Senior
    J

    Registrado
    junio de 2016
    Ubicación
    Albacete
    Edad
    57
    Mensajes
    417
    Última visita
    Hoy a las 00:19

    Agradecimientos
     
    Recibidos
    240
    Enviados
    149

    Citaciones y menciones
     
    Mentioned
    52 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    9 Post(s)
    Poder de Reputación
    25
    Activista del Foro / Point Value: 0 Agradecimientos / Point Value: 0

    Predeterminado

    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:


    COBOL Código:
    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

    0 Not allowed!

  5. #5
      Senior
    Avatar de fastpho

    Registrado
    diciembre de 2016
    Ubicación
    Mendoza
    Edad
    53
    Mensajes
    326
    Última visita
    18.04.2024

    Agradecimientos
     
    Recibidos
    226
    Enviados
    209

    Citaciones y menciones
     
    Mentioned
    49 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    15 Post(s)
    Poder de Reputación
    21
    Innovación / Point Value: 0 Concurso: Primer puesto / Point Value: 0

    Predeterminado

    @Fito, yo lo meteria en listview y probaria asi:
    COBOL Código:
    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

    0 Not allowed!

  6. #6
      Guardián del Foro
    Avatar de Fito

    Registrado
    febrero de 2015
    Ubicación
    Córdoba, Villa María
    Edad
    53
    Mensajes
    410
    Última visita
    Ayer a las 13:47

    Agradecimientos
     
    Recibidos
    208
    Enviados
    225

    Citaciones y menciones
     
    Mentioned
    53 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    3 Post(s)
    Poder de Reputación
    26
    Agradecimientos / Point Value: 0 Guardián del Foro / Point Value: 0 Activista del Foro / Point Value: 0

    Predeterminado

    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...

    0 Not allowed!

  7. #7
      Senior
    Avatar de fastpho

    Registrado
    diciembre de 2016
    Ubicación
    Mendoza
    Edad
    53
    Mensajes
    326
    Última visita
    18.04.2024

    Agradecimientos
     
    Recibidos
    226
    Enviados
    209

    Citaciones y menciones
     
    Mentioned
    49 Post(s)
    Tagged
    0 Thread(s)
    Quoted
    15 Post(s)
    Poder de Reputación
    21
    Innovación / Point Value: 0 Concurso: Primer puesto / Point Value: 0

    Predeterminado

    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
    COBOL Código:
    1. SPECIAL-NAMES
    2.       DECIMAL-POINT IS COMMA.


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

    Cita Iniciado por 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
    COBOL Código:
    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)

    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] Control DBAccess
    Por Hrmcobol en el foro PowerCOBOL (ActiveX, v4 - v11)
    Respuestas: 4
    Último Mensaje: 23.10.2017, 23:11

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
  •