To delete a record using a cursor, simply position the cursor to the
record that you want to delete and then call
Dbc::del().
For example:
#include <db_cxx.h>
#include <string.h>
...
char *key1str = "My first string";
Db my_database(NULL, 0);
Dbc *cursorp;
try {
// Database open omitted
// Get the cursor
my_database.cursor(NULL, &cursorp, 0);
// Set up our DBTs
Dbt key(key1str, strlen(key1str) + 1);
Dbt data;
// Iterate over the database, deleting each record in turn.
int ret;
while ((ret = cursorp->get(&key, &data,
DB_SET)) == 0) {
cursorp->del(0);
}
} catch(DbException &e) {
my_database.err(e.get_errno(), "Error!");
} catch(std::exception &e) {
my_database.errx("Error! %s", e.what());
}
// Cursors must be closed
if (cursorp != NULL)
cursorp->close();
my_database.close(0);