Page 1 of 1

SQLite para xHarbour

PostPosted: Mon May 24, 2010 4:21 pm
by softruz
Muy buenas, ¿alguien tendría un ejemplo para desarrollar aplicacione con SQLite para xHarbour?

Un Saludo.

Re: SQLite para xHarbour

PostPosted: Mon May 31, 2010 10:38 am
by softruz
¿alguien tiene algún ejemplo sobre el SQLite ?

un saludo.

Re: SQLite para xHarbour

PostPosted: Fri Jun 04, 2010 7:14 am
by softruz
Muy buenas FORO, quien quiera información de como acceder a SQLite en xHarbour que lo postee, tengo realizada una pequeña clase.

Un Saludo.

Re: SQLite para xHarbour

PostPosted: Fri Jun 04, 2010 8:52 am
by Antonio Linares
Juan,

Si la publicas aqui te lo agradeceríamos muchos, para que así sea útil a otros en el futuro, gracias :-)

Re: SQLite para xHarbour

PostPosted: Tue Jun 08, 2010 11:07 am
by llambion
Yo estoy muy interesado en poder acceder a SQlite desde xharbour y me interesaria mucho tu clase

Re: SQLite para xHarbour

PostPosted: Fri Jun 11, 2010 7:23 am
by softruz
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.

Re: SQLite para xHarbour

PostPosted: Fri Jun 11, 2010 9:20 am
by Antonio Linares
Juan,

gracias! :-)

Re: SQLite para xHarbour

PostPosted: Mon Jun 14, 2010 7:39 am
by softruz
Para eso estamos Antonio.

Un Saludo.