Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
Retroceder   COBOL Foro > IDE-s y compiladores COBOL > Fujitsu COBOL > PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Herramienta] Fujitsu Cobol & Internet Joseg PowerCOBOL (ActiveX, v4 - v11) 5 8 de marzo de 2018 12:10
[Compilador] Fujitsu Cobol & Sqlite Joseg PowerCOBOL (ActiveX, v4 - v11) 12 7 de febrero de 2018 08:08
[Sintaxis] PowerCOBOL Microsoft ADO diegodm NetCOBOL for Windows 1 17 de agosto de 2017 22:52
[Sintaxis] Conectar con MySQL via ADO dmosca PowerCOBOL (ActiveX, v4 - v11) 7 29 de junio de 2017 15:59
Respuesta
 
Herramientas

  #1
Antiguo 4 de junio de 2018, 19:08
IDENTIFICATION DIVISION
Joseg
Novato Senior
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
Forero desde (Registrado)abril 2015
Portugal
Última Actividad04.04.2020 23:09
PROCEDURE DIVISION
PostsPosts: 176
Ha dicho GraciasEnviado: 38
Ha recibido agradecimientosRecibido: 56
Mejores respuestasSoluiones: 10
Medallas recibidas: 1Medallas: Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ReputaciónReputación: 10
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado Powercobol & ADO

Alguém neste foro usa esta dupla e que possa disponibilizar um exemplo CRUD de uma tabela, com uma coluna tipo "Date" (YYYMMDD).
Não estou a conseguindo fazer o "Update" da-me sempre erro, com as outras colunas não tenho problemas.
Não sei se é um bug da versão 7 do Pwoercobol.

Gracias,
José
Powercobol v7
Joseg no ha iniciado sesión   Responder Con Cita
  #2
Antiguo 4 de junio de 2018, 20:50
IDENTIFICATION DIVISION
Josber
Super Moderador
ENVIRONMENT DIVISION
Avatar de Josber
DATA DIVISION
Forero desde (Registrado)febrero 2015
España
UbicaciónAlicante
Última Actividad04.04.2020 21:04
PROCEDURE DIVISION
PostsPosts: 481
Ha dicho GraciasEnviado: 201
Ha recibido agradecimientosRecibido: 210
Mejores respuestasSoluiones: 31
Medallas recibidas: 1Medallas: Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Razón: Por muchos agradecimientos 
ReputaciónReputación: 20
Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road Josber is on a distinguished road
Predeterminado

Yo no encontré la manera de que funcionase un campo DATE en MySql/MariaDB, siempre me daba error al grabar igual que a tí, al final tuve que cambiarlo por campos VARCHAR(8), ni en PWC7 ni en PWC9.

Un saludo.-
Josber no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Joseg ( 5 de junio de 2018)
  #3
Antiguo 4 de junio de 2018, 21:56
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad35 años
Última Actividad04.04.2020 11:09
PROCEDURE DIVISION
PostsPosts: 1.484
Ha dicho GraciasEnviado: 340
Ha recibido agradecimientosRecibido: 574
Mejores respuestasSoluiones: 89
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Joseg, Josber, el tipo Date en las bases de datos es un binario Integer.
En Unix Date el campo contiene segundos a partir del 1 de Enero de 1970: Tiempo Unix - Wikipedia, la enciclopedia libre
Si no me equivoco, en las BD provenientes de la familia Unix, se usa este sistema. Y es el motor de la BD que lo presenta en un formato u otro, el que deseemos.

En DB2 la cosa cambia: IBM Knowledge Center
Cita del post de IBM
Internally to DB2, the date is represented as a 4 byte field, with each byte containing 2 packed decimal digits stored in the format yyyymmdd.

Externally, as returned by an SQL SELECT statement, the date is represented by a character field. The format of the string is dependant on the DATE parameter in the DB2 DSNHDECP installation module (the DB2 installation option specified on the installation panel DSNTIP4). Table 24 shows valid DB2 date formats. The length of the date field is 10 bytes, except where the DB2 Installation Date format is LOCAL, in which case the length is installation-dependent and in the range 10 to 254 bytes. The date value must be in the range 0001-01-01 to 9999-12-31 (ISO format).
Y aquí información para MySQL: MySQL :: MySQL Internals Manual :: 10.9 Date and Time Data Type Representation

