> > El 29 de agosto de 2012 21:24, Miguel Barraza <cor...@miguelbarraza.com.ar > > escribió: > >> ** >> buenas, estoy haciendo una aplicación con sockets, cada cliente lo >> atiende en un hilo diferente.oserrarlilos >> 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/ >> >> El error te lo dice, el propio hilo tiene que crear la base de datos que usa, asi que procura que la base de datos la creas en el hilo, este mismo problema lo he tenido hace un rato:
def getElement(indice): databank.execute("select * from compuestos where id==%i"%indice) componente=databank.fetchone() return componente como databank era creado al importar el modulo, en el hilo principal, esa base de datos solo la podra usar sin quejarse el hilo principal, he tenido que añadir la linea de creacción de base de datos en la propia función para que la hubiera creado el propio hilo y no me diera error: def getElement(indice): databank=sqlite3.connect(databank_name).cursor() databank.execute("select * from compuestos where id==%i"%indice) componente=databank.fetchone() return componente
_______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/