|
Db
|
|
#include <db_cxx.h>
class Db {
public:
Db(DbEnv *dbenv, u_int32_t flags);
~Db();
DB *Db::get_DB();
const DB *Db::get_const_DB() const;
static Db *Db::get_Db(DB *db);
static const Db *Db::get_const_Db(const DB *db);
...
};
Description
The Db handle is the handle for a Berkeley DB database, which may or
may not be part of a database environment. Db handles are
free-threaded if the DB_THREAD flag is specified to the
Db::open method when the database is opened or if the database
environment in which the database is opened is free-threaded. The
handle should not be closed while any other handle that refers to the
database is in use; for example, database handles must not be closed
while cursor handles into the database remain open, or transactions that
include operations on the database have not yet been committed or
aborted. Once the Db::close, Db::remove, or
Db::rename methods are called, the handle may not be accessed again,
regardless of the method's return.
The constructor creates a Db object that is the handle for a
Berkeley DB database. The constructor allocates memory internally; calling
the Db::close, Db::remove or Db::rename methods will
free that memory.
If no dbenv value is specified, the database is standalone; that
is, it is not part of any Berkeley DB environment.
If a dbenv value is specified, the database is created within
the specified Berkeley DB environment. The database access methods
automatically make calls to the other subsystems in Berkeley DB based on the
enclosing environment. For example, if the environment has been
configured to use locking, the access methods will automatically acquire
the correct locks when reading and writing pages of the database.
The flags value must be set to 0 or by bitwise inclusively OR'ing together one or
more of the following values:
- DB_CXX_NO_EXCEPTIONS
- The Berkeley DB C++ API supports two different error behaviors. By default,
whenever an error occurs, an exception is thrown that encapsulates the
error information. This generally allows for cleaner logic for
transaction processing because a try block can surround a single
transaction. However, if DB_CXX_NO_EXCEPTIONS is specified,
exceptions are not thrown; instead, each individual function returns an
error code.
If dbenv is not null, this flag is ignored, and the error behavior
of the specified environment is used instead.
- DB_XA_CREATE
- Instead of creating a standalone database, create a database intended to
be accessed via applications running under a X/Open conformant Transaction
Manager. The database will be opened in the environment specified by the
OPENINFO parameter of the GROUPS section of the ubbconfig file. See the
XA Resource Manager chapter in the
Reference Guide for more information.
Each Db object has an associated DB struct, which is
used by the underlying implementation of Berkeley DB and its C-language API.
The Db::get_DB method returns a pointer to this struct. Given a const
Db object, Db::get_const_DB returns a const pointer to the
same struct.
Given a DB struct, the Db::get_Db method returns the
corresponding Db object, if there is one. If the DB
object was not associated with a Db (that is, it was not
returned from a call to Db::get_DB), then the result of Db::get_Db is
undefined. Given a const DB struct, Db::get_const_Db returns
the associated const Db object, if there is one.
These methods may be useful for Berkeley DB applications including both C
and C++ language software. It should not be necessary to use these
calls in a purely C++ application.
Class
Db
See Also
Databases and Related Methods
Copyright Sleepycat Software
|