SQLite - database is locked Unable to fetch row
Verfasst: 25. August 2015 17:21
Hallo,
ich habe eine Anwendung geschrieben, die Fehlermeldungen annimmt, in einer Datenbank speichert und weiterverarbeitet (emails / SMS versenden etc.) Zur Übersicht über die bisher aufgetretenen Fehler (und deren Verarbeitungsstand) zeige ich die Tabellen in 2 QSqlTableViews an. Als Datenbank verwende ich SQLite.
Nun bekomme ich des öfteren die oben genannte Fehlermeldung beim Speichern eines neuen Datensatzes (mittels SQL-Query "INSERT INTO ....". Nach dem was ich bisher im Netz gefunden habe, kommt der Fehler, wenn die QSqlTableViews gerade zu dem Zeitpunkt, an dem der neue Datensatz gespeichert werden soll, ihre Query zum Update durchführen.
Gibt es eine Möglichkeit, diese Konflikte zu vermeiden - oder zumindest sicherzustellen, das das Speichern Priorität hat? Oder ist die einzige Möglichkeit, zu Versuchen die Abfrage nur noch auf Anfrage zuzulassen und diese nur noch z.B. 1 mal pro Minute durchzuführen um Konflikte zu minimieren? Oder liegt das Problem möglicherweise ganz woanders?
Für alle Antworten schon mal im voraus Danke.
Gruss
Tilman (Räger)
ich habe eine Anwendung geschrieben, die Fehlermeldungen annimmt, in einer Datenbank speichert und weiterverarbeitet (emails / SMS versenden etc.) Zur Übersicht über die bisher aufgetretenen Fehler (und deren Verarbeitungsstand) zeige ich die Tabellen in 2 QSqlTableViews an. Als Datenbank verwende ich SQLite.
Nun bekomme ich des öfteren die oben genannte Fehlermeldung beim Speichern eines neuen Datensatzes (mittels SQL-Query "INSERT INTO ....". Nach dem was ich bisher im Netz gefunden habe, kommt der Fehler, wenn die QSqlTableViews gerade zu dem Zeitpunkt, an dem der neue Datensatz gespeichert werden soll, ihre Query zum Update durchführen.
Gibt es eine Möglichkeit, diese Konflikte zu vermeiden - oder zumindest sicherzustellen, das das Speichern Priorität hat? Oder ist die einzige Möglichkeit, zu Versuchen die Abfrage nur noch auf Anfrage zuzulassen und diese nur noch z.B. 1 mal pro Minute durchzuführen um Konflikte zu minimieren? Oder liegt das Problem möglicherweise ganz woanders?
Für alle Antworten schon mal im voraus Danke.
Gruss
Tilman (Räger)