Hallo Zusammen.
Da mir mein English immer wieder Schwierigkeiten macht, und allen Rechergen zum trotz ich nicht ganz zurecht komme damit, brauche ich hier Hilfe von SQLite Langzeiterfahrenen Programmierern.
Wenn ich die SQLIte Datenbank im JournalMode "WAL" öffne, dann werden ja die entsprechenden Dateien (wal/shn) prarallel zur DB angelegt, die das ausgelagerte Datenhandling abseits der Echtdaten behandelt. Soweit so gut.
Aber folgende Schwierigkeiten habe ich damit. Und bitte Antwortet mir nicht mit links zu den SQLite Seiten wo WAL beschrieben wird. Denn folgende Problematik konnte ich damit nicht lösen. Nicht zuletzt wegen meiner schwachen Englishkenntnisse.
1) Ich öffne die DB im WAL-Mode und setze SQL Kommandos ab, z.B. INSERTS. Zuvor aber "BEGIN TRANSACTION;" und nach erfolgreichem Execute noch ein "COMMIT;".
PS: Ich betone: Ich schliesse die DB Connection definitiv schon vorher. Die Kommandos sind all in Ordnung. Keine Ausnahmefehler. Und nach geschlossener Anwendung sind meine Datensätze ja auch alle in der DB sichtbar!
Ja und wenn ich "PERSIST" anstelle von "WAL" verwende, ist gleich alles in der richtigen DB. Was ja auch richtig ist. Aber irgendwas habe ich beim WAL Mode nicht so richtig im Griff!
Da mir mein English immer wieder Schwierigkeiten macht, und allen Rechergen zum trotz ich nicht ganz zurecht komme damit, brauche ich hier Hilfe von SQLite Langzeiterfahrenen Programmierern.
Wenn ich die SQLIte Datenbank im JournalMode "WAL" öffne, dann werden ja die entsprechenden Dateien (wal/shn) prarallel zur DB angelegt, die das ausgelagerte Datenhandling abseits der Echtdaten behandelt. Soweit so gut.
Aber folgende Schwierigkeiten habe ich damit. Und bitte Antwortet mir nicht mit links zu den SQLite Seiten wo WAL beschrieben wird. Denn folgende Problematik konnte ich damit nicht lösen. Nicht zuletzt wegen meiner schwachen Englishkenntnisse.
1) Ich öffne die DB im WAL-Mode und setze SQL Kommandos ab, z.B. INSERTS. Zuvor aber "BEGIN TRANSACTION;" und nach erfolgreichem Execute noch ein "COMMIT;".
- Leider werden die Datensätze aber trotz COMMIT; oder auch trotz END TRANSACTION; - nicht in die Database übertragen! - Warum?
- Wenn ich die Connection mit .close() schliesse. Auch noch nicht.
- Erst wenn ich mein VB.Net Anwendung als ganzes Schliesse, wird das WAL File in die Database übertragen und entfernt. Warum?
PS: Ich betone: Ich schliesse die DB Connection definitiv schon vorher. Die Kommandos sind all in Ordnung. Keine Ausnahmefehler. Und nach geschlossener Anwendung sind meine Datensätze ja auch alle in der DB sichtbar!
Ja und wenn ich "PERSIST" anstelle von "WAL" verwende, ist gleich alles in der richtigen DB. Was ja auch richtig ist. Aber irgendwas habe ich beim WAL Mode nicht so richtig im Griff!