FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ADO y "DATETIME" como obtener SOLUCIONADO
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
ADO y "DATETIME" como obtener SOLUCIONADO
Posted: Tue Feb 09, 2021 06:36 PM
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 (fw): Select all Collapse
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 (fw): Select all Collapse
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
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: ADO y "DATETIME" como obtener
Posted: Tue Feb 09, 2021 09:07 PM
Intenta así para que puedas mirar si la consulta trae información

Code (fw): Select all Collapse
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
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ADO y "DATETIME" como obtener
Posted: Wed Feb 10, 2021 03:41 PM

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.

Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ADO y "DATETIME" como obtener
Posted: Wed Feb 10, 2021 05:06 PM

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,

Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ADO y "DATETIME" como obtener SOLUCIONADO
Posted: Wed Feb 10, 2021 06:35 PM
Asi :
Code (fw): Select all Collapse
        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)
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: ADO y "DATETIME" como obtener SOLUCIONADO
Posted: Thu Feb 11, 2021 11:06 PM

Javier:

Muchas gracias.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero

Continue the discussion