В подобных случаях мне нравится смотреть на примеры кода. Вот несколько хороших:
http://sqlite.phxsoftware.com/forums/p/76/6659.aspx
Справочник по кодам результатов SQLite перечисляет SQLITE_OK как указывающий на успешный результат. Это также первый код ошибки, имеющий код ошибки 0, что делает его каноническим результатом (то есть результатом, который я ожидал бы при успешной операции).
Вы должны поместить точку останова или оператор печати в свой код, чтобы выяснить, действительно ли он возвращает ноль, и проверить свои данные, чтобы убедиться, что вы получаете ожидаемый результат. Если это все подтвердится, я бы изменил ваше условие, чтобы проверить SQLITE_OK.
Детали поведения интерфейса sqlite3_step()
зависят от того, был ли оператор подготовлен с использованием более нового интерфейса "v2" sqlite3_prepare_v2()
и sqlite3_prepare16_v2()
или более старого устаревшего интерфейса sqlite3_prepare()
и sqlite3_prepare16().
В устаревшем интерфейсе возвращаемое значение будет SQLITE_BUSY, SQLITE_DONE, SQLITE_ROW, SQLITE_ERROR
или SQLITE_MISUSE
. С интерфейсом "v2" также могут быть возвращены любые другие коды результатов или расширенные коды результатов.