Page 1 of 1

Sqlite and FWH

Posted: Thu Mar 17, 2022 5:55 pm
by Natter
Hi,

Is it possible to work with the Sqlite database via FWH ?

Re: Sqlite and FWH

Posted: Thu Mar 17, 2022 9:17 pm
by James Bott
Search the forum for "sqlite" and you will get about 20 pages of messages on this topic.

James

Re: Sqlite and FWH

Posted: Fri Mar 18, 2022 2:47 pm
by Willi Quintana
Hello James---
See this code.

Code: Select all | Expand


oConG := OpenSQLite( oConG )

cCad := "SELECT * FROM DOCUMENTO"
oObj := SSQLQry( oConG, oObj, cCad )

IF oObj:RecordCount() =0
  cCad := "INSERT INTO DOCUMENTO (NUM_RUC, TIP_DOCU, NUM_DOCU) VALUES ('00000000000','','')"
  lOK := oConG:Execute( cCad )
EndIf

cCad := "UPDATE PARAMETRO SET val_para = '1' WHERE cod_para = 'TIMEENVIA'"
lOK := oConG:Execute( cCad )



//---------------------------------------------------------------------------------------------------------------
Function OpenSQLite( oConL )
oConL                  := TOleAuto():new( "adodb.connection" )
oConL:ConnectionString := "Data Source=archivosfs;Version=3;New=True;Compress=True;"

TRY
   oConL:Open()
CATCH
   MsgStop( "No Hay Conexion ODBC - SQLIte", "Error", 2 )
   oConL := Nil
   QUIT
   QUIT
END

SysRefresh()

Return( oConL )

//-----------------------------------------------------------------------------------------------------------------------------
Function SSQLQry( oConT, oRs1, cCon )
oRs1 := FW_OpenRecordSet( oConT, cCon )
Return( oRs1 )


 

Re: Sqlite and FWH

Posted: Fri Mar 18, 2022 2:49 pm
by Willi Quintana
More code

Code: Select all | Expand


//----------abrir una SQLITE.DB
//---------------------------------------------------------------------------------------------------------------
Function OpenSQLite( oConL )
oConL                  := TOleAuto():new( "adodb.connection" )
oConL:ConnectionString := "Data Source=sqlitedat;Version=3;New=True;Compress=True;"         // sqitedat es el nombre indicado en el ODBC

TRY
   oConL:Open()
CATCH
   MsgStop( "No Hay Conexion ODBC - SQLIte", "Error", 2 )
   oConL := Nil
   QUIT
   QUIT
END

SysRefresh()

Return( oConL )


//-------hacer una consulta
...
cCad := "SELECT cod_para, val_para FROM TXXXX_PARAM"
oObj := SSQLQry( oConL, oObj, cCad )
WHILE !oObj:EOF()
  IF SQLvar( oObj, 0 ) = "FUNCIO"
    cMen := "SFS : " + IF(SQLVar( oObj, 1 ) = "01", "AUTOMÁTICO","MANUAL")
  EndIf
  oObj:Move(1)
ENDDO

//---------------------------------------------------------------------------------------------------------
Function SSQLQry( oConT, oRs1, cCon )
oRs1 := FW_OpenRecordSet( oConT, cCon )
Return( oRs1 )

//------------update datos
...
cCad := "UPDATE TXXXX_PARAM SET val_para = '0.2' WHERE cod_para = 'TIEMPO'"
lOK := oConL:Execute( cCad )

//-----------------------------------------------------------------------------------------------------------------------------
Function SQLVar( oObj, nCampo )
local cVar
TRY
cVar := oObj:Fields( nCampo ):Value
CATCH
cVar := ""
END
Return( cVar )


//-------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------
Function SetBrow(oDataS, oBrw)
local lRet := .t.
local bGoTop, bGoBottom, bSkipper, bSkip
local cClsName

bGoTop    := { || If( oDataS:RecordCount() > 0, oDataS:MoveFirst(), nil ) }
bGoBottom := { || If( oDataS:RecordCount() > 0, oDataS:MoveLast(), nil )  }
bSkip     := { | n | AdoSkip( oDataS, IfNil( n, 1 ) ) }
bSkipper  := { | n | AdoSkip( oDataS, IfNil( n, 1 ) ) }


oBrw:cAlias    := ""
oBrw:bGoTop    := bGoTop
oBrw:bGoBottom := bGoBottom
oBrw:bSkip     := bSkipper
oBrw:bLogicLen := { || oDataS:RecordCount() }
if oBrw:oVScroll() != nil
  oBrw:oVscroll():SetRange( 1, oDataS:RecordCount() )
endif
oBrw:Refresh()

Return(NIl)

static function AdoSkip( oRs, n )

LOCAL nRec

if oRs:RecordCount() == 0
   return 0
endif

nRec := oRs:AbsolutePosition
If( oRs:Eof, oRs:MoveLast(), If( oRs:Bof, oRs:MoveFirst(),) )
oRs:Move( n )
If( oRs:Eof, oRs:MoveLast(), If( oRs:Bof, oRs:MoveFirst(),) )

return oRs:AbsolutePosition - nRec
 

Re: Sqlite and FWH

Posted: Fri Mar 18, 2022 3:44 pm
by nageswaragunupudi
Mr. Willi
What ODBC driver are you using?

Re: Sqlite and FWH

Posted: Fri Mar 18, 2022 8:50 pm
by Willi Quintana
Check your mail.
Regards