Página 1 de 1

EasyDev con SQLite

Publicado: Mié May 25, 2016 7:14 am
por mauricio
Por una razón que no logro entender... los desarrolladores de LibreOffice, retiran la librería para SQLite del core de Python que incluye LibO, esta librería es estandar dentro del core de Python, así que no hay razón para quitarla... en fin...

Con AOOo, LibO puedes tener conexión a SQLite, incluso con ODBC, si esta correctamente configurado, EasyDev ya lo soporta: http://easydev.readthedocs.io/en/latest ... .html#odbc

Ahora he integrado soporte directo con el excelente driver APSW: https://rogerbinns.github.io/apsw/index.html

En Linux y MAC deberían instalar el driver:

Código: Seleccionar todo

# Arch y derivados
pacman -S python-apws

# Debian y derivados
apt-get install python-apws

# Fedora y derivados
yum install python-apws
En Windows, EasyDev ya incorpora el driver

La rama es totalmente de pruebas por ahora: https://github.com/UniversoLibreMexicoA ... lite/files

Después de instalar, pueden probar:

Código: Seleccionar todo

Sub Main
	'Create service
	util = createUnoService("org.universolibre.EasyDev")

	path = "/home/USER/test/test.sqlite"
	
	sql = "create table if not exists foo(x,y,z)"
	util.sqliteExecute(path, sql)

	sql = "insert into foo values(1,3,5)"
	util.sqliteExecute(path, sql)
	sql = "insert into foo values(2,4,6)"
	util.sqliteExecute(path, sql)
	sql = "insert into foo values('Uno','Dos','Tres')"
	util.sqliteExecute(path, sql)
	
	sql = "select * from foo"
	result = util.sqliteSelect(path, sql)
	util.msgbox(result)
	
	sql = "delete from foo"
	util.sqliteExecute(path, sql)	
	
End Sub
APSW tiene muchas, muchas cosas muy interesantes para manejar SQLite... con calma las podemos implementar.

Ojala puedan darle una probada... a esta rama.

Un abrazo

Re: EasyDev con SQLite

Publicado: Mié Jun 08, 2016 6:18 am
por mauricio
He agregado soporte para pasar los valores como argumento, de este modo el driver se encarga de parsear correctamente los valores:

Código: Seleccionar todo

       'Create service
       util = createUnoService("org.universolibre.EasyDev")

       path = "/home/mau/test/test.sqlite"
       
       sql = "create table if not exists foo(x,y,z)"
       util.sqliteExecute(path, sql, Array())

       sql = "insert into foo values(?,?,?)"
       util.sqliteExecute(path, sql, Array(1,2,3))
       sql = "insert into foo values(?,?,?)"
       util.sqliteExecute(path, sql, Array(2,4,6))
       sql = "insert into foo values(?,?,?)"
       util.sqliteExecute(path, sql, Array("Uno","Dos","Tres"))
       
       sql = "select * from foo"
       result = util.sqliteSelect(path, sql)
       util.msgbox(result)
       
       sql = "delete from foo"
       util.sqliteExecute(path, sql, Array())   
       
        datos = Array( _
            Array(1, 2, 3), _  
            Array(2, 4, 6), _         
            Array("Uno","Dos","Tres"), _         
        )
        sql = "insert into foo values(?,?,?)"
        util.sqliteExecute(path, sql, datos)
           
        sql = "select * from foo"
        result = util.sqliteSelect(path, sql)
        util.msgbox(result)
           
        sql = "delete from foo"
        util.sqliteExecute(path, sql, Array())