ZEOS/sqlite3: Änderungen gelangen nicht in die Datenbank

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: ZEOS/sqlite3: Änderungen gelangen nicht in die Datenbank

Beitrag von mse »

Sqlite3 öffnet beim Lesen eines resultset eine Transaktion in Form eines file-locks, welcher erst nach vollständigem Lesen entfernt wird. Falls die IDE wegen gesetztem und zu kleinem PacketRecords in der DataSet Komponente den fetch-Vorgang nicht abschliesst, kann die kompilierte Anwendung nicht schreibend auf die Datenbank zugreifen. Allerdings sollte dann eine "database is locked" Fehlermeldung angezeigt werden.
Eine Abhilfe ist, <TSQLQuery>.PacketRecords auf -1 zu setzen. Die Zeos Entsprechung ist AFAIK "FetchRow".

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: ZEOS/sqlite3: Änderungen gelangen nicht in die Datenbank

Beitrag von hde »

Also ich setze SQLite nur äußerst selten ein, mal für temporäres speichern, oder für ganz kleine Singeluser.Projekte.
Die File-Locks bei SQLite önnen ein Problem sein, aber das ..
ist nun wirklich keine Lösung.
Bei dir ich nebenbei die SQLs geändert und meine Lazarusse (win32, win64, osx) sind anders konfiguriert. Ich strippe hinterher.
hde

Antworten