Sqlite connectin

Alles rund um die Programmierung mit Qt
Antworten
geostein8888
Beiträge: 50
Registriert: 16. März 2011 08:25

Sqlite connectin

Beitrag von geostein8888 »

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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Sqlite connectin

Beitrag von Christian81 »

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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: Sqlite connectin

Beitrag von RHBaum »

Die Anwendung greift von verschiedenen thread auf die Datenbank zu
Auf dem Mac habe ich manchmal einen sigsegv
Nur zur sicherheit .....
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

Beitrag von geostein8888 »

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
Antworten