Destrucción del objeto de una sentencia preparada
int sqlite3_finalize(sqlite3_stmt *pStmt);
La función sqlite3_finalize() es llamada para borrar una sentencia preparada. Si la evaluación más reciente de la sentencia no encontró errores o si la sentencia nunca fue evaluada, sqlite3_finalize() regresa con SQLITE_OK. Si la evaluación más reciente de la sentencia S ha fallado, sqlite3_finalize(S) regresa con el código de error o con el código de error extendido apropiado.
La función sqlite3_finalize(S) puede ser llamada desde cualquier punto durante el ciclo de vida de la sentencia preparada S: antes de que la sentencia S sea evaluada, después de una o más llamadas a sqlite3_reset(), o después de cualquier llamada a sqlite3_step() independientemente de si la sentencia ha completado o no su ejecución.
Invocar sqlite3_finalize() con un puntero NULL es inofensivo y no hace nada.
Las aplicaciones deben finalizar todas las sentencias preparadas para impedir pérdidas de recursos. Es un grave error por parte de la aplicación intentar usar una sentencia preparada después de que haya sido finalizada. Cualquier uso de una sentencia preparada después de que haya sido finalizada puede provocar un comportamiento indefinido e indeseable, tales como fallos de segmentación y corrupción de la pila.