Ich habe ein Problem mit einer neuen Anwendung auf dem iPhone SDK mit SQLite als DB-Backend.sqlite Datenbank-Disk-Image auf iPhone SDK fehlerhaft
Gelegentlich beendet meine App das Laden von Daten in meine UITableViews und nach dem Herunterladen der Gerätedatenbank über den Organizer kann ich über die Befehlszeile auf die SQLite DB zugreifen. Ich kann bestimmte Tabellen in Ordnung aber nicht andere abfragen, ohne einen "SQL-Fehler: Datenbank-Disk-Image ist fehlerhaft" -Fehler. Hier finden Sie eine SQLite-Sitzung unter:
SQLite version 3.6.17
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from user;
1|[email protected]|cpjolicoeur||4d055e38bb1d3758|image/gif|cartoonme_avatar.gif||Craig|Jolicoeur|1|1
sqlite> select * from item;
SQL error: database disk image is malformed
sqlite>
In diesem Beispiel meine Benutzertabelle funktioniert gut, aber meine Artikel Tabelle ist falsch formatiert, das entspricht dem, was ich in meiner app sehe, wo die Elemente Last nicht. Die App stürzt nicht ab, die Daten werden aufgrund dieses fehlerhaften Fehlers nicht geladen.
Irgendwelche Ideen, warum das passiert? Mein einziger Gedanke ist, dass die DB möglicherweise beschädigt wird, weil ich über einen Hintergrund-Thread innerhalb der App in die SQLite-DB schreibe. Ich lade Daten von einem Webserver über eine NSOperationQueue in einem Hintergrundthread herunter und aktualisiere die SQLite DB mit den heruntergeladenen Daten. Würde das Schreiben in die Datenbank in einem Hintergrundthread (während möglicherweise aus dem Hauptthread gelesen wird) die DB beschädigen, oder ist es etwas anderes?
die wal und shm Dateien löschen tat total es für mich! Vielen Dank –