Hi Jim.

Thanks for your reply.

Unfortunately, it looks like the database is beyond repair. I can pull some of 
the data back via the rowid but it is only the configuration data for the 
document and not the user's data.

According to the PRAGMA command documentation the database might become 
corrupted if the o/s crashes or the computer loses power before the data has 
been written to the disk surface. From the information we have from the 
customer they continued to use the computer for some time after performing the 
final save. This indicates that there could be other situations that also cause 
this problem.

Anyway, in the next build of the software we have removed the PRAGMA command 
and have also changed the save code so that it keeps the previous couple of 
versions in a history sub-folder. If customers still get problems at least they 
should now be able to go back to a previous version.


Regards,
Kev.

________________________________________
From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] On 
Behalf Of Jim Wilcoxson [pri...@gmail.com]
Sent: 15 May 2009 18:08
To: General Discussion of SQLite Database
Subject: Re: [sqlite] Corrupt Database Problems

I think you have answered your own question.  If you use
synchronous=off, you are saying "I don't care much about this
database."  When you "save" documents, you are merely putting them in
a computer's cache (memory) and then confirming to the user that they
are on the hard drive, when they aren't necessarily there.

So, user clicks Save, program says it saved it, user turns off
computer, database is corrupt.  Don't know why this would happen all
of a sudden, unless maybe they upgraded their OS and it has decided to
cache volatile data longer to increase performance at the expense of
data integrity.

I hope you're able to rescue your data.  Someone else mentioned on
this list a while back that they could recover their data by doing
retrieval based on rowid: do a select * where rowid=1, then 2, then 3,
etc. until you get a failure.  Once you get a failure, the rest is
lost.

Good luck,
Jim

On 5/15/09, Kevin Gale <kev...@transeomedia.com> wrote:
...
> 4. synchronous is OFF (we have stopped setting this in the new build of our
> app).

--
Software first.  Software lasts!
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to