Berkeley DB Reference Guide: Access Methods
ee,hash,hashing,transaction,transactions,locking,logging,access method,access me
thods,java,C,C++">
Berkeley DB Reference Guide: Access Methods
Retrieving records with a cursor
The DBcursor->c_get function is the standard function for retrieving
records from the database, with a cursor. In general, the cursor get
function takes a key and returns the associated data from the database.
There are several flags that you can set to customize retrieval:
- DB_FIRST
- Return the first record from the database.
- DB_LAST
- Return the last record from the database.
- DB_NEXT
- Return the record from the database immediately following the cursor.
- DB_NEXT_DUP
- Return the record from the database immediately following the cursor, if
it is a duplicate data item for the current key.
- DB_PREV
- Return the record from the database immediately preceding the cursor.
- DB_CURRENT
- Return the record from the database currently pointed to by the cursor.
- DB_SET
- Return the record from the database that matches the supplied key.
- DB_SET_RANGE
- Return the smallest record in the database greater than or equal to the
supplied key. This functionality permits partial key matches and range
searches.
- DB_GET_BOTH
- Return the record from the database that matches both the supplied key
and data items. This is particularly useful when there are large numbers
of duplicate records for a key, as it allows the cursor to easily be
positioned at the correct place for traversal of some part of a large set
of duplicate records.
- DB_SET_RECNO
- If the underlying database is a Btree, and was configured so that it is
possible to search it by logical record number, retrieve a specific
record.
- DB_GET_RECNO
- If the underlying database is a Btree, and was configured so that it is
possible to search it by logical record number, return the record number
for the current cursor record.
- DB_RMW
- Acquire write locks instead of read locks during retrieval. This can
enhance performance in threaded applications where deadlock is a
concern.
In all cases, the cursor is repositioned by a DBcursor->c_get operation
to point to the newly returned key/data pair in the database.
|