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
     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.

     If the database connection is associated with unfinalized prepared
     statements 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 and/or
     unfinished sqlite3_backups, then the database connection becomes an
     unusable "zombie" which will automatically be deallocated when the last
     prepared statement is finalized or the last sqlite3_backup is 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.

     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 sqlite3_close_v2() is called on a database connection that
     still has outstanding prepared statements, BLOB handles, and/or
     sqlite3_backup objects then it returns SQLITE_OK and the deallocation of
     resources is deferred until all prepared statements, BLOB handles, and
     sqlite3_backup objects are also destroyed.

     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.

SEE ALSO
     sqlite3_blob(3), sqlite3(3), sqlite3_stmt(3), sqlite3(3),
     sqlite3_backup(3), sqlite3_backup_init(3), sqlite3_blob_close(3),
     sqlite3_finalize(3), sqlite3_open(3), SQLITE_OK(3)

NetBSD 9.99                    December 19, 2018                   NetBSD 9.99