[pyar] Problema con sqlite3: database is locked

fisa fisadev en gmail.com
Mar Oct 12 18:16:43 ART 2010


2010/10/12 Martin Volpe <martin.volpe en gmail.com>:
>
>
> 2010/10/12 fisa <fisadev en gmail.com>
>>
>> 2010/10/12 Sebastian Alonso <alon.sebastian en gmail.com>:
>> >
>> >
>> > El 12 de octubre de 2010 17:55, Diego Sarmentero
>> > <diego.sarmentero en gmail.com> escribió:
>> >>
>> >> Para SQLite necesitas cerrar el cursor o lo que sea con lo que estés
>> >> trabajando para poder realizar otra operación. Es una limitación de
>> >> SQLite eso.
>> >>
>> >> 2010/10/12 Martin Volpe <martin.volpe en gmail.com>:
>> >> > Hola lista!,
>> >> >
>> >> > Estoy teniendo un problema con una base de datos que estoy tratando
>> >> > de
>> >> > montar. Necesito tres tablas y cada una debe tener dos columnas: un
>> >> > valor y
>> >> > su respectiva fecha de medición.
>> >> >
>> >> > Ahora resulta que tengo un problema al tratar de escribir tres las
>> >> > tres
>> >> > tablas al mismo tiempo. Hice una clase que luego instancio en un
>> >> > objeto
>> >> > para
>> >> > cada tabla, y las escribo de forma secuencial y (obviamente) no anda
>> >> > y
>> >> > me
>> >> > dice algo así:
>> >> >
>> >> > Traceback (most recent call last):
>> >> >   File "log.py", line 106, in <module>
>> >> >     test()
>> >> >   File "log.py", line 100, in test
>> >> >     a.escribira(8 + round(random.random(),1)),
>> >> >   File "log.py", line 25, in escribira
>> >> >     self.conn.commit()
>> >> > sqlite3.OperationalError: database is locked
>> >> >
>> >> >
>> >> > Saludos
>> >> >
>> >> > --
>> >> > Martín Volpe @Argentina
>> >> > Blog: http://volteck.net
>> >> >
>> >> > _______________________________________________
>> >> > pyar mailing list pyar en python.org.ar
>> >> > http://listas.python.org.ar/listinfo/pyar
>> >> >
>> >> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >> >
>> >>
>> >>
>> >>
>> >> --
>> >> Diego Sarmentero
>> >>
>> >> Blog: http://diegosarmentero.com.ar
>> >> Twitter: http://twitter.com/diegosarmentero
>> >> _______________________________________________
>> >> pyar mailing list pyar en python.org.ar
>> >> http://listas.python.org.ar/listinfo/pyar
>> >>
>> >> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > Disculpen pero me olvide de poner el código [0]
>> >
>> > estoy haciendo pruebas y ni siquiera cerrando el cursor y la conexión
>> > puedo
>> > lograr que funcione.
>> >
>> > [0] http://pastebin.com/2aLfQ6UF
>>
>> Por las dudas, si mal no entiendo en ese ejemplo no cerrás la conexión
>> antes de intentar abrir otra.
>>
>>
>> --
>> fisa  -  Juan Pedro Fisanotti
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> Con self.CerrarDataBase() no la cierro?, Que me falta?
>

Sí, con eso la cerrás. Pero el tema es que en otra parte estás
abriendo conexiones sin antes llamar a eso, jeje.

En el __init__ de la clase DataBase llamás al método iniDataBase(),
donde abrís la conexión.
Y en la función test() hacés esto:

a = DataBase('O2')
b = DataBase('ph')
c = DataBase('temp')

Así que ahí estás intentando abrir 3 conexiones, sin cerrar ninguna en el medio.

-- 
fisa  -  Juan Pedro Fisanotti



More information about the pyar mailing list