[pyar] Problema con sqlite3: database is locked

Ivan Alejandro ivanalejandro0 en gmail.com
Mar Oct 12 18:16:04 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
>> >> >
>> >>
>> >>
>> >> --
>> >> Diego Sarmentero
>> >>
>> >> Blog: http://diegosarmentero.com.ar
>> >> Twitter: http://twitter.com/diegosarmentero
>> >
>> > 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
>
> Con self.CerrarDataBase() no la cierro?, Que me falta?
>
> --
> Martín Volpe @Argentina
> Blog: http://volteck.net
>

A mi me parece que el problema es que abris 2 veces la base de datos,
una vez en 'initDataBase' y otra vez en 'esta', luego la cerras una
vez...
No se si tendra que ver, pero quizas por ahi venga la mano.

Si no es eso tal vez te convenga manejar un solo objeto y no crear 3
DataBase ya que la podrias usar como una clase que te ayuda a
conectarte a la base de datos y no como un objeto en particular que se
guarda en sqlite.

Espero que sirva de algo el tip.


Saludos


-- 
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments



More information about the pyar mailing list