小巧。快速。可靠。
三选二。

SQLite C 接口

重置准备好的语句对象

int sqlite3_reset(sqlite3_stmt *pStmt);

sqlite3_reset() 函数用于将一个 准备好的语句 对象重置回其初始状态,准备重新执行。任何使用 sqlite3_bind_*() API 绑定值的 SQL 语句变量将保留其值。使用 sqlite3_clear_bindings() 重置绑定。

sqlite3_reset(S) 接口将 准备好的语句 S 重置回其程序的开头。

sqlite3_reset(S) 的返回值指示准备好的语句 S 的先前评估是否成功完成。如果 sqlite3_step(S) 从未在 S 上调用过,或者如果 sqlite3_step(S) 自上次调用 sqlite3_reset(S) 后未调用过,则 sqlite3_reset(S) 将返回 SQLITE_OK

如果针对 准备好的语句 S 的最近一次 sqlite3_step(S) 调用指示发生错误,则 sqlite3_reset(S) 返回相应的 错误代码。如果先前没有错误,但重置准备好的语句的过程导致了新的错误,则 sqlite3_reset(S) 接口也可能会返回 错误代码。例如,如果带有 RETURNING 子句的 INSERT 语句只执行了一次,则该 sqlite3_step(S) 的调用可能会返回 SQLITE_ROW,但整个语句仍可能失败,并且 sqlite3_reset(S) 调用可能会返回 SQLITE_BUSY,因为锁定约束阻止数据库更改提交。因此,即使先前的 sqlite3_step(S) 调用没有指示问题,应用程序也必须检查 sqlite3_reset(S) 的返回值。

sqlite3_reset(S) 接口不会更改 准备好的语句 S 上任何 绑定 的值。

另请参阅 对象常量函数 列表。