Un saludo
Sucede que necesito obtener la fecha y hora en una sola variable para poder usarla con el tipo de datos DATETIME de Mysql, pero parece ser que no se puede con mi versión de harbour rev 10434. Puedo grabar el dato uniendo ctod(date())+time(), pero al recuperar de nuevo en una celda de xbrowse sólo me da la fecha sin la hora
Revisando en el foro encuentro que xHarbour tiene la función datetime() devolviendo un valor de tipo T con valor como: "YYYY-MM-DD HH:MM:SS" y XBrowse lo soporta, pero con Harbour no hay tal función y no encuentro la manera de solventar este problema.
También se hace mención que existe la función hb_datetime() en harbour, pero obtengo el error que no encuentra la función. Tengo entendido que desde la revisión 13489 tiene soporte para esta función . Por eso acudo a ustedes a ver si alguien tiene alguna revisión actual y estable de Harbour.
Sr. Don Antonio Linares, a lo mejor exista otra forma de solucionar este problema, pues deseo que en el xbrowse me permita visualizar y editar la celda tipo DATETIME de Mysql en formato "YYYY-MM-DD hh:mm:ss" o "DD-MM-YYYY hh:mm:ss".
Gracias
Marcelo Jingo
Ayuda con Datetime() Solucionado
Ayuda con Datetime() Solucionado
Last edited by sjingo on Wed Mar 17, 2010 10:18 pm, edited 1 time in total.
Marcelo Jingo
Re: Ayuda con Datetime()
Acabo de bajar el Harbour Rev. 13500 (de 14175) esperemos que no tenga problemas, mañana la pruebo.
Un saludo
Marcelo Jingo
Un saludo
Marcelo Jingo
Marcelo Jingo
- pablovidal
- Posts: 401
- Joined: Thu Oct 06, 2005 10:15 pm
- Location: Republica Dominicana
- Contact:
Re: Ayuda con Datetime()
Si usas mysql es facil, en el query de gravar en ves de poner la hora y la fecha desde xharbour ponla desde mysql con now() y listo.
Saludos,
Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
Pablo Alberto Vidal
/*
------------------------------------------------------
Harbour 3.2.0, Fivewin 17.02, BCC7
------------------------------------------------------
*/
Re: Ayuda con Datetime()
Como dije, no tengo problema para grabar, y esta bien lo que propones. Pero sucede que el XBrowse no me permite editar o modificar corrrectamente dicho campo porque el Harbour no soporta ese tipo de dato, y tengo entendido que xHarbour si.
He pensado hasta cambiar el tipo de dato a char, y controlar manualmente la edicion y validacion de la fecha y hora; tambien he pensado en crear campos idependientes para la fecha (DATE) y la hora(TIME); pero yo quiero manejarlo en un solo campo para aprovechar las funciones que tiene mysql para calculos de fechas y horas. Por eso seria mas facil si harbour o FWH manejara directamente este tipo de dato.
Gracias Pablo y Un Saludo
Marcelo Jingo
He pensado hasta cambiar el tipo de dato a char, y controlar manualmente la edicion y validacion de la fecha y hora; tambien he pensado en crear campos idependientes para la fecha (DATE) y la hora(TIME); pero yo quiero manejarlo en un solo campo para aprovechar las funciones que tiene mysql para calculos de fechas y horas. Por eso seria mas facil si harbour o FWH manejara directamente este tipo de dato.
Gracias Pablo y Un Saludo
Marcelo Jingo
Marcelo Jingo
Re: Ayuda con Datetime()
He bajado la versión 2.0 de Harbour, y parece ser que esta versión ya maneja el tipo de datos DATETIME porque al compilar ya no obtengo el error: Unresolved External '_HB_FUN_HB_DATETIME' que indicaría que puedo usar la función hb_datetime(), y si existe esta función pienso que debe soportar el tipo de dato T que creo que maneja un dato tipo "YYYY-MM-DD hh:mm:ss", o estoy equivocado Sr. D. Antonio.
Bueno tuve una alegría amarga porque me topé con otro error: Unresolved External '_hb_vmProcessSimbolsEx' . me imagino que para evitar esto se debe recompilar las librerías de FW904 usando la nueva versión de Harbour; y eso sí no sé por donde empezar.
Así que hasta resolver este último problema voy a tener que buscar otra solución a mi primer problema. A ver si me da una manita Don Antonio.
Un saludo
Marcelo Jingo
Bueno tuve una alegría amarga porque me topé con otro error: Unresolved External '_hb_vmProcessSimbolsEx' . me imagino que para evitar esto se debe recompilar las librerías de FW904 usando la nueva versión de Harbour; y eso sí no sé por donde empezar.
Así que hasta resolver este último problema voy a tener que buscar otra solución a mi primer problema. A ver si me da una manita Don Antonio.
Un saludo
Marcelo Jingo
Marcelo Jingo
- nageswaragunupudi
- Posts: 10729
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 10 times
- Contact:
Re: Ayuda con Datetime()
FWH 9.04 works with Harbour 2.0 and xBrowse can be used to display datetime.
Sample code:
Please copy this code into \fwh\samples folder and build with buildh.bat.
Sample code:
Code: Select all | Expand
#include 'fivewin.ch'
#include 'xbrowse.ch'
// FWH 904 with Harbour 2.0
function main()
local tDate
SET DATE FORMAT TO 'YYYY-MM-DD'
SET CENTURY ON
SET TIME FORMAT TO 'HH:MM:SS'
tDate := hb_datetime()
msginfo( valtype( tdate ) )
msginfo( hb_ttoc( tdate ) )
testxbrowse()
return nil
function testxbrowse()
local aData := { { hb_datetime() }, { hb_datetime() - 2.5 }, { hb_datetime() - 10.25} }
XBROWSER aData SETUP oBrw:aCols[ 1 ]:cDataType := 'T'
return nil
Please copy this code into \fwh\samples folder and build with buildh.bat.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: Ayuda con Datetime()
G.N. Rao
En efecto debe funcionar, pero tengo un problema, me da el error que ya les comenté:
Unresolved External '_hb_vmProcessSimbolsEx' referenced from ...\LIB\fiveh.lib|ERRSYSW. Entonces quisiera saber la forma de cómo recompilar las lib de FW904 con el harbour 2.0 .
Un saludo
Marcelo Jingo
En efecto debe funcionar, pero tengo un problema, me da el error que ya les comenté:
Unresolved External '_hb_vmProcessSimbolsEx' referenced from ...\LIB\fiveh.lib|ERRSYSW. Entonces quisiera saber la forma de cómo recompilar las lib de FW904 con el harbour 2.0 .
Un saludo
Marcelo Jingo
Marcelo Jingo
Re: Ayuda con Datetime() Solucionado
Luego de tanto probar y probar, logre solucionar mi problema, aunque el proceso se me volvió engorroso pero quedó bien para salir del atolladero.
Lo que hice fue al momento de cargar el recordset usar la función cast() que transforma los datos a otro tipo. El campo inicio Lo he cambiado de DATETIME a CHAR así:
Entonces en el recorset lo trato como caracter, al momento de grabar no pude hacer que grabara directamente desde el propio Xbrowse con una simple asignación, tal como se hace con los otros campos. Para evitar el error que salía al grabar tuve que usar el objeto command para enviar el update directamente a la tabla, luego hacer un requery del recordset.
En el XBrowse
Resultado

El valor de la fecha y hora se editan en dos campos diferentes que luego los uno y envio como tipo caracter.
Ahora si, puedo sin problema usar las funciones de mysql para calcular las fechas y horas transcurridas.
Lo de la complación de las librerías de FW queda pendiente, ya les molestaré en otro post.
Saludos
Marcelo Jingo
Lo que hice fue al momento de cargar el recordset usar la función cast() que transforma los datos a otro tipo. El campo inicio Lo he cambiado de DATETIME a CHAR así:
Code: Select all | Expand
::oRsTrab:Source := "SELECT cod_activ,actividad, cast(inicio as char) as inicio, fin ,horas_netas,horas_efectivas,nota FROM activ_veh"
Entonces en el recorset lo trato como caracter, al momento de grabar no pude hacer que grabara directamente desde el propio Xbrowse con una simple asignación, tal como se hace con los otros campos. Para evitar el error que salía al grabar tuve que usar el objeto command para enviar el update directamente a la tabla, luego hacer un requery del recordset.
En el XBrowse
Code: Select all | Expand
oCol:nEditType := EDIT_BUTTON
oCol:cEditPicture:=" - - : : "
oCol:bStrData := { || if(oRs:RecordCount()>0,oRs:Fields("inicio"):Value," ") }
oCol:bEditblock:={ |o,x,n|celda:=cHoraFecha(oRs:fields('inicio'):Value),;
if(!empty(celda),;
(nBookMark:=oRs:BookMark,;
grabafecha(oWVeh:oRsV:Fields("cod_veh"):Value,oRs:Fields("cod_activ"):Value,"inicio",celda ),;
oRs:Requery(),;
oRs:BookMark:=nBookMark),) }
oCol:bEditValue:={ | x, u | u := If( oRs:RecordCount() > 0, oRs:Fields( 'inicio' ):Value, nil ), ;
If( Empty( u )," - - : : ", u ) }
Resultado

El valor de la fecha y hora se editan en dos campos diferentes que luego los uno y envio como tipo caracter.
Ahora si, puedo sin problema usar las funciones de mysql para calcular las fechas y horas transcurridas.
Lo de la complación de las librerías de FW queda pendiente, ya les molestaré en otro post.
Saludos
Marcelo Jingo
Marcelo Jingo