Destroy A Prepared Statement Object
int sqlite3_finalize(sqlite3_stmt *pStmt);
The sqlite3_finalize() function is called to delete aprepared statement. If the most recent evaluation of the statement encountered no errors or if the statement is never been evaluated,then sqlite3_finalize() returns sqlITE_OK. If the most recent evaluation of statement S Failed,then sqlite3_finalize(S) returns the appropriateerror codeorextended error code.
The sqlite3_finalize(S) routine can be called at any point during the life cycle ofprepared statementS: before statement S is ever evaluated,after one or more calls tosqlite3_reset(),or after any call tosqlite3_step()regardless of whether or not the statement has completed execution.
Invoking sqlite3_finalize() on a NULL pointer is a harmless no-op.
The application must finalize everyprepared statementin order to avoid resource leaks. It is a grievous error for the application to try to use a prepared statement after it has been finalized. Any use of a prepared statement after it has been finalized can result in undefined and undesirable behavior such as segfaults and heap corruption.
原文链接:https://www.f2er.com/sqlite/201874.html