Page 1 of 1

ADO y "DATETIME" como obtener SOLUCIONADO

Posted: Tue Feb 09, 2021 6:36 pm
by VitalJavier
Que tal a todos, buen dia
Estoy trabajando con una MDB de ACCES de un reloj checador
y tienes una tabla de checadas
Esta tabla tiene un campo tipo DATETIME
quiero obtener este campo para saber fecha y hora
peroooooooooooooo
sale en blanco
La conexion a la MDB ya lo tengo
LA creacion del Recor ya esta , pero al ver lo que trae este record en ese campo viene vacio

Alguien me puede echar la mano con eso, no logro obtenerlo.

GetRecSet('SELECT * FROM USERINFO')

Esta es mi coneccion a la MDB

Code: Select all

STATIC FUNCTION ConnectToAccess(__cRuta)
   local lConnect := .f.
   local cStr   := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ;
                   __cRuta+"att2000.mdb;User Id=admin;Password=;"
   IF oCon == nil
      oCon                     := TOleAuto():new("ADODB.Connection")
      oCon:ConnectionString   := cStr
      TRY
         oCon:Open()
         lConnect := .t.
      CATCH
         oCon                  := nil
         MsgInfo('Connect Fail')
         return nil
      END
   ELSE
      lConnect := .t.
   ENDIF
RETURN lConnect
 
Esta es el Record

Code: Select all

STATIC FUNCTION GetRecSet(__Tabla)
   LOCAL oRecSet
   IF oCon != nil .and. oRs == nil
      oRs                     := TOleAuto():new( "ADODB.RecordSet" )
      oRs:ActiveConnection      := oCon
      oRs:Source               := __Tabla
      oRs:LockType            := 4            // adLockOptimistic
      oRs:CursorLocation      := 3            //adUseClient
      oRs:CacheSize            := 100
      TRY
         oRs:Open()
      CATCH 
         MsgInfo('Access Table Open Failure')
         return nil
      END
   ENDIF
   oRecSet         := oRs:Clone()
   IF oRs:RecordCount() > 0
      oRecSet:Sort   := oRecSet:Fields(0):Name
      oRecSet:MoveFirst()
   ENDIF
RETURN oRecSet
 

Re: ADO y "DATETIME" como obtener

Posted: Tue Feb 09, 2021 9:07 pm
by leandro
Intenta así para que puedas mirar si la consulta trae información

Code: Select all

STATIC FUNCTION GetRecSet(cQuery)
   LOCAL oRecSet
  oRecSet:= FW_OPENRECORDSET(oCon,cQuery,adLockOptimistic,adOpenKeyset)
  nRegi := oRecSet:RecordCount()
  if nRegi!=0
     xbrowse(oRecSet)
  else
     msginfo("vacio")
  endif
  oRecSet:close()
RETURN nil
 

Re: ADO y "DATETIME" como obtener

Posted: Wed Feb 10, 2021 3:41 pm
by VitalJavier
Que tal Leandro
Pues resulta que ha de ser la version de FWH
por que no me funciona FW_OPENRECORDSET
me marca error al compilar.

Re: ADO y "DATETIME" como obtener

Posted: Wed Feb 10, 2021 5:06 pm
by VitalJavier
Leandro.

Al ver si trae datos el recordset
lo marco asi : oRs:RecordCount() -> 527,456

?oRs:Fields( "CHECKTIME" ):Value -> VACIO
?Dtoc(oRs:Fields( "CHECKTIME" ):Value) -> 10/02/2021 == Aqui solo me faltaría ver la hora pero no se como

jajajajajaja es una locura,

Re: ADO y "DATETIME" como obtener SOLUCIONADO

Posted: Wed Feb 10, 2021 6:35 pm
by VitalJavier
Asi :

Code: Select all

        uData := oRs:Fields( "CHECKTIME" ):Value
        uData := ttos( uData )      
        cFecha := STod(Substr(uData,1,8))
        cHora  := Substr(uData,9,2)+":"+Substr(uData,11,2)+":"+Substr(uData,13,2)

 

Re: ADO y "DATETIME" como obtener SOLUCIONADO

Posted: Thu Feb 11, 2021 11:06 pm
by Armando
Javier:

Muchas gracias.

Saludos