Muy buenas perdonar por el tiempo pero ando un poco liado, aqui teneis una pequeña clase con acceso con ODBC
Debemos de instalar el driver de ODBC:
http://www.ch-werner.de/sqliteodbc/sqliteodbc.exe
// Clase tSQLite
#include "fivewin.ch"
class tSQLite
data oConn // Conexion con la BBDD
data lError init .f.
method new(cDatabase) constructor
method Query(cSQL)
method Execute(cSQL)
method GetValue(oRs,cItem)
method end()
end class
method new(cDatabase) class tSQLite
::lError:=.f.
try
::oConn:=TOleAuto():new("ADODB.Connection")
catch
::lError:=.t.
end
try
::oConn:ConnectionString:="DRIVER=SQLite3 ODBC Driver;Database="+alltrim(cDatabase)+";LongNames=0;Timeout=1000;NoTXN=0;SyncPragma=NORMAL;StepAPI=0;"
::oConn:Open()
catch
::lError:=.t.
end
return Self
/*
oRs:MoveNext()
oRs:MoveFirst()
oRs:MoveLast()
oRs:RecordCount()
*/
method Query(cSQL) class tSQLite
local oRs
oRs:=CreateObject("ADODB.recordset")
try
oRs:Open(cSQL,::oConn)
::lError:=.f.
catch
::lError:=.t.
end catch
return oRs
method GetValue(oRs,cItem) class tSQLite
return oRs:fields(cItem):value
method Execute(cSQL) class tSQLite
try
::oConn:Execute(cSQL)
::lError:=.f.
catch
::lError:=.t.
end catch
return
method end() class tSQLite
::oConn:close()
return
// Fin de la clase
// INICIO. Ejemplo
o:oSQLite:=tSQLite("CdiProFin.sqlite")
if !o:oSQLite:lError
// Cargamos los OBJETOS
oRs:=o:oSQLite:Query("SELECT * FROM Objects")
if !o:oSQLite:lError
oRs:movefirst()
o:aObjects:={}
while !oRs:eof()
aadd(o:aObjects,{o:oSQLite:GetValue(oRs,"idObject"),o:oSQLite:GetValue(oRs,"description"),o:oSQLite:GetValue(oRs,"imgBtnObject"),o:oSQLite:GetValue(oRs,"imgObject"),o:oSQLite:GetValue(oRs,"imgObjectSelected")})
oRs:movenext()
end while
end if
oRs:close()
// Si estamos insertando
if o:bInsert
o:aInsertedObj:={}
else
// Cargamos los OBJETOS en la funcion Loadbutton
end if
end if
o:oSQLite:end()
// FIN EJEMPLO
Espero que os sirva, así podemos avanzar todos.
Un Saludo.