FreeSource: SQLite/sqlite3Step

sqlite3_step

После того, как SQL выражение было скомпилировано при помощи sqlite3_prepare() или sqlite3_prepare16() эта функция вызывается один или несколько раз для выполнения выражения.

Возвращаемым значением может быть SQLITE_BUSY, SQLITE_DONE, SQLITE_ROW, SQLITE_ERROR, или SQLITE_MISUSE.

SQLITE_BUSY означает, что файл базы данных заблокирован другим процессом или потоком и не существует callback функции обрабатывающей это состояние (см: sqlite3_busy_handler() ). Повторный вызов sqlite3_step() повторит попытку открытия.

SQLITE_DONE означает, что выражение было успешно завершено. sqlite3_step() не должен больше вызываться для этой виртуальной машины (sqlite3_stmt).

Если SQL выражение возвращает какие-то данные (это SELECT запрос), то для каждой строки будет возвращаться код SQLITE_ROW. Для доступа к данным используются функции sqlite3_column_*(). Для получения следующей строки используйте повторный вызов sqlite3_step().

SQLITE_ERROR означает, что произошла ошибка времени выполнения (такая как нарушение ограничения целостности). Вызовы sqlite3_step() на этой виртуальной машине должны быть прекращены. Больше информации об ошибке можно получить при помощи sqlite3_errmsg().

SQLITE_MISUSE означает, что вызов sqlite3_step() был выполнен в неправильном контексте. Например, виртуальная машина была остановлена или предыдущий вызов вернул SQLITE_ERROR или SQLITE_DONE. Этот код вернется также в случае, если один и тот-же файл базы данных используется двумя или более потоками одной программы.

Страницы, ссылающиеся на данную: SQLite/sqlite3BindType