Прежде всего, я прочитал документ "https://www.sqlite.org/howtocorrupt.html". Но я не уверен, что понимаю все как есть.
У меня есть библиотека, позволяющая процессу подключаться к БД. Также несколько разных процессов используют его сейчас.
Режим ведения журнала - УДАЛИТЬ (по умолчанию).
Все процессы не должны открывать БД без библиотеки. Таким образом, все обращения осуществляются через sqlite3_open_v2 с флагами ниже. В настоящее время все соединения с базой данных открываются с помощью sqlite3_open_v2 с флагом ниже.
SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE
Но проблема в том, что файлы моей базы данных остаются поврежденными. Предварительных условий нет. Я проверил последовательности, но все еще не знаю, в чем проблема.
У меня нет копии файла БД. Также я никогда не создаю ссылку на файл. Все процессы используют один и тот же файл по одному пути.
Я не менял режимы потоков, поэтому он должен быть сериализован.
Имя файла базы данных никогда не менялось после создания.
Я также не использую USB. Также хранилище устройства достаточно велико, чтобы справиться с ними.
В настоящее время я знаю, что db поврежден в сообщении журнала, когда sqlite3_step возвращает 11, что SQLITE_CORRUPT. Есть ли подозрительные точки, которые я пропустил?