2012-02-28 3 views
3

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

wrong # of entries in index sqlite_autoindex_Settings_1 

В моем коде я попробовать /, наконец, положение, в котором я всегда стараюсь всегда sqlite3_finalize моих заявлений.

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

Вопрос: Должен ли я завершать свои высказывания, если база данных сообщается о повреждении?

+4

Если у вас поврежденный db, независимо от того, завершаете ли вы конкретное утверждение, это меньше всего беспокоит вас. что-то пошло очень, очень неправильно, и вам нужно выяснить, что. –

ответ

0

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

Интерфейс sqlite3_reset (S) сбрасывает подготовленный оператор S назад в начало его программы.

до sqlite3_finalize или после каждого sqlite3_step использовать sqlite3_reset.

надеюсь, что решает вашу проблему ... !!!

1

до sqlite3_finalize или после каждого sqlite3_step использовать sqlite3_reset.

Интерфейс sqlite3_reset (S) сбрасывает подготовленный оператор S обратно к началу его программы.

Смежные вопросы