diff options
| author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-07-20 20:00:05 +0100 |
|---|---|---|
| committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-07-20 20:00:05 +0100 |
| commit | 3ef782d3745ea8f25a3151561a3cfb882190210e (patch) | |
| tree | 86b9c2f5fde051dd0bced99b3fc9f5a3ba08db69 /docs/programmer_reference/env_open.html | |
| download | berkeleydb-3ef782d3745ea8f25a3151561a3cfb882190210e.tar.gz | |
Tarball conversion
Diffstat (limited to 'docs/programmer_reference/env_open.html')
| -rw-r--r-- | docs/programmer_reference/env_open.html | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/docs/programmer_reference/env_open.html b/docs/programmer_reference/env_open.html new file mode 100644 index 00000000..d4b3f19f --- /dev/null +++ b/docs/programmer_reference/env_open.html @@ -0,0 +1,130 @@ +<?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>Opening databases within the environment</title> + <link rel="stylesheet" href="gettingStarted.css" type="text/css" /> + <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" /> + <link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" /> + <link rel="up" href="env.html" title="Chapter 9. The Berkeley DB Environment" /> + <link rel="prev" href="env_size.html" title="Sizing a database environment" /> + <link rel="next" href="env_error.html" title="Error support" /> + </head> + <body> + <div xmlns="" class="navheader"> + <div class="libver"> + <p>Library Version 11.2.5.3</p> + </div> + <table width="100%" summary="Navigation header"> + <tr> + <th colspan="3" align="center">Opening databases within the environment</th> + </tr> + <tr> + <td width="20%" align="left"><a accesskey="p" href="env_size.html">Prev</a> </td> + <th width="60%" align="center">Chapter 9. + The Berkeley DB Environment + </th> + <td width="20%" align="right"> <a accesskey="n" href="env_error.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="env_open"></a>Opening databases within the environment</h2> + </div> + </div> + </div> + <p>Once the environment has been created, database handles may be created +and then opened within the environment. This is done by calling the +<a href="../api_reference/C/dbcreate.html" class="olink">db_create()</a> function and specifying the appropriate environment +as an argument.</p> + <p>File naming, database operations, and error handling will all be done as +specified for the environment. For example, if the <a href="../api_reference/C/envopen.html#envopen_DB_INIT_LOCK" class="olink">DB_INIT_LOCK</a> +or <a href="../api_reference/C/envopen.html#envopen_DB_INIT_CDB" class="olink">DB_INIT_CDB</a> flags were specified when the environment was +created or joined, database operations will automatically perform all +necessary locking operations for the application.</p> + <p>The following is a simple example of opening two databases within a +database environment:</p> + <a id="prog_env28"></a> + <pre class="programlisting">DB_ENV *dbenv; + DB *dbp1, *dbp2; + int ret; + + dbenv = NULL; + dbp1 = dbp2 = NULL; + /* + * Create an environment and initialize it for additional error + * reporting. + */ + if ((ret = db_env_create(&dbenv, 0)) != 0) { + fprintf(errfp, "%s: %s\n", progname, db_strerror(ret)); + return (ret); + } + + dbenv->set_errfile(dbenv, errfp); + dbenv->set_errpfx(dbenv, progname); + + /* Open an environment with just a memory pool. */ + if ((ret = + dbenv->open(dbenv, home, DB_CREATE | DB_INIT_MPOOL, 0)) != 0) { + dbenv->err(dbenv, ret, "environment open: %s", home); + goto err; + } + + /* Open database #1. */ + if ((ret = db_create(&dbp1, dbenv, 0)) != 0) { + dbenv->err(dbenv, ret, "database create"); + goto err; + } + if ((ret = dbp1->open(dbp1, + NULL, DATABASE1, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) { + dbenv->err(dbenv, ret, "DB->open: %s", DATABASE1); + goto err; + } + + /* Open database #2. */ + if ((ret = db_create(&dbp2, dbenv, 0)) != 0) { + dbenv->err(dbenv, ret, "database create"); + goto err; + } + if ((ret = dbp2->open(dbp2, + NULL, DATABASE2, NULL, DB_HASH, DB_CREATE, 0664)) != 0) { + dbenv->err(dbenv, ret, "DB->open: %s", DATABASE2); + goto err; + } + + return (0); + +err: if (dbp2 != NULL) + (void)dbp2->close(dbp2, 0); + if (dbp1 != NULL) + (void)dbp1->close(dbp1, 0); + (void)dbenv->close(dbenv, 0); + return (1); +}</pre> + </div> + <div class="navfooter"> + <hr /> + <table width="100%" summary="Navigation footer"> + <tr> + <td width="40%" align="left"><a accesskey="p" href="env_size.html">Prev</a> </td> + <td width="20%" align="center"> + <a accesskey="u" href="env.html">Up</a> + </td> + <td width="40%" align="right"> <a accesskey="n" href="env_error.html">Next</a></td> + </tr> + <tr> + <td width="40%" align="left" valign="top">Sizing a database environment </td> + <td width="20%" align="center"> + <a accesskey="h" href="index.html">Home</a> + </td> + <td width="40%" align="right" valign="top"> Error support</td> + </tr> + </table> + </div> + </body> +</html> |
