SQLite «ошибка образа диска базы данных» во встроенном приложении - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь использовать SQLite во встроенной системе, созданной с использованием MPC5748G (ядро PowerP C), со следующим поведением. SQLite vfs создается поверх ELM Chan FatFS через USB MSD.

Функция открытия SQLite возвращает SQLITE_OK, и первые операторы вставки 4011 работают без каких-либо проблем.

Однако после вставки 4011 любые команды завершатся неудачно с SQLITE_CORRUPTED и err_msg = "database disk image is malformed" .

Я прочитал информацию из https://www.sqlite.org/lockingv3.html#how_to_corrupt и попытался использовать f_syn c до чтения и после операции записи, но безуспешно.

Когда дБ загружен на P C и используется pragma integrity_check, он вернет эту ошибку: в базе данных main На странице дерева 68 ячейка 0: неверный номер страницы 27656608 Страница 100 никогда не используется

Любые подсказки о том, как найти причину root этого проблема?

РЕДАКТИРОВАТЬ Нет другой задачи, которая могла бы получить доступ к файлу БД или повредить его.

ОБНОВЛЕНИЕ: Я смоделировал то же приложение в Windows среда, с той же (адаптированной VFS) и есть несколько различий в двоичном БД. На рисунках ниже показаны различия.

enter image description here enter image description here enter image description here

Что может вызвать это ?

Спасибо,
Редких

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...