#include <db.h>

DBcursor->close(DBC *DBcursor);  

The DBcursor->close() method discards the cursor.

It is possible for the DBcursor->close() method to return DB_LOCK_DEADLOCK, 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.

After the DBcursor->close() method has been called, regardless of its return value, you can not use the cursor handle again.

It is not required to close the cursor explicitly before closing the database handle or the transaction handle that owns this cursor because, closing a database handle or a transaction handle closes those open cursors.

However, it is recommended that you always close all cursor handles immediately after their use to promote concurrency and to release resources such as page locks.

The DBcursor->close() method returns a non-zero error value on failure and 0 on success.


The DBcursor->close() method may fail and return one of the following non-zero errors:


A transactional database environment operation was selected to resolve a deadlock.


A Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time.

You attempted to open a database handle that is configured for no waiting exclusive locking, but the exclusive lock could not be immediately obtained. See DB->set_lk_exclusive() for more information.


If the cursor is already closed; or if an invalid flag value or parameter was specified.



See Also

Database Cursors and Related Methods