AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Fehlermeldung "database table is locked"

Fehlermeldung "database table is locked"

Ein Thema von skoschke · begonnen am 14. Dez 2018 · letzter Beitrag vom 14. Dez 2018
 
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Fehlermeldung "database table is locked"

  Alt 14. Dez 2018, 07:10
Datenbank: SQlite • Version: ? • Zugriff über: TFDQuery / TFDConnection
Hallo,

in letzer Zeit häufen sich die Meldungen von Anwendern einer Android-App über Laufzeitfehler
"database table is locked"...

Wo könnte man ansetzen bzw. was könnte die Ursache sein?
Bei mir ist das leider noch nie aufgetreten, auf 3 Handys sowie einem Tablet nicht!

Meine generelle Vorgehensweise:
- zu Programmstart wird eine Connection erzeugt
- für jeden Datenbankzugriff (nicht für jedes einzelne Datensatz lesen!) wird eine Query erzeugt
- die Connection verbunden
- der Query die Connection zugewiesen
- die Query geöffnet
- in der Tabelle gearbeitet
- die Query geschlossen
- die Query zerstört
- die Connection disconnected
- zu Programmende wird die Connection zerstört

Ist daran etwas auszusetzen / falsch?

Grund die Connection immer wieder zu verbinden bzw. zu trennen ist, dass die Datenbankdatei erst aktualisiert wird, wenn die Connection disconnected wird!
Man kann 1000 neue Datensätze per Query anlegen und posten, die DB-Datei vergrößert sich erst mit dem Disconnect der Connection, irgendwo wird sonst alles erst zwischengespeichert.
Ich brauche aber stets den aktuellen Datenbestand in einer Cloud!

Edit:
die Connection wird wie folgt eingestellt:
Delphi-Quellcode:
      Conn := TFDConnection.Create(Nil);
      Conn.DriverName := 'SQLite';
      Conn.LoginPrompt := false;
      Conn.Params.Database := dbPath;
      Conn.Params.Add('LockingMode=Normal');
      Conn.Params.Values['Encrypt'] := 'aes-128';
      Conn.Params.Password := GetKey;
      Conn.UpdateOptions.LockWait := True;
      Conn.TxOptions.Isolation := xiSnapshot; // was bewirkt das?

Ciao
Stefan

Geändert von skoschke (14. Dez 2018 um 07:26 Uhr)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz