mirror of
https://github.com/berkeleydb/libdb.git
synced 2024-11-17 01:26:25 +00:00
224 lines
9.8 KiB
HTML
224 lines
9.8 KiB
HTML
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|||
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|||
|
<head>
|
|||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
|||
|
<title>Db</title>
|
|||
|
<link rel="stylesheet" href="apiReference.css" type="text/css" />
|
|||
|
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
|
|||
|
<link rel="start" href="index.html" title="Berkeley DB C++ API Reference" />
|
|||
|
<link rel="up" href="db.html" title="Chapter 2. The Db Handle" />
|
|||
|
<link rel="prev" href="db_copy.html" title="db_copy" />
|
|||
|
<link rel="next" href="dbdel.html" title="Db::del()" />
|
|||
|
</head>
|
|||
|
<body>
|
|||
|
<div xmlns="" class="navheader">
|
|||
|
<div class="libver">
|
|||
|
<p>Library Version 11.2.5.2</p>
|
|||
|
</div>
|
|||
|
<table width="100%" summary="Navigation header">
|
|||
|
<tr>
|
|||
|
<th colspan="3" align="center">Db</th>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td width="20%" align="left"><a accesskey="p" href="db_copy.html">Prev</a> </td>
|
|||
|
<th width="60%" align="center">Chapter 2.
|
|||
|
The Db Handle
|
|||
|
</th>
|
|||
|
<td width="20%" align="right"> <a accesskey="n" href="dbdel.html">Next</a></td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
<hr />
|
|||
|
</div>
|
|||
|
<div class="sect1" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h2 class="title" style="clear: both"><a id="dbcreate"></a>Db</h2>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<pre class="programlisting">#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);
|
|||
|
...
|
|||
|
}; </pre>
|
|||
|
<p>
|
|||
|
The Db handle is the handle for a Berkeley DB database, which may or may not be part of a
|
|||
|
database environment.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Db handles are free-threaded if the
|
|||
|
<a class="link" href="envopen.html#envopen_DB_THREAD">DB_THREAD</a> flag is specified to
|
|||
|
the <a class="xref" href="dbopen.html" title="Db::open()">Db::open()</a> 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 <a class="xref" href="dbclose.html" title="Db::close()">Db::close()</a>,
|
|||
|
<a class="xref" href="dbremove.html" title="Db::remove()">Db::remove()</a>,
|
|||
|
<a class="xref" href="dbrename.html" title="Db::rename()">Db::rename()</a>, or
|
|||
|
<a class="xref" href="dbverify.html" title="Db::verify()">Db::verify()</a>
|
|||
|
methods are called, the handle may not be accessed again, regardless of the method's return.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
The constructor creates a <a class="link" href="db.html" title="Chapter 2. The Db Handle">Db</a> object that is the
|
|||
|
handle for a Berkeley DB database. The constructor allocates memory internally; calling
|
|||
|
the <a class="xref" href="dbclose.html" title="Db::close()">Db::close()</a>,
|
|||
|
<a class="xref" href="dbremove.html" title="Db::remove()">Db::remove()</a>, or
|
|||
|
<a class="xref" href="dbrename.html" title="Db::rename()">Db::rename()</a>
|
|||
|
methods will free that memory.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Note that destroying the <a class="link" href="db.html" title="Chapter 2. The Db Handle">Db</a>
|
|||
|
object is synonomous with calling <code class="literal">Db::close(0)</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Each <code class="methodname">Db</code> object has an associated <code class="methodname">DB</code>
|
|||
|
struct, which is used by the underlying implementation of Berkeley DB and its C-language
|
|||
|
API. The <code class="methodname">Db::get_DB()</code> method returns a pointer to this struct.
|
|||
|
Given a <code class="methodname">const Db</code> object,
|
|||
|
<code class="methodname">Db::get_const_DB()</code> returns a const pointer to the same struct.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Given a <code class="literal">DB</code> struct, the <code class="methodname">Db::get_Db()</code> method
|
|||
|
returns the corresponding <code class="classname">Db</code> object, if there is
|
|||
|
one. If the <code class="literal">DB</code> object was not associated with a
|
|||
|
<code class="classname">Db</code> (that is, it was not returned from a call
|
|||
|
to the <code class="methodname">Db::get_DB()</code> method), then the result of
|
|||
|
<code class="methodname">Db::get_Db()</code> is undefined. Given a
|
|||
|
<code class="literal">const DB struct</code>,
|
|||
|
<code class="methodname">Db::get_const_Db()</code> returns the associated
|
|||
|
<code class="literal">const Db</code>object, if there is one.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
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.
|
|||
|
</p>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3580396"></a>Parameters</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="sect3" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h4 class="title"><a id="id3580400"></a>dbenv</h4>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
|
|||
|
<span>If no <span class="bold"><strong>dbenv</strong></span> value is specified,</span>
|
|||
|
the database is standalone; that is, it is not part of any Berkeley DB
|
|||
|
environment.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
|
|||
|
<span>
|
|||
|
If a <span class="bold"><strong>dbenv</strong></span> value is specified,
|
|||
|
</span>
|
|||
|
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.
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div class="sect3" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h4 class="title"><a id="id3580435"></a>flags</h4>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
The <span class="bold"><strong>flags</strong></span> parameter must be set to 0 or the following value:
|
|||
|
</p>
|
|||
|
<div class="itemizedlist">
|
|||
|
<ul type="disc">
|
|||
|
<li>
|
|||
|
<p>
|
|||
|
<code class="literal">DB_CXX_NO_EXCEPTION</code>
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
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 this flag is
|
|||
|
specified, exceptions are not thrown; instead, each individual
|
|||
|
function returns an error code.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
If a <span class="bold"><strong>dbenv</strong></span> value is specified,
|
|||
|
this flag is ignored, and the error behavior of the specified
|
|||
|
environment is used instead.
|
|||
|
</p>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3580623"></a>Class</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<a class="link" href="db.html" title="Chapter 2. The Db Handle">Db</a>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
<div class="sect2" lang="en" xml:lang="en">
|
|||
|
<div class="titlepage">
|
|||
|
<div>
|
|||
|
<div>
|
|||
|
<h3 class="title"><a id="id3580514"></a>See Also</h3>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<p>
|
|||
|
<a class="xref" href="db.html#dblist" title="Database and Related Methods">Database and Related Methods</a>
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
<div class="navfooter">
|
|||
|
<hr />
|
|||
|
<table width="100%" summary="Navigation footer">
|
|||
|
<tr>
|
|||
|
<td width="40%" align="left"><a accesskey="p" href="db_copy.html">Prev</a> </td>
|
|||
|
<td width="20%" align="center">
|
|||
|
<a accesskey="u" href="db.html">Up</a>
|
|||
|
</td>
|
|||
|
<td width="40%" align="right"> <a accesskey="n" href="dbdel.html">Next</a></td>
|
|||
|
</tr>
|
|||
|
<tr>
|
|||
|
<td width="40%" align="left" valign="top">db_copy </td>
|
|||
|
<td width="20%" align="center">
|
|||
|
<a accesskey="h" href="index.html">Home</a>
|
|||
|
</td>
|
|||
|
<td width="40%" align="right" valign="top"> Db::del()</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</div>
|
|||
|
</body>
|
|||
|
</html>
|