Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.

SQLITE3_CLOSE(3)           Library Functions Manual           SQLITE3_CLOSE(3)

     sqlite3_close, sqlite3_close_v2 - closing a database connection

     #include <sqlite3.h>



     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.

     These declarations were extracted from the interface documentation at
     line 316.

     SQLITE_API int sqlite3_close(sqlite3*);
     SQLITE_API int sqlite3_close_v2(sqlite3*);

     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