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

Berkeley DB Reference Guide: Simple Tutorial

Retrieving elements from a database

The simplest way to retrieve elements from a database is the DB->get interface. This interface is accessed through a function pointer that is an element of the database handle returned by db_open.

The DB->get interface takes the same five arguments that the DB->put interface takes:

db
The database handle returned by db_open.

txnid
A transaction ID. In our simple case, we aren't expecting to recover the database after application or system crash, so we aren't using transactions, and will leave this argument unspecified.

key
The key item for the key/data pair that we want to retrieve from the database.

data
The data item for the key/data pair that we want to retrieve from the database.

flags
Optional flags modifying the underlying behavior of the DB->get interface.

Here's what the code to call DB->get looks like:

Note that we do not have to clear the structures that we're passing to DB->get again, we can simply use the ones that were passed to the DB->put function.

We also have to add a new possible error condition, DB_NOTFOUND. This is because there are three possible returns from DB->get:

  1. The call might be successful and the key found, in which case the error return will be 0.
  2. The call might be successful, but the key not found, in which case the error return will be DB_NOTFOUND.
  3. Or, the call might not be successful, in which case a system error will be returned.