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.
- txnid
- If the operation is part of an application-specified
transaction, the txnid parameter is a transaction handle
returned from DbEnv::txn_begin; otherwise NULL. If no transaction
handle is specified, but the
operation occurs in a transactional
database,
the operation will be implicitly transaction protected. 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-2005 Sleepycat Software, Inc. - All rights reserved.