Berkeley DB: Dbc::close
Полезная информация


#include <db_cxx.h>

int Dbc::close(void);


The Dbc::close method discards the cursor.

It is possible for the Dbc::close method to return EAGAIN, signaling that any enclosing transaction should be aborted. If the application is already intending to abort the transaction, this error should be ignored, and the application should proceed.

Once Dbc::close has been called, regardless of its return, the cursor handle may not be used again.

The Dbc::close method either returns errno or throws an exception that encapsulates an errno on failure, and 0 on success.


If a fatal error occurs in Berkeley DB, the Dbc::close method may fail and either return DB_RUNRECOVERY or throw an exception encapsulating DB_RUNRECOVERY, at which point all subsequent database calls will also fail in the same way. Methods marked as returning errno will, by default, throw an exception that encapsulates the error information. The default error behavior can be changed, see DbException.

The Dbc::close method may fail and throw an exception for any of the errors specified for the following Berkeley DB and C library functions: __account_page(3), dbc->c_am_close(3), dbenv->db_paniccall(3), fflush(3), fprintf(3), free(3), func(3), DbLockTab::get, DbLock::put, DbLockTab::vec, DbLog::put, malloc(3), memcpy(3), memmove(3), DbMpoolFile::get, DbMpoolFile::put, DbMpoolFile::set, memset(3), realloc(3), strerror(3), vfprintf(3), and vsnprintf(3).

In addition, the Dbc::close method may fail and throw an exception or return errno for the following conditions:

A lock was unavailable.



See Also

Dbc::close, Dbc::del, Dbc::get and Dbc::put.