Искаженная база данных SQLite без исключения - PullRequest
1 голос
/ 22 января 2012

У меня есть база данных SQLite, в которую вставляются записи для моего приложения для Android.

Я вставляю ответы на экранные опросы, по одному ответу на каждую строку в моей таблице.

Мои опросы содержат 20 вопросов, и они правильно вставляют ответы в базу данных для первого опроса, но затем, когда я вставляю ответы для второго опроса (программно те же самые вопросы, только что повторенные), он искажает базу данных, но никогда не выбрасывает исключение или что-либо. Я запускаю проверку целостности до и после, и она всегда возвращает true.

Необычная вещь заключается в том, что она искажается, только когда я пытаюсь посмотреть на стол на моем компьютере. Я попытался использовать средство просмотра баз данных SQLite, средство TKSQLite, а затем открыть БД из прилагаемого файла sqlite3.exe, и все они, похоже, показывают БД как искаженную. Хотя инструмент TKSQLite уведомляет меня о том, что таблица искажена, я могу получить данные в других таблицах. Браузер баз данных SQLite просто не отображает данные в таблице, а sqlite3.exe не открывает никаких таблиц.

Очень необычная вещь, если я запрашиваю таблицу в приложении и печатаю строки курсора для входа в систему cat, или использую данные в приложении, все данные есть.

Кто-нибудь видел только частичные пороки развития без исключения? Я хотел бы, чтобы моя база данных была нетронутой ... но если мои данные есть, могу ли я надеяться, что они больше не будут искажены?

Я работал с базами данных SQLite для нескольких проектов, в настоящее время делающих аналогичные вещи, и это первый раз, когда я вижу только частичную деформацию.

Если это поможет, я использую программирование планшета Acer a501 на Honeycomb 3.2

Кроме того, я обращаюсь к базе данных, используя статический синглтон, чтобы избежать слишком частого открытия и закрытия базы данных для каждой вставки и изначально вставляется с помощью команд SQL с использованием execSQL(), но также пытался использовать метод SQLiteDatabase insert() безрезультатно.

1 Ответ

0 голосов
/ 24 января 2012

Мы выяснили, почему база данных работает неправильно, но не на устройстве.Планшет, который мы используем, считается Windows Media устройством в соответствии с Windows, и возникла некоторая проблема, когда мы скопировали его с устройства на компьютер.Использование флэш-накопителя для копирования с устройства и затем с флэш-накопителя в Windows решило проблему.

...