First of, thank you very much Christian for replying so precisely to
my message.
Things to check:
- Multiple processes accessing the database file. SQLite will arbitrate
access using a well defined locking protocol. If a process does not
respect this protocol, or locking is defective (NFS perhaps) then
corruption can result from two processes updating the file.
- Check for crashes and/or removal of the rollback journal.
- Check that your program is not corrupting memory. This would more
likely
manifest itself in a SIGSEGV, but you're best checking.
In fact, I do not think the bug comes from these things as I can also
reproduce the bug without using my application but the command-line
program provided on the SQLite official website (see below "How to
reproduce the corruption").
Things to tell us to offer better advice:
SQLite version: 3.3.5
OS: Windows
Filesystem: NTFS
Language: VB.net
Wrapper: http://sqlite.phxsoftware.com/
- How to reproduce the corruption.
If I use the command-line program, and I only do a select * from table,
I have always the corruption, even without using my application at all.
I can provide you with the DB if it can help.
Thank you again for your support.