~ubuntu-branches/ubuntu/edgy/rpm/edgy

« back to all changes in this revision

Viewing changes to db/docs/ref/simple_tut/del.html

  • Committer: Bazaar Package Importer
  • Author(s): Joey Hess
  • Date: 2002-01-22 20:56:57 UTC
  • Revision ID: james.westby@ubuntu.com-20020122205657-l74j50mr9z8ofcl5
Tags: upstream-4.0.3
ImportĀ upstreamĀ versionĀ 4.0.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!--$Id: del.so,v 10.23 2001/05/23 21:03:32 bostic Exp $-->
 
2
<!--Copyright 1997-2001 by Sleepycat Software, Inc.-->
 
3
<!--All rights reserved.-->
 
4
<html>
 
5
<head>
 
6
<title>Berkeley DB Reference Guide: Removing elements from a database</title>
 
7
<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
 
8
<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
 
9
</head>
 
10
<body bgcolor=white>
 
11
<table width="100%"><tr valign=top>
 
12
<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
 
13
<td align=right><a href="../../ref/simple_tut/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/close.html"><img src="../../images/next.gif" alt="Next"></a>
 
14
</td></tr></table>
 
15
<p>
 
16
<h1 align=center>Removing elements from a database</h1>
 
17
<p>The simplest way to remove elements from a database is the <a href="../../api_c/db_del.html">DB-&gt;del</a>
 
18
interface.
 
19
<p>The <a href="../../api_c/db_del.html">DB-&gt;del</a> interface takes four of the same five arguments that
 
20
the <a href="../../api_c/db_get.html">DB-&gt;get</a> and <a href="../../api_c/db_put.html">DB-&gt;put</a> interfaces take.  The difference
 
21
is that there is no need to specify a data item, as the delete operation
 
22
is only interested in the key that you want to remove.
 
23
<p><dl compact>
 
24
<p><dt>db<dd>The database handle returned by <a href="../../api_c/db_create.html">db_create</a>.
 
25
<p><dt>txnid<dd>A transaction ID.
 
26
In our simple case, we aren't expecting to recover the database after
 
27
application or system crash, so we aren't using transactions, and will
 
28
leave this argument unspecified.
 
29
<p><dt>key<dd>The key item for the key/data pair that we want to delete from the
 
30
database.
 
31
<p><dt>flags<dd>Optional flags modifying the underlying behavior of the <a href="../../api_c/db_del.html">DB-&gt;del</a>
 
32
interface.  There are currently no available flags for this interface,
 
33
so the flags argument should always be set to 0.
 
34
</dl>
 
35
<p>Here's what the code to call <a href="../../api_c/db_del.html">DB-&gt;del</a> looks like:
 
36
<p><blockquote><pre>#include &lt;sys/types.h&gt;
 
37
#include &lt;stdio.h&gt;
 
38
#include &lt;db.h&gt;
 
39
<p>
 
40
#define DATABASE "access.db"
 
41
<p>
 
42
int
 
43
main()
 
44
{
 
45
        DB *dbp;
 
46
        DBT key, data;
 
47
        int ret;
 
48
<p>
 
49
        if ((ret = db_create(&dbp, NULL, 0)) != 0) {
 
50
                fprintf(stderr, "db_create: %s\n", db_strerror(ret));
 
51
                exit (1);
 
52
        }
 
53
        if ((ret = dbp-&gt;open(
 
54
            dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
 
55
                dbp-&gt;err(dbp, ret, "%s", DATABASE);
 
56
                goto err;
 
57
        }
 
58
<p>
 
59
        memset(&key, 0, sizeof(key));
 
60
        memset(&data, 0, sizeof(data));
 
61
        key.data = "fruit";
 
62
        key.size = sizeof("fruit");
 
63
        data.data = "apple";
 
64
        data.size = sizeof("apple");
 
65
<p>
 
66
        if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) == 0)
 
67
                printf("db: %s: key stored.\n", (char *)key.data);
 
68
        else {
 
69
                dbp-&gt;err(dbp, ret, "DB-&gt;put");
 
70
                goto err;
 
71
        }
 
72
<p>
 
73
        if ((ret = dbp-&gt;get(dbp, NULL, &key, &data, 0)) == 0)
 
74
                printf("db: %s: key retrieved: data was %s.\n",
 
75
                    (char *)key.data, (char *)data.data);
 
76
        else {
 
77
                dbp-&gt;err(dbp, ret, "DB-&gt;get");
 
78
                goto err;
 
79
        }
 
80
<p><b>  if ((ret = dbp-&gt;del(dbp, NULL, &key, 0)) == 0)
 
81
                printf("db: %s: key was deleted.\n", (char *)key.data);
 
82
        else {
 
83
                dbp-&gt;err(dbp, ret, "DB-&gt;del");
 
84
                goto err;
 
85
        }
 
86
</b></pre></blockquote>
 
87
<p>After the <a href="../../api_c/db_del.html">DB-&gt;del</a> call returns, the entry to which the key
 
88
<b>fruit</b> refers has been removed from the database.
 
89
<table width="100%"><tr><td><br></td><td align=right><a href="../../ref/simple_tut/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../reftoc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/close.html"><img src="../../images/next.gif" alt="Next"></a>
 
90
</td></tr></table>
 
91
<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
 
92
</body>
 
93
</html>