Dbc::close()
Prev | Chapter 3. The Dbc Handle | Next

## 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 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 `Dbc::close()` has been called, regardless of its return, the cursor handle may not be used again.

The `Dbc::close()` method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

### Errors

The `Dbc::close()` method may fail and throw a DbException exception, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

#### DbDeadlockException or DB_LOCK_DEADLOCK

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

DbDeadlockException is thrown if your Berkeley DB API is configured to throw exceptions. Otherwise, `DB_LOCK_DEADLOCK` is returned.

#### DbLockNotGrantedException or DB_LOCK_NOTGRANTED

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

DbLockNotGrantedException is thrown if your Berkeley DB API is configured to throw exceptions. Otherwise, `DB_LOCK_NOTGRANTED` is returned.

#### EINVAL

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

### Class

Dbc

### See Also

Database Cursors and Related Methods

Prev | Up | Next
Db::cursor() | Home | Dbc::cmp()