![]() |
Datenbank: SQLite • Version: 3.8.7.4 • Zugriff über: FireDAC
Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
Stromausfall, SqLite-Datenbank kaputt. Sobald man sagt
Delphi-Quellcode:
wirft FireDAC eine
myConnection.Connected := True
Delphi-Quellcode:
mit
ESQLiteNativeException
Zitat:
Er hat auch Recht, sie scheint nicht in Ordnung zu sein. Jetzt hat FireDAC hierfür ein ![]()
Delphi-Quellcode:
oder
Analyze(..)
Delphi-Quellcode:
. Hört sich genau danach an was ich brauche.
CheckOnly()
Leider funktioniert das Ding nicht, denn das
Delphi-Quellcode:
erstellt sich als erstes seine eigene Sqlite-Connection und sagt darauf dann
TFDSQLiteValidate
Delphi-Quellcode:
. Und das wirft leider schon die Exception. Ich kann mich im Debugger einklemmen und im Connection-String hierfür z.B. ein
open()
Delphi-Quellcode:
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.
; PRAGMA integrity_check
Meine Frage: Benutze ich das Ding falsch oder ist es kaputt? |
AW: Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
|
AW: Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
Ich würde gerne vermeiden diese .exe mitzuliefern, immer auf dem passenden Stand zu halten und diese dann von meiner Software aufrufen und ihre Ausgaben zu parsen und weiterzuverarbeiten. Ich bin bislang nicht dahintergekommen wie ich von FireDAC aus diese "Pragma"-Kommandos absetze und ihre Rückgabe auswerten kann.
|
AW: Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
du wärest dumm, solche RepairTools mit deiner Software direkt mit zu liefern. Du hast ja sicher eine Backup-Klausel in deinen AGB wo der Kunde/Anwender dafür verantwortlich seine Daten so oft und gut wie er es für nötig hält regelmäßig zu sichern.
Wenn jetzt was kaputt, dann hat Kunde 3 Möglichkeiten: - er nimmt sein letztes 4h Backup und alles ist gut - er kontaktiert dich als SW-Lieferant und beantragt eine Einzelfallanalyse samt Support Angebot - er kontaktiert XY und beantragt eine Einzelfallanalyse samt Support Angebot Selbst für Kunden mit HighLevel SupportVertrag würde ich nie garantieren, das wir alle DB-Fehler stets zeitnah beheben können. Bei SQlite verwenden wir kein FireDac, sondern UniDac wo es einen nativen PAS SQlite Zugriff ohne die DLL gibt. Im DumpMode konnten wir solange es phyisch vom Datenträger lesbar war, bisher alles wieder in den PC-Speicher holen und plain separat sichern... dann beginn stets die Einzelfall Arbeit: nämlich aktuell&al zu unterscheiden und wieder alles gesamt in eine konsitente Version zu bekommen. Das kann und macht bei uns aber niemals unsee Endkundenanwendung. (Die Grenze bei der DB Wiederherstellung zu "Geht nicht mehr" liegt sehr hoch, es ist sehr oft nur eine Frages des Aufwandes/Willens und des Geldes.) |
AW: Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
Hi zusammen
Zitat von mensch72: Zitat:
Dem scheint aber nach obiger Aussage nicht wirklich so zu sein... Oder irre ich mich da? Gruss Delbor |
AW: Meine SqLite-Datenbank ist korrupt. Wie bekomme ich sie wieder heile?
Ich liefere auch keine dll mit, FireDAC embedded die sqlite-DLL glaube ich in die Anwendung. Irgendwo auf dem DocWiki stand genaueres und wie man das steuern kann, ich habe es nicht mehr im Kopf.
Zitat:
Ich bin persönlich auch der Überzeugung dass man sein MTBF nicht unendlich hoch bekommt und es sich durchaus lohnt zu schauen wieviel man am MTBR drehen kann - Sprich: Automatische Wiederherstellung, oder zumindest automatische Wiederherstellung der letzten X Prozent. Besser als nichts. Insbesondere wenn der Kunde auf der anderen Seite der Welt sitzt und der Telefon-Support hier grade schläft. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:29 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