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: cor...@miguelbarraza.com.ar
To: python-es@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@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/                                    
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a