[Python-es] problema con sqlite3 y hilos
xiao xiong mao panda rojo
ailurus.fulgens en hotmail.com
Vie Ago 31 02:08:26 CEST 2012
no se usar sqlite pero se me ocurre una idea
si el problema es k el segundo hilo no puedo usar el sql, crea en la clase del hilo principal métodos para consultar el sqlite y llamas esos métodos desde el hilo
algo como esto: hacer una clase server, una clase cliente y una clase proxy
server espera nuevos clientes y cuando se conecta uno lanza un hilo cliente
proxy se ejecuta en su propio hilo, tiene acceso a la base de datos y los métodos k sean necesarios para consultarla
cliente llama a los métodos de la clase-hilo proxy, creo k así los métodos se ejecutorian en el hilo del proxy... no estoy seguro d como hacer para k el hilo de proxy no se cierre solo, se me ocurre hacer k proxy abra una ventana vacía, incluso la puedes poner en segundo plano, y las llamadas de los clientes serian como eventos de la ventana
no se mucho de hilos pero si el problema es k no se puede consultar sqlite desde otro hilo, pues hacer k un solo hilo haga las consultas
From: correo en miguelbarraza.com.ar
To: python-es en python.org
Date: Thu, 30 Aug 2012 00:24:29 -0300
Subject: [Python-es] problema con sqlite3 y hilos
buenas, estoy haciendo una aplicación con
sockets, cada cliente lo atiende en un hilo diferente.
cada cliente hace consultas a una base
sqlite3.
pero al consultar me tira este error:
self.db.execute(sql)
ProgrammingError: SQLite objects created in a thread can
only be used in that sa
me thread.The object was created in thread id 2480
and this is thread id 3740
al inicio hacía una sola conexión y le pasaba el
puntero de conexión a el objeto que manejaba el cliente.
pensé que ese era el error, así que hice una
conexión por cada cliente dentro de la clase que gestiona cada conexión. y me
tira el mismo error...así que llegué a la conclusión que sqlite no funciona con
hilos...¿es eso cierto?...o de que forma puedo solucionar este
problema?.
lo que hice también fue hacer una conexión dentro
de un objeto y pasar el puntero de ese objeto a todos los clientes, y hacer
consultas a esa clase master para que devuelva los datos de base de datos. y
igualmente tiró el mismo error.
imagino que debe haber forma de trabajar con
sqlite3 y hilos.
así que por eso consulto: alguien se vio en este
problema?, como lo pudo solucionar?.
saludos a todos!.
pd.: no copio parte del código ya que es bastante y
no se donde exactamente podría estar el error...aunque como lo probé de varias
formas y siempre tiró el mismo error creo que es la metodología, no es el
código...tiene que haber alguna forma que no conozco para utilizar sqlite con
hilos o procesos.
atte, Miguel
_______________________________________________
Python-es mailing list
Python-es en python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120830/e8b6047a/attachment.html>
Más información sobre la lista de distribución Python-es