DATE - 3 bytes, little endian
TIMESTAMP - 4 bytes, little endian
O sea que el tipo DATE de MySQL no es posible usarlo con Fujitsu ya que trabaja con binarios byte-oriented: Binary or COMP Format, a Description and Discussion
Es decir, no podemos declarar un binario de 3 bytes en Fujitsu. En Micro Focus sí podemos.

Conclusión: Usar campos de tiempo Timestamp que son de 4 bytes PIC S9(9) COMP-5.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Joseg ( 4 de junio de 2018)
  #4
Antiguo 4 de junio de 2018, 22:32
IDENTIFICATION DIVISION
Joseg
Novato Senior
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
Forero desde (Registrado)abril 2015
Portugal
Última Actividad04.04.2020 23:09
PROCEDURE DIVISION
PostsPosts: 176
Ha dicho GraciasEnviado: 38
Ha recibido agradecimientosRecibido: 56
Mejores respuestasSoluiones: 10
Medallas recibidas: 1Medallas: Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ReputaciónReputación: 10
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

Tentei este exemplo:
Código COBOL:
  1.  01  xx-fecha.
  2.      02 xx-fecha-aa      pic 9999.
  3.      02 xx-fecha-g1      pic x value "-".
  4.      02 xx-fecha-mm      pic 99.
  5.      02 xx-fecha-g2      pic x value "-".
  6.      02 xx-fecha-dd      pic 99.
  7.  01  redefines xx-fecha.
  8.      02 ww-fecha         pic x(10).

[Sintaxis] PowerCOBOL Microsoft ADO - COBOL Foro

mas também da erro.

Fiz também um pequeno teste sem programação, apnas com os controls do PowerCobol:

CmADODataSource1 ----> Ligado a uma BD em MariaDB
CmEdit1 (ADO) ligada a uma coluna tipo "Fecha" de uma tabela MariaDB
CmCommand1 com o seguinte código:
Código COBOL:
  1.      INVOKE CmEdit1 "UpdateRecord"
  2.      INVOKE "Recordset" OF CmADODataSource1 "MoveNext"

Sempre que se altera CmEdit1 da o erro referido aqui:
Grupos do Google

Não consigo resolver isto
Joseg no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 4 de junio de 2018, 23:10
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
Países Bajos
UbicaciónJerez De La Frontera (cádiz)
Última Actividad29.03.2020 22:33
PROCEDURE DIVISION
PostsPosts: 167
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 76
Mejores respuestasSoluiones: 5
ReputaciónReputación: 11
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Con SQL Server, lo solucionaba pasando una variable PIC 9(8) a 9999/99/99 al campo directamente.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Joseg ( 4 de junio de 2018)
  #6
Antiguo 4 de junio de 2018, 23:23
IDENTIFICATION DIVISION
Joseg
Novato Senior
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
Forero desde (Registrado)abril 2015
Portugal
Última Actividad04.04.2020 23:09
PROCEDURE DIVISION
PostsPosts: 176
Ha dicho GraciasEnviado: 38
Ha recibido agradecimientosRecibido: 56
Mejores respuestasSoluiones: 10
Medallas recibidas: 1Medallas: Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ReputaciónReputación: 10
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

Faz algo parecido com isto?

Código COBOL:
  1. 01  wdate  pic 9999/99/99.
  2. move 20180605 to wdate
  3. move wdate to "Value" OF "Item"("ModifDate") OF "Fields" OF "Recordset" OF ADOC
  4. INVOKE "Recordset" OF ADOC "MoveNext"

Pode colocar aqui essa parte do código?
Gracias,
Jose
Joseg no ha iniciado sesión   Responder Con Cita
  #7
Antiguo 5 de junio de 2018, 08:16
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad35 años
Última Actividad04.04.2020 11:09
PROCEDURE DIVISION
PostsPosts: 1.484
Ha dicho GraciasEnviado: 340
Ha recibido agradecimientosRecibido: 574
Mejores respuestasSoluiones: 89
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

