0
Ich möchte ein Programm mit mehreren Threads machen. In jedem Thread sollte eine Datenbank INSERT sein.Python Multithreading sqlite3 Einsätze
EDIT
Aber ich habe jetzt den gleichen Fehler nach einer Zeit
Mein Code:
import threading, sqlite3
class myThread(threading.Thread):
def __init__(self, pn, icm):
threading.Thread.__init__(self)
self.pn = pn
self.icm = icm
def run(self):
con = sqlite3.connect("DB.db", check_same_thread=False)
cursor = con.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS test(pn VARCHAR(100), icm VARCHAR(100))")
cursor.execute("INSERT INTO test VALUES('"+self.pn+"', '"+self.icm+"')")
con.commit()
con.close()
for i in range(0, 300):
myThread("ABCDEFG", "1234546").start()
ich den Fehler:
sqlite3.OperationalError: database is locked
Danke, Jay
Was ist schief gelaufen? – tdelaney
@tdelaney Bearbeitet – Jay
Wie die Fehlermeldung sagt. Sie schließen die Datenbank mit 'con.close()'. Aus diesem Grund kann die Abfrage in Ihrer Datenbank nicht geschrieben/ausgeführt werden. Sie müssen die Verbindung wiederherstellen, normalerweise mit 'sqlite3.connect()'. – arnold