Сброс объекта подготовленного запроса
int sqlite3_reset(sqlite3_stmt *pStmt);
Функция sqlite3_reset() используется для сброса объекта подготовленного запроса до начального состояния, готового к повторному выполнению. Любые переменные SQL-запроса, значения которых были связаны с помощью API sqlite3_bind_*(), сохраняют свои значения. Для сброса связей используйте sqlite3_clear_bindings().
Интерфейс sqlite3_reset(S) сбрасывает подготовленный запрос S до начала его программы.
Код возврата sqlite3_reset(S) указывает, завершилось ли предыдущее выполнение подготовленного запроса S успешно. Если для S функция sqlite3_step(S) никогда не вызывалась или не вызывалась с момента предыдущего вызова sqlite3_reset(S), то sqlite3_reset(S) вернёт SQLITE_OK.
Если последний вызов sqlite3_step(S) для подготовленного запроса S указал на ошибку, то sqlite3_reset(S) возвращает соответствующий код ошибки. Интерфейс sqlite3_reset(S) также может вернуть код ошибки, если ранее не было ошибок, но процесс сброса подготовленного запроса вызвал новую ошибку. Например, если оператор INSERT с клаузой RETURNING выполняется только один раз, этот единственный вызов sqlite3_step(S) может вернуть SQLITE_ROW, но весь оператор всё равно может завершиться неудачно, а вызов sqlite3_reset(S) может вернуть SQLITE_BUSY, если ограничения блокировки препятствуют подтверждению изменения в базе данных. Поэтому важно, чтобы приложения проверяли код возврата sqlite3_reset(S), даже если предыдущий вызов sqlite3_step(S) не указывал на проблему.
Интерфейс sqlite3_reset(S) не изменяет значения каких-либо связей подготовленного запроса S.
См. также списки Объектов, Констант и Функций.
SQLite is in the Public Domain.
https://sqlite.org/c3ref/reset.html