Joseg, lo que cuenta es la BD, el ADO no es otra cosa que "un puente". Dependiendo del motor BD, le tienes que pasar el campo de tipo que corresponde con esa BD. El hecho de que haya funcionado un formato concreto, no quiere decir que dicho formato funcionará con otro motor BD.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 5 de junio de 2018, 08:22
IDENTIFICATION DIVISION
Dasije
Novato Senior
ENVIRONMENT DIVISION
Avatar de Dasije
DATA DIVISION
Forero desde (Registrado)noviembre 2015
España
UbicaciónJerez De La Frontera (cádiz)
Última Actividad29.03.2020 22:33
PROCEDURE DIVISION
PostsPosts: 167
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 76
Mejores respuestasSoluiones: 5
ReputaciónReputación: 11
Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road Dasije is on a distinguished road
Predeterminado

Cita del post de Joseg Ver Mensaje
Faz algo parecido com isto?

Código COBOL:
  1. 01  wdate  pic 9999/99/99.
  2. move 20180605 to wdate
  3. move wdate to "Value" OF "Item"("ModifDate") OF "Fields" OF "Recordset" OF ADOC
  4. INVOKE "Recordset" OF ADOC "MoveNext"

Pode colocar aqui essa parte do código?
Gracias,
Jose
Sí, así es.


Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije no ha iniciado sesión   Responder Con Cita
Ha dicho Gracias : 1
Joseg ( 5 de junio de 2018)
  #9
Antiguo 5 de junio de 2018, 09:17
IDENTIFICATION DIVISION
Joseg
Novato Senior
ENVIRONMENT DIVISION
Avatar de Joseg
DATA DIVISION
Forero desde (Registrado)abril 2015
Portugal
Última Actividad04.04.2020 23:09
PROCEDURE DIVISION
PostsPosts: 176
Ha dicho GraciasEnviado: 38
Ha recibido agradecimientosRecibido: 56
Mejores respuestasSoluiones: 10
Medallas recibidas: 1Medallas: Innovación: Por aportar innovaciones - Razón: Por aportar soluciones innovadoras en varias ocasiones 
ReputaciónReputación: 10
Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about Joseg has a spectacular aura about
Predeterminado

No funciona me da siempre este mensaje:
"Row cannot be located for updating. Some values may have been changed since it was last read."

A coluna é do tipo 133 (adDBDate).
DataTypeEnum | Microsoft Docs

O resultado dos meus testes sao iguais em: MariaDB, Sqlite e Hyperfile.

Gracias
Joseg no ha iniciado sesión   Responder Con Cita
  #10
Antiguo 6 de junio de 2018, 04:03
IDENTIFICATION DIVISION
Fito
Forero
ENVIRONMENT DIVISION
Avatar de Fito
DATA DIVISION
Forero desde (Registrado)febrero 2015
Argentina
UbicaciónCórdoba, Villa María
Edad49 años
Última Actividad04.04.2020 01:36
PROCEDURE DIVISION
PostsPosts: 200
Ha dicho GraciasEnviado: 87
Ha recibido agradecimientosRecibido: 64
Mejores respuestasSoluiones: 9
ReputaciónReputación: 12
Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road Fito is on a distinguished road
Predeterminado

Hola Amigos:

Aportando desde la ignorancia.

Joseg, probaste de usar guiones en vez de barras como separador de fecha?

Código COBOL:
  1. 01  wfecha.
  2.     02 waa           pic 9999.
  3.     02               pic x value "-".
  4.     02 wmm           pic 99.
  5.     02               pic x value "-".
  6.     02 wdd           pic 99.
  7. 01  redefines wfecha.
  8.     02 wdate         pic x(10).  

Saludos.

Fito...
Fito no ha iniciado sesión   Responder Con Cita
Respuesta

Tags
ado


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
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



La franja horaria es GMT +1. Ahora son las 00:47.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2020, Jelsoft Enterprises Ltd.