Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?

  Alt 15. Sep 2017, 13:59
Datenbank: SQLite • Version: 3.8.7.4 • Zugriff über: FireDAC
Stromausfall, SqLite-Datenbank kaputt. Sobald man sagt myConnection.Connected := True wirft FireDAC eine ESQLiteNativeException mit
Zitat:
[FireDAC][Phys][SQLite] ERROR: database disk image is malformed
.

Er hat auch Recht, sie scheint nicht in Ordnung zu sein. Jetzt hat FireDAC hierfür ein TFDSQLiteValidate im Angebot. Es bietet Methoden wie Analyze(..) oder CheckOnly() . Hört sich genau danach an was ich brauche.

Leider funktioniert das Ding nicht, denn das TFDSQLiteValidate erstellt sich als erstes seine eigene Sqlite-Connection und sagt darauf dann open() . Und das wirft leider schon die Exception. Ich kann mich im Debugger einklemmen und im Connection-String hierfür z.B. ein ; PRAGMA integrity_check anhängen, dann gibt es keine Exception. Aber das bringt anscheinend den Ablauf durcheinander, das Tool meint dann alles sei in Ordnung was ja völliger Käse ist.


Meine Frage: Benutze ich das Ding falsch oder ist es kaputt?
  Mit Zitat antworten Zitat