Page 1 of 1

COMO OBTENGO LA HORA DEL SERVER

Posted: Thu Jun 24, 2010 12:53 pm
by Marco Augusto
SALUDOS AL FORO

UTILIZO MYSQL VIA ADO
Y AL INTENTAR OBTENER LA HORA DEL SERVER NO LO PUEDO
LOGRAR, TODAS LAS FUNCIONES ME DEVUELVEN LA FECHA


SI HAGO EL QUERY DIRECTO EN MYSQL, SI OBTENGO LA FECHA Y HORA
PERO POR ADO NO LO LOGRO

UTILIZO XHARBOUR VER 1.1.0

ESTE ES EL CODIGO:

FUNCTION MAIN
oD:=CREARST("SELECT date(SYSDATE())")
XD:=oD:FIELDS(0):VALUE()
MSGINFO(XD,"DATE SYSDATE") && OBTENGO LA FECHA OK
oD:CLOSE()
*
oD:=CREARST("SELECT TIME(SYSDATE())")
XD:=oD:FIELDS(0):VALUE()
MSGINFO(XD,"TIME SYSDATE") && OBTENGO LA FECHA Y NO HORA
oD:CLOSE()
*
oT:=CREARST("SELECT CURDATE()")
XFE:=oT:FIELDS(0):VALUE()
MSGINFO(XFE,"CURDATE") && OBTENGO LA FECHA Y NO FECHA-HORA
ot:CLOSE()
*
oT:=CREARST("SELECT CURTIME()")
XTIME:=oT:FIELDS(0):VALUE()
MSGINFO(XTIME,"CURTIME") && OBTENGO LA FECHA Y NO HORA
ot:CLOSE()
*
oT:=CREARST("SELECT NOW()")
XDATO:=oT:FIELDS(0):VALUE()
MSGINFO(XDATO,"NOW") && OBTENGO LA FECHA Y NO HORA
ot:CLOSE()
RETURN NIL
*
FUNCTION CREARST(cSQL)
TRY
oRs:= TOleAuto():New("adodb.recordset")
CATCH oERRX
MsgStop( "No se ha podido crear el RECORDSET", oApp:cAplicacion)
oRs:= NIL
RETURN(oRS)
END

oRs:CursorLocation := adUseClient
oRs:LockType := adLockOptimistic
oRs:CursorType := 2
oRs:Source := cSQL
oRs:ActiveConnection(oApp:oCon)

TRY
oRs:Open()
CATCH oERRX
MsgStop( "No se ha podido abrir el RECORDSET!", oApp:cAplicacion)
RETURN(NIL)
END
RETURN(oRS)

Re: COMO OBTENGO LA HORA DEL SERVER

Posted: Mon Jun 28, 2010 4:30 pm
by Carlos Mora
Hola Marco,

podrías probar poner

oD:=CREARST("SELECT date(SYSDATE()) AS FECHA ")

en lugar de

oD:=CREARST("SELECT date(SYSDATE())")

para ver si dandole un nombre a la columna funciona?

Re: COMO OBTENGO LA HORA DEL SERVER

Posted: Mon Jun 28, 2010 7:29 pm
by Marco Augusto
GRACIAS CARLOS POR TU INTERES
SIGUENDO CON TU RECOMENDACION

Code: Select all

oT:=CREARST("SELECT TIME(SYSDATE()) AS HORA ")
MSGINFO(oT:FIELDS("HORA"):VALUE)
oT:CLOSE()
 
EL RESULTADO SIGUE SIENDO LA FECHA Y YO NECESITO LA HORA

Re: COMO OBTENGO LA HORA DEL SERVER

Posted: Mon Jun 28, 2010 9:23 pm
by Willi Quintana
Hola, uso la clase TMySQL con este codigo y me retorna los datos en forma correcta: el lio debe estar en el codigo de ADOl

Code: Select all

cDate := "SELECT CURDATE(), CURTIME()"
oDate := SQLQry(oMySQL, cDate )
dDate := oDate:FieldGet(1) 
cTime := oDate:FieldGet(2)
oApp:dDate := dDate
oApp:cTime := cTime

? dDate, cTime  // OK
 
Este codigo trabaja correctamente usando EAGLE1

Code: Select all

cDate := "SELECT CURDATE(), CURTIME()"
oDate := TMSQuery():New( oMySQL )
oDate:Open( cDate )
dDate := oDate:FieldGet(1) //
cTime := oDate:FieldGet(2)
oApp:dDate := dDate
oApp:cTime := cTime

? dDate, cTime

 

Re: COMO OBTENGO LA HORA DEL SERVER

Posted: Mon Jun 28, 2010 9:34 pm
by Willi Quintana
Otra opcion para actualizar la pc-estacion con la hora del serVIdor seria usando el comando NET TIME, llamando al servidor cuyo nombre estaria en cNameServer que lo tendria presentes al iniciaL la PC, luego de ejecutar esta funcion tiomas la hora de la pc-estacion con TIME() y listo,,,,,,

Code: Select all

Function SETDATEHORA()  
local vServer

vServer := "COMMAND.COM /C NET TIME \\" + cNameServer + " /SET /YES"
WaitRun(vServer,0)   // ejecutor externo

Return(Nil)

 

Re: COMO OBTENGO LA HORA DEL SERVER

Posted: Mon Jun 28, 2010 10:11 pm
by Marco Augusto
GRACIAS WILLI
VOY A TENER QUE UTILIZAR LAS CLASES QUE ME INDICAS
AUNQUE SOLO SEA PARA TOMAR LA HORA DEL SERVIDOR

LA SEGUNDA OPCION DE NET TIME NO ME FUNCIONA PORQUE
NO ESTOY EN UNA RED LOCAL

GRACIAS