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);