db put
Prev | Chapter 1. Berkeley DB Tcl APIs | Next

## db put

    db put
    	-append
    	[-partial {doff dlen}]
    	[-txn txnid]
    	data

    db put
    	[-nooverwrite]
    	[-partial {doff dlen}]
    	[-txn txnid]
    	key data

The db put command stores the specified key/data pair into the database.

The options are as follows:

- -append

  Append the data item to the end of the database. For the -append option to be specified, the underlying database must be a Queue or Recno database. The record number allocated to the record is returned on success.

- -nooverwrite

  Enter the new key/data pair only if the key does not already appear in the database.

- -partial {doff dlen}

  The dlen bytes starting doff bytes from the beginning of the specified key's data record are replaced by the data specified by the data and size structure elements. If dlen is smaller than the length of the supplied data, the record will grow; if dlen is larger than the length of the supplied data, the record will shrink. If the specified bytes do not exist, the record will be extended using nul bytes as necessary, and the db put call will succeed.

  It is an error to attempt a partial put using the db put command in a database that supports duplicate records. Partial puts in databases supporting duplicate records must be done using a dbc put command.

  It is an error to attempt a partial put with differing dlen and supplied data length values in Queue or Recno databases with fixed-length records.

- -txn txnid

  If the operation is part of an application-specified transaction, the txnid parameter is a transaction handle returned from env txn. If no transaction handle is specified, but the operation occurs in a transactional database, the operation will be implicitly transaction protected.

The db put command returns either 0 or a record number for success (the record number is returned if the -append option was specified). If an error occurs, a Berkeley DB error message is returned or a Tcl error is thrown.

If the underlying database is a Queue or Recno database, then the given key will be interpreted by Tcl as an integer. For all other database types, the key is interpreted by Tcl as a byte array.

Prev | Up | Next
berkdb open | Home | berkdb dbremove