Db::cursor
|
|
#include <db_cxx.h>
int
Db::cursor(DbTxn *txnid, Dbc **cursorp, u_int32_t flags);
Description: Db::cursor
The Db::cursor method returns a created database cursor.
Cursors may span threads, but only serially, that is, the application
must serialize access to the cursor handle.
The Db::cursor 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.
Parameters
- cursorp
- The cursorp parameter references memory into which
a pointer to the allocated cursor is copied.
- flags
- The flags parameter must be set to 0 or by bitwise inclusively OR'ing together one
or more of the following values:
- DB_READ_COMMITTED
- This cursor will have degree 2 isolation. This ensures the stability
of the current data item read by this cursor but permits data read by
this cursor to be modified or deleted prior to the commit of the
transaction for this cursor.
- DB_READ_UNCOMMITTED
- This cursor will have degree 1 isolation. Read operations performed by
the cursor may return modified but not yet committed data. Silently
ignored if the DB_READ_UNCOMMITTED flag was not specified when
the underlying database was opened.
- DB_WRITECURSOR
- Specify that the cursor will be used to update the database. The
underlying database environment must have been opened using the
DB_INIT_CDB flag.
- DB_TXN_SNAPSHOT
- Specify that the cursor operate with read-only
snapshot isolation. For databases
with the DB_MULTIVERSION flag set, data values will be read as
they are when the cursor is opened, without taking read locks. This
flag implicitly begins a transaction that is committed when the cursor
is closed. Silently ignored if DB_MULTIVERSION not set on the
underlying database or if a transaction is supplied in the txnid
parameter.
- txnid
- Cursor operations are not automatically transaction-protected, even if
the DB_AUTO_COMMIT flag is specified to the
DbEnv::set_flags or Db::open methods. If cursor operations are
to be transaction-protected, the txnid parameter must be a
transaction handle returned from DbEnv::txn_begin; otherwise, NULL. To
transaction-protect cursor operations, cursors must be opened and closed
within the context of a transaction, and the txnid parameter
specifies the transaction context in which the cursor may be used.
Errors
The Db::cursor method
may fail and throw
DbException,
encapsulating one of the following non-zero errors, or return one of
the following non-zero errors:
- DB_REP_HANDLE_DEAD
- The database handle has been invalidated because a replication election
unrolled a committed transaction.
- DB_REP_LOCKOUT
- The operation was blocked by client/master synchronization.
- EINVAL
- An
invalid flag value or parameter was specified.
Class
Dbc
See Also
Database Cursors and Related Methods
Copyright (c) 1996-2006 Oracle Corporation - All rights reserved.