SQLite: «образ диска базы данных искажен» в Windows, но хорошо на Android - PullRequest
3 голосов
/ 30 января 2012

У меня есть приложение Android, которое работает на вкладке Samsung Galaxy. Он изменяет базу данных SQLite. Я могу читать и писать базы данных без проблем на планшете. Я копирую базу данных в Windows и пытаюсь прочитать ее с помощью SQLite3 (последняя версия 3.7.10, предварительно скомпилированный двоичный файл, загруженный из http://www.sqlite.org/download.html). Когда я пытаюсь что-то сделать с базой данных (".tables"), используя sqlite3. exe я получаю "Ошибка: образ диска базы данных искажен".

Интересно, что когда я пытаюсь прочитать базу данных, используя SQLiteBrowser 2.0 b1 (http://sourceforge.net/projects/sqlitebrowser/), который ссылается на SQLite 3.6.18, он может читать базу данных без проблем.

Я предполагаю, что база данных действительно повреждена, и Windows SQLite 3.6.18, и любая версия SQLite на Samsung Galaxy более щадящая, чем последняя версия SQLite.

Кто-нибудь сталкивался с этим раньше и дал мне подсказки относительно того, как / почему база данных портится на Android? Или я должен просто использовать версию 3.6.18 на Windows? Меня немного пугает, так как я думаю, что действительно происходит коррупция.

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Это также может произойти, если база данных использует WAL , но вы используете версию Sqlite, предшествующую этой функции.

0 голосов
/ 06 февраля 2012

База данных обрезается при копировании с устройства. SQLite 3.6.18 не достаточно умен, чтобы заметить это, но SQLite 3.7.10 есть. Причина, по которой он обрезается, здесь: Flush MTP-соединение с планшетом Android?

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