Updated: 2022/Sep/29
Please read Privacy Policy. It's for your privacy.
SQLITE3_CLOSE(3) Library Functions Manual SQLITE3_CLOSE(3)
NAME
sqlite3_close, sqlite3_close_v2 - closing a database connection
SYNOPSIS
#include <sqlite3.h>
int
sqlite3_close(sqlite3*);
int
sqlite3_close_v2(sqlite3*);
DESCRIPTION
The sqlite3_close() and sqlite3_close_v2() routines are destructors for
the sqlite3 object. Calls to sqlite3_close() and sqlite3_close_v2()
return SQLITE_OK if the sqlite3 object is successfully destroyed and all
associated resources are deallocated.
Ideally, applications should finalize all prepared statements, close all
BLOB handles, and finish all sqlite3_backup objects associated with the
sqlite3 object prior to attempting to close the object. If the database
connection is associated with unfinalized prepared statements, BLOB
handlers, and/or unfinished sqlite3_backup objects then sqlite3_close()
will leave the database connection open and return SQLITE_BUSY. If
sqlite3_close_v2() is called with unfinalized prepared statements,
unclosed BLOB handlers, and/or unfinished sqlite3_backups, it returns
SQLITE_OK regardless, but instead of deallocating the database connection
immediately, it marks the database connection as an unusable "zombie" and
makes arrangements to automatically deallocate the database connection
after all prepared statements are finalized, all BLOB handles are closed,
and all backups have finished. The sqlite3_close_v2() interface is
intended for use with host languages that are garbage collected, and
where the order in which destructors are called is arbitrary.
If an sqlite3 object is destroyed while a transaction is open, the
transaction is automatically rolled back.
The C parameter to sqlite3_close(C) and sqlite3_close_v2(C) must be
either a NULL pointer or an sqlite3 object pointer obtained from
sqlite3_open(), sqlite3_open16(), or sqlite3_open_v2(), and not
previously closed. Calling sqlite3_close() or sqlite3_close_v2() with a
NULL pointer argument is a harmless no-op.
IMPLEMENTATION NOTES
These declarations were extracted from the interface documentation at
line 316.
SQLITE_API int sqlite3_close(sqlite3*);
SQLITE_API int sqlite3_close_v2(sqlite3*);
SEE ALSO
sqlite3(3), sqlite3_backup(3), sqlite3_backup_init(3), sqlite3_blob(3),
sqlite3_blob_close(3), sqlite3_finalize(3), sqlite3_open(3),
sqlite3_stmt(3), SQLITE_OK(3)
NetBSD 10.99 August 24, 2023 NetBSD 10.99