int DB->put(DB *db, DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags);
The DB->put method stores key/data pairs in the database. The default behavior of the DB->put function is to enter the new key/data pair, replacing any previously existing key if duplicates are disallowed, or adding a duplicate data item if duplicates are allowed. If the database supports duplicates, the DB->put method adds the new data value at the end of the duplicate set. If the database supports sorted duplicates, the new data value is inserted at the correct sorted location.
If the operation is to be transaction-protected (other than by specifying the DB_AUTO_COMMIT flag), the txnid parameter is a transaction handle returned from DB_ENV->txn_begin; otherwise, NULL.
The flags value must be set to 0 or one of the following values:
There is a minor behavioral difference between the Recno and Queue access methods for the DB_APPEND flag. If a transaction enclosing a DB->put operation with the DB_APPEND flag aborts, the record number may be decremented (and later reallocated by a subsequent DB_APPEND operation) by the Recno access method, but will not be decremented or reallocated by the Queue access method.
The DB_NODUPDATA flag may not be specified to the Queue or Recno access methods.
In addition, the following flag may be set by bitwise inclusively OR'ing it into the flags parameter:
Otherwise, the DB->put method returns a non-zero error value on failure and 0 on success.
The DB->put method may fail and return a non-zero error for the following conditions:
A record number of 0 was specified.
An attempt was made to add a record to a fixed-length database that was too large to fit.
An attempt was made to do a partial put.
An attempt was made to add a record to a secondary index.
The DB->put method may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions. If a catastrophic error has occurred, the DB->put method may fail and return DB_RUNRECOVERY, in which case all subsequent Berkeley DB calls will fail in the same way.
Copyright Sleepycat Software