EasyDev con SQLite

Discute el uso de extensiones desarrolladas por terceros dentro de Apache OpenOffice
Responder
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

EasyDev con SQLite

Mensaje 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
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
Mensajes: 6092
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX
Contactar:

Re: EasyDev con SQLite

Mensaje 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())    
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Responder