Files
2017-09-04 13:40:25 -05:00

182 lines
6.0 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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>Chapter 2. Databases</title>
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.62.4" />
<link rel="home" href="index.html" title="Getting Started with Berkeley DB" />
<link rel="up" href="index.html" title="Getting Started with Berkeley DB" />
<link rel="previous" href="gettingit.html" title="Getting and Using DB " />
<link rel="next" href="coredbclose.html" title="Closing Databases" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Chapter 2. Databases</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="gettingit.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="coredbclose.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="chapter" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title"><a id="DB"></a>Chapter 2. Databases</h2>
</div>
</div>
<div></div>
</div>
<div class="toc">
<p>
<b>Table of Contents</b>
</p>
<dl>
<dt>
<span class="sect1">
<a href="DB.html#DBOpen">Opening Databases</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="coredbclose.html">Closing Databases</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="DBOpenFlags.html">Database Open Flags</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="CoreDBAdmin.html">Administrative Methods</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="dbErrorReporting.html">Error Reporting Functions</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="CoreEnvUsage.html">Managing Databases in Environments</a>
</span>
</dt>
<dt>
<span class="sect1">
<a href="CoreDbCXXUsage.html">Database Example</a>
</span>
</dt>
</dl>
</div>
<p>In Berkeley DB, a database is a collection of <span class="emphasis"><em>records</em></span>. Records,
in turn, consist of key/data pairings.
</p>
<p>
Conceptually, you can think of a
<span>database</span>
as containing a two-column table where column 1 contains a key and column 2
contains data. Both the key and the data are managed using
<tt class="classname">Dbt</tt>
<span>class instances</span>
(see <a href="DBEntry.html">Database Records</a> for details on this
<span>class</span>
).
So, fundamentally, using a DB
<span>database</span>
involves putting, getting, and deleting database records, which in turns involves efficiently
managing information
<span>encapsulated by </span>
<tt class="classname">Dbt</tt>
<span>objects.</span>
The next several chapters of this book are dedicated to those activities.
</p>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="DBOpen"></a>Opening Databases</h2>
</div>
</div>
<div></div>
</div>
<p>
You open a database by instantiating a <tt class="classname">Db</tt> object
and then calling its <tt class="methodname">open()</tt> method.
</p>
<p>
Note that by default, DB does not create databases if they do not already exist.
To override this behavior, specify the
<a href="DBOpenFlags.html" title="Database Open Flags"><tt class="literal">DB_CREATE</tt></a> flag on the
<tt class="methodname">open()</tt> method.
</p>
<p>
The following code fragment illustrates a database open:
</p>
<a id="cxx_db1"></a>
<pre class="programlisting">#include &lt;db_cxx.h&gt;
...
Db db(NULL, 0); // Instantiate the Db object
u_int32_t oFlags = DB_CREATE; // Open flags;
try {
// Open the database
db.open(NULL, // Transaction pointer
"my_db.db", // Database file name
NULL, // Optional logical database name
DB_BTREE, // Database access method
oFlags, // Open flags
0); // File mode (using defaults)
// DbException is not subclassed from std::exception, so
// need to catch both of these.
} catch(DbException &amp;e) {
// Error handling code goes here
} catch(std::exception &amp;e) {
// Error handling code goes here
} </pre>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="gettingit.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="index.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="coredbclose.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Getting and Using DB  </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Closing Databases</td>
</tr>
</table>
</div>
</body>
</html>