Hallo,
Ich habe eine Anwendung, welche dauernd auf Dr Datenbank kleine queries ausführt. Momentan öffne und schließe ich die Verbindung or bzw nach dem query. Ist dies die beste Vorgehensweise hier, oder sollte ich die Verbindung bei ap Start öffnen und nur wen sie geschlossen ist erneut öffnen d.h. nach dem query geöffnet lasen. Des weiteren, ist es erforderlich nach einem query.execute das query mit query.finished zu schließen?
Auf dem Mac habe ich manchmal einen sigsegv und hege den Verdacht dass es ggf. Etwas damit zu tun hat, dass die Verbindung?
Die Anwendung greift von verschiedenen thread auf die Datenbank zu, die db klasse selbst existiert nur einmal (eine instanz)
Tia
Georg
Sqlite connectin
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Re: Sqlite connectin
Die DB-Connection immer wieder zu schließen ist m.E. unnötig. Einmal öffnen und gut ist.
QSqlQuery::finish() ist normalerweise nie nötig.
QSqlQuery::finish() ist normalerweise nie nötig.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
Re: Sqlite connectin
Nur zur sicherheit .....Die Anwendung greift von verschiedenen thread auf die Datenbank zu
Auf dem Mac habe ich manchmal einen sigsegv
Die lib die du verwendest / compilierst ist nicht als singlethreaded übersetzt ?
und sqlite3_config schaltet das ding nicht in den SingleThreadModus ?
Im singlethreadmodus werden einfach nur alle sperren deaktiviert. Wenn da multithreaded drauf zugreifst, kommt das berühmte "undefinierte" Verhalten.
Es kann lange Zeit gut gehen, muss aber nicht. aka Fehler (race conditions) kommen immer sporadisch.
Wenn allerdings nicht an den EInstellungen rumfummelst, sollte sqlite im serial modus laufen, aka queries aus unterschiedlichen threads werden gequeued und stellen keine Bedrohung dar ^^
Ciao ...
-
geostein8888
- Beiträge: 50
- Registriert: 16. März 2011 08:25
Re: Sqlite connectin
Hallo,
ich habe nichts an en libs geändert, ich benutze Qt out of the box vom Qt download server als fertig compiliertes paket unter windows und mac (mac ports).
Bei Windows habe ich keine Probleme, nur auf dem Mac da bekomme ich sporadisch einen Crash an verschiedenen Stellen bei welchen auf die db zugegriffen wird
Georg
ich habe nichts an en libs geändert, ich benutze Qt out of the box vom Qt download server als fertig compiliertes paket unter windows und mac (mac ports).
Bei Windows habe ich keine Probleme, nur auf dem Mac da bekomme ich sporadisch einen Crash an verschiedenen Stellen bei welchen auf die db zugegriffen wird
Georg