EasyDev con SQLite

Discute el uso de extensiones desarrolladas por terceros dentro de Apache OpenOffice

EasyDev con SQLite

Notapor mauricio » Mié May 25, 2016 7:14 am

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   Expandir vistaContraer vista
# 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   Expandir vistaContraer vista
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
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5757
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.

Re: EasyDev con SQLite

Notapor mauricio » Mié Jun 08, 2016 6:18 am

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   Expandir vistaContraer vista
       '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
AOO 4.1 | LibO 6.1.5 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 5757
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: México, D.F.


Volver a Extensiones

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado