Page 1 of 1
PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Thu Oct 27, 2022 2:02 am
by Marco Augusto
ACTUALICE A LA ULTIMA VERSION DE FWH32
UTILIZO MYSQL VIA ADO
TODAS LA FECHAS EN LAS TABLAS
LAS TENGO DEFINIDAS COMO TIPO DATE
SIN EMBARGO AL MOSTRAR
UNA FECHA ME APARECE CON FORMATO FECHA -HORA
POR EJEMPLO:
? TRANS(oMOV:FIELDS("FECHA"):VALUE,"@E") // RESULTADO 11/08/2022 00:00:00.000
? VALTYPE(oMOV:FIELDS("FECHA"):VALUE) // RESULTADO T
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Thu Oct 27, 2022 12:43 pm
by nageswaragunupudi
Looks like the field "DATE" was actually created with type DATETIME or TIMESTAMP.
To Check:
if the result is 7 or 133 , the field is of "DATE" type or if 135, it is TIMESTAMP or DATETIME.
Also, you can see the actual SQL that created this table, you can do this:
Code: Select all | Expand
oRs := oAdoCon:Execute( "SHOW CREATE TABLE <yourtablename>" )
FW_MEMOEDIT( oRs:Fields( 1 ):Value )
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Thu Oct 27, 2022 1:20 pm
by Marco Augusto
El resultado de
oMOV:FIELDS("FECHA"):VALUE // 133
la estructura de la tabla
Field Type Null Key Default Extra
LLAVE varchar(20) NO PRI
PERIODO varchar(6) YES MUL
POLIZA varchar(13) YES MUL
CONCEPTO varchar(100) YES
CARGOS decimal(14,2) YES 0
ABONOS decimal(14,2) YES 0
FECHA date NO MUL
FECHACAP date NO
HORA varchar(8) NO
CONCEPTO2 varchar(100) YES
FECHA2 date YES 0000-00-00
Anteriormente usaba versiones de FWH de 2010 (no recuerdo el mes)
y no tenía ese problema
En la versión de FWH enero 2020 ya se presentaba el problema
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Thu Oct 27, 2022 6:44 pm
by Marco Augusto
OK
oRs := oAdoCon:Execute( "SHOW CREATE TABLE <yourtablename>" )
FW_MEMOEDIT( oRs:Fields( 1 ):Value )
CREATE TABLE `polizas` (
`LLAVE` varchar(20) NOT NULL default '',
`PERIODO` varchar(6) default ' ',
`POLIZA` varchar(13) default ' ',
`CONCEPTO` varchar(100) default ' ',
`CARGOS` decimal(14,2) default '0.00',
`ABONOS` decimal(14,2) default '0.00',
`FECHA` date NOT NULL,
`FECHACAP` date NOT NULL,
`HORA` varchar(8) NOT NULL,
`CONCEPTO2` varchar(100) default ' ',
`FECHA2` date default '0000-00-00',
PRIMARY KEY (`LLAVE`),
KEY `Index_2` (`PERIODO`),
KEY `Index_3` (`POLIZA`),
KEY `Index_4` (`FECHA`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sat Oct 29, 2022 1:03 pm
by Marco Augusto
¿No hay solución a este problema?
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sat Oct 29, 2022 4:26 pm
by Antonio Linares
Temporalmente podrias usar esto:
? SubStr( TRANS(oMOV:FIELDS("FECHA"):VALUE,"@E"), 1, 10 )
Que te muestra oMOV:FIELDS("FECHA"):VALUE ?
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sun Oct 30, 2022 1:02 am
by Marco Augusto
Saludos
Por supuesto que hay forma de corregirlo
pero implica modificar todas las llamadas a fechas
en todos los sistemas que quiera compilar con esta nueva versión
function cfecha(dFE)
RETURN (fw_ttod(dFE))
El problema está en que el campo está definido en la tabla como tipo DATE
y lo toma como DATETIME
Y eso no sucedía en la versión que venía utilizando en enero de 2010
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sat Nov 05, 2022 2:40 am
by nageswaragunupudi
The real problem is with xHarbour.
Harbour produces correct results.
For your information,
FWH does not have to do anything at all with this code
Code: Select all | Expand
oRs:Fields( xx ):Value
// or
ValType( oRs:Fields( xx ):Value )
This code is entirely executed by the OLE functions of (x)Harbour.
So, the results will be the same, whichever version of FWH you use.
We can confirm this by executing this sample program both with Harbour and xHarbour.
This test is done on a Cloud server belonging to FW and all of us can connect to this server.
Code: Select all | Expand
#include "fivewin.ch"
function Main()
local oCn, oRs
SET DATE ITALIAN
SET CENTURY ON
SET TIME FORMAT TO "HH:MM:SS"
oCn := FW_OpenAdoConnection( { "MYSQL", "209.250.245.152","fwh","fwhuser","FiveTech@2022" }, .t. )
if oCn == nil
? "Connect fail"
return nil
else
? "Connected"
endif
if FW_AdoTableExists( "ado_dates", oCn )
oCn:Execute( "DROP TABLE `ado_dates`" )
endif
FWAdoCreateTable( "ado_dates", { ;
{ "FLD_CHAR", "C", 10, 0 }, ;
{ "FLD_DATE", "D", 8, 0 }, ;
{ "FLD_DTIME","T", 8, 0 } }, oCn )
oRs := oCn:Execute( "SHOW CREATE TABLE `ado_dates`" )
FW_MEMOEDIT( oRs:Fields( 1 ):Value )
oRs:Close()
oRs := FW_OpenRecordSet( oCn, "ado_dates" )
oRs:AddNew( { "fld_char", "fld_date", "fld_dtime" }, ;
{ "one", Date(), DateTime() } )
XBROWSER oRs FASTEDIT
? "Compiler = " + Version(), ;
"======================", ;
"FLD_DATE", ;
oRs:Fields( "fld_date" ):Value, ;
ValType( oRs:Fields( "fld_date" ):Value ), ;
oRs:Fields( "fld_date" ):Type, ;
"----------", ;
"FLD_DATIME", ;
oRs:Fields( "fld_dtime" ):Value, ;
ValType( oRs:Fields( "fld_dtime" ):Value ), ;
oRs:Fields( "fld_dtime" ):Type
oRs:Close()
oCn:Close()
return nil
Results:
HARBOUR:
XHARBOUR:
I have not checked with later versions of xHarbour. Worth checking, if the issue is fixed in later versions of xHarbour.
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sat Nov 05, 2022 3:30 pm
by Marco Augusto
gracias por la atención
en la versión xharbour con la que no
había problema era de 2010-06-23 build 1.2.1
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sat Nov 05, 2022 4:35 pm
by nageswaragunupudi
Marco Augusto wrote:gracias por la atención
en la versión xharbour con la que no
había problema era de 2010-06-23 build 1.2.1
Did you test with that old version now?
Do you still have that old version?
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sun Nov 06, 2022 3:34 pm
by Marco Augusto
Con Xharbour BUILD 1.2.1, FWH SEPTEMBER,2010 y BCC582
tengo muchos sistemas funcionando correctamente
Re: PROBLEMA CON FORMATO DE FECHA MYSQL ADO
Posted: Sun Nov 06, 2022 5:20 pm
by nageswaragunupudi
Do you have xHarbour 1.2.1 now?
Can you build the above sample with 1.2.1?
Let us assure you 100% that FWH has nothing do at all with this issue.