buenas, también ya lo intenté.
creé una clase master que era la única que tenga la conexión a bd.
pero cuando el hilo llama a esta clase, me tira el mismo error, ya que detecta 
que está consultando desde un hilo que no es el master.

pero bueno...seguiré intentando haber si ahi otra forma de hacer lo mismo sin 
hilos. pero que funcione con el mismo rendimiento.

un saludo.

atte, Miguel

Subject: Re: [Python-es] problema con sqlite3 y hilos


  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/
_______________________________________________
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