Page 1 of 1

Sqlitening-interesante

Posted: Wed Jan 27, 2016 5:43 pm
by juan.castillo
Buenos días Grupo, pues nada que "googleando" llegue a este sitio http://www.sqlitening.com , comentan que es una implementación de Sqlite como cliente-servidor. Esta hecho al parecer con PowerBasic y el acceso del cliente es con la ayuda de unas DLL que pueden usarse desde otros lenguajes, asi que suena muy interesante... compartido.

Codigo de ejemplo extraido de la ayuda:

'IP could be a local or global string variable holding the IP adress of the server,
'i. e. "192.168.1.42" in a LAN, "83.122.201.123" or "myserver.no-ip.org"
'for an Internet based connection (WAN),

FUNCTION DBConnect()as long

Local lErr as String
slConnect IP, 0, "E0"
'Error handling
lErr = slGetError
IF VAL(lErr) <> 0 THEN
MSGBOX lErr, 0, "Connection Error"
END IF

END FUNCTION

Saludos Cordiales.

PD Una disculpa si ya fue comentado.

Re: Sqlitening-interesante

Posted: Wed Jan 27, 2016 9:34 pm
by juan.castillo
Haciendo pruebas con las DLL, el siguiente código funciona sin marcar error pero genera la base de datos con el nombre con la primera letra, es decir... en lugar de generar "sample.db3" solo genera "s"; si se accesa el archivo "s" lo abre sin problema la opción de "Explorar SQLite..." del menú de Xailer.


Method Prueba( oSender ) Class TForm1

Local cDb := "sample.db3"
Local xValue
//
xValue := hb_dynCall( { "slOpen", "SQLitening.Dll", HB_DYN_CALLCONV_STDCALL } , cDb, 'C')

RETURN Nil

Re: Sqlitening-interesante

Posted: Thu Jan 28, 2016 12:14 am
by juan.castillo
De esta manera si crea la base de datos pero no se logra hacer mas operaciones, como si no terminara de abrirla, esta herramienta tiene 3 librerias, sqlitening.dll para basic API, sqliteningS.dll para special API y sqliteningU.dll para universal, esta ultima fue con la que funciono, obvio algo falta pero no doy con el problema. El include de powerbasic para su acceso es lo siguiente:

'==============================<[ Open ]>==============================
Declare Function sluOpen lib "SQLiteningU.Dll" alias "sluOpen" ( _
byval FileName as Long, _
byval ModChars as Long) as Long
' FileName is a pointer to a null-terminated string. If not needed you
' may pass a zero.
' ModChars is a pointer to a null-terminated string. If not needed you
' may pass a zero.

La prueba en Xailer es la siguiente:

METHOD BtnBmp5Click( oSender ) CLASS TForm1

Local cDb := Application:cDirectory + "maspruebas.db3"
Local xVal
//
xVal := DllCall( "SQLiteningU.Dll", DLL_OSAPI, "sluOpen", cDb, "C" )
Message xVal

xVal := DllCall( "SQLitening.Dll", DLL_OSAPI, "sluExe", "Create Table If Not Exists JuanCarlos (F1, F2, F3, F4)" )
Message xVal

RETURN Nil

PD Entiendo que la recomendación es usar MySql o MariaDb , pero si se puede ampliar las opciones que tenemos pues con la imaginación se abren mas posibilidades :-)

Re: Sqlitening-interesante

Posted: Thu Jan 28, 2016 10:31 am
by ignacio
Buenos días,

En Xailer somos partidarios de utilizar SQLite SOLO para entornos locales de acceso único y de forma excepcional poder compartir la BD con otros usuarios y ser posible en modo lectura. En el resto de los casos recomendamos MariaDB (versión gratuita y totalmente compatible de MYSQL) sin dudarlo un instante. En Xailer hemos hecho un gran esfuerzo para que incluso sea posible hacer aplicaciones que pueden funcionar indistintamente en los dos sistemas a la vez, para ello se han incorporado en SQLite unas cuantas funciones que si existen en MariaDB.

Saludos

Re: Sqlitening-interesante

Posted: Thu Jan 28, 2016 6:16 pm
by juan.castillo
Gracias Ignacio por la observación, entiendo muy bien su parecer. Si me da el tiempo seguiré investigando y si a alguien le interesa el tema con gusto compartiré si logro algo. Saludos Cordiales. :-) y aprovecho para Felicitar a Todo el Equipo de Xailer, tengo un buen tiempo usándolo y esta EXCELENTE y en mejora constante.