<?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>Dbc::del()</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="dbc.html" title="Chapter 3. The Dbc Handle" /> <link rel="prev" href="dbccount.html" title="Dbc::count()" /> <link rel="next" href="dbcdup.html" title="Dbc::dup()" /> </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">Dbc::del()</th> </tr> <tr> <td width="20%" align="left"><a accesskey="p" href="dbccount.html">Prev</a> </td> <th width="60%" align="center">Chapter 3. The Dbc Handle </th> <td width="20%" align="right"> <a accesskey="n" href="dbcdup.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="dbcdel"></a>Dbc::del()</h2> </div> </div> </div> <pre class="programlisting">#include <db_cxx.h> int Dbc::del(u_int32_t flags);</pre> <p> The <code class="methodname">Dbc::del()</code> method deletes the key/data pair to which the cursor refers. </p> <p> When called on a cursor opened on a database that has been made into a secondary index using the <a class="xref" href="dbassociate.html" title="Db::associate()">Db::associate()</a> method, the <a class="xref" href="dbdel.html" title="Db::del()">Db::del()</a> method deletes the key/data pair from the primary database and all secondary indices. </p> <p> The cursor position is unchanged after a delete, and subsequent calls to cursor functions expecting the cursor to refer to an existing key will fail. </p> <p> The <code class="methodname">Dbc::del()</code> method will return <a href="../../programmer_reference/program_errorret.html#program_errorret.DB_KEYEMPTY" class="olink">DB_KEYEMPTY</a> if the element has already been deleted. The <code class="methodname">Dbc::del()</code> <span> <span> method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success. </span> </span> </p> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp6126480"></a>Parameters</h3> </div> </div> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6125296"></a>flags</h4> </div> </div> </div> <p> The <span class="bold"><strong>flags</strong></span> parameter must be set to 0 or one of the following values: </p> <div class="itemizedlist"> <ul type="disc"> <li> <p><a id="dbcput_DB_CONSUME"></a> <code class="literal">DB_CONSUME</code> </p> <p> If the database is of type DB_QUEUE then this flag may be set to force the head of the queue to move to the first non-deleted item in the queue. Normally this is only done if the deleted item is exactly at the head when deleted. </p> </li> </ul> </div> </div> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp6161976"></a>Errors</h3> </div> </div> </div> <p> The <code class="methodname">Dbc::del()</code> <span> <span> method may fail and throw a <a class="link" href="dbexception.html" title="Chapter 6. The DbException Class">DbException</a> exception, encapsulating one of the following non-zero errors, or return one of the following non-zero errors: </span> </span> </p> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6170152"></a>DB_FOREIGN_CONFLICT</h4> </div> </div> </div> <p> A <a class="link" href="dbassociate_foreign.html" title="Db::associate_foreign()">foreign key constraint violation</a> has occurred. This can be caused by one of two things: </p> <div class="orderedlist"> <ol type="1"> <li> <p> An attempt was made to add a record to a constrained database, and the key used for that record does not exist in the foreign key database. </p> </li> <li> <p> <a class="link" href="dbassociate_foreign.html#associate_foreign_DB_FOREIGN_ABORT">DB_FOREIGN_ABORT</a> was declared for a foreign key database, and then subsequently a record was deleted from the foreign key database without first removing it from the constrained secondary database. </p> </li> </ol> </div> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6145528"></a><span>DbDeadlockException or </span>DB_LOCK_DEADLOCK</h4> </div> </div> </div> <p> A transactional database environment operation was selected to resolve a deadlock. </p> <p> <a class="xref" href="dbdeadlock.html" title="DbDeadlockException">DbDeadlockException</a> is thrown if your Berkeley DB API is configured to throw exceptions. Otherwise, <code class="literal">DB_LOCK_DEADLOCK</code> is returned. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6162944"></a><span>DbLockNotGrantedException or </span>DB_LOCK_NOTGRANTED</h4> </div> </div> </div> <p> A Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time. </p> <p> You attempted to open a database handle that is configured for no waiting exclusive locking, but the exclusive lock could not be immediately obtained. See <a class="xref" href="dbset_lk_exclusive.html" title="Db::set_lk_exclusive()">Db::set_lk_exclusive()</a> for more information. </p> <p> <a class="xref" href="dblocknotgranted.html" title="DbLockNotGrantedException">DbLockNotGrantedException</a> is thrown if your Berkeley DB API is configured to throw exceptions. Otherwise, <code class="literal">DB_LOCK_NOTGRANTED</code> is returned. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6163176"></a> <span>DbRepHandleDeadException or</span> DB_REP_HANDLE_DEAD</h4> </div> </div> </div> <p> When a client synchronizes with the master, it is possible for committed transactions to be rolled back. This invalidates all the database and cursor handles opened in the replication environment. Once this occurs, an attempt to use such a handle will <span> throw a <a class="xref" href="dbrephandledead.html" title="DbRepHandleDeadException">DbRepHandleDeadException</a> (if your application is configured to throw exceptions), or </span> return <code class="literal">DB_REP_HANDLE_DEAD</code>. The application will need to discard the handle and open a new one in order to continue processing. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6174240"></a><span>DbDeadlockException or </span>DB_REP_LOCKOUT</h4> </div> </div> </div> <p> The operation was blocked by client/master synchronization. </p> <p> <a class="xref" href="dbdeadlock.html" title="DbDeadlockException">DbDeadlockException</a> is thrown if your Berkeley DB API is configured to throw exceptions. Otherwise, <code class="literal">DB_REP_LOCKOUT</code> is returned. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6175320"></a>DB_SECONDARY_BAD</h4> </div> </div> </div> <p> A secondary index references a nonexistent primary key. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6155448"></a>EACCES</h4> </div> </div> </div> <p> An attempt was made to modify a read-only database. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6155856"></a>EINVAL</h4> </div> </div> </div> <p> If the cursor has not been initialized; or if an invalid flag value or parameter was specified. </p> </div> <div class="sect3" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h4 class="title"><a id="idp6156312"></a>EPERM</h4> </div> </div> </div> <p> Write attempted on read-only cursor when the <a class="link" href="envopen.html#envopen_DB_INIT_CDB">DB_INIT_CDB</a> flag was specified to <a class="xref" href="envopen.html" title="DbEnv::open()">DbEnv::open()</a>. </p> </div> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp6161760"></a>Class</h3> </div> </div> </div> <p> <a class="link" href="dbc.html" title="Chapter 3. The Dbc Handle">Dbc</a> </p> </div> <div class="sect2" lang="en" xml:lang="en"> <div class="titlepage"> <div> <div> <h3 class="title"><a id="idp6159632"></a>See Also</h3> </div> </div> </div> <p> <a class="xref" href="dbc.html#dbclist" title="Database Cursors and Related Methods">Database Cursors 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="dbccount.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="dbc.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="dbcdup.html">Next</a></td> </tr> <tr> <td width="40%" align="left" valign="top">Dbc::count() </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Dbc::dup()</td> </tr> </table> </div> </body> </html>