Berkeley DB Reference Guide: Access Methods
Полезная информация

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.