Logo Search packages:      
Sourcecode: db4.2 version File versions  Download package

int com::sleepycat::db::Db::put ( DbTxn  txnid,
Dbt  key,
Dbt  data,
int  flags 
) throws DbException [inline]

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.

Parameters:
flags must be set to 0 or one of the following values:
  • Db.DB_APPEND

    Append the key/data pair to the end of the database. For the Db.DB_APPEND flag to be specified, the underlying database must be a Queue or Recno database. The record number allocated to the record is returned in the specified key .

    There is a minor behavioral difference between the Recno and Queue access methods for the Db.DB_APPEND flag. If a transaction enclosing a Db.put operation with the Db.DB_APPEND flag aborts, the record number may be decremented (and later reallocated by a subsequent Db.DB_APPEND operation) by the Recno access method, but will not be decremented or reallocated by the Queue access method.

  • Db.DB_NODUPDATA

    In the case of the Btree and Hash access methods, enter the new key/data pair only if it does not already appear in the database.

    The Db.DB_NODUPDATA flag may only be specified if the underlying database has been configured to support sorted duplicates. The Db.DB_NODUPDATA flag may not be specified to the Queue or Recno access methods.

  • Db.DB_NOOVERWRITE

    Enter the new key/data pair only if the key does not already appear in the database. The Db.put method call with the Db.DB_NOOVERWRITE flag set will fail if the key already exists in the database, even if the database supports duplicates.

In addition, the following flag may be set by bitwise inclusively OR 'ing it into the flags parameter:
  • Db.DB_AUTO_COMMIT

    Enclose the Db.put call within a transaction. If the call succeeds, changes made by the operation will be recoverable. If the call fails, the operation will have made no changes.

Parameters:
data The data Dbt operated on.
key The key Dbt operated on.
txnid If the operation is to be transaction-protected, (other than by specifying the Db.DB_AUTO_COMMIT flag), the txnid parameter is a transaction handle returned from DbEnv.txnBegin; otherwise, null.
Exceptions:
DbException The Db.put method may fail and throw DbException, encapsulating one of the following non-zero errors: An attempt was made to modify a read-only database. A btree exceeded the maximum btree depth (255).
DbDeadlockException If a transactional database environment operation was selected to resolve a deadlock, the Db.put method will fail and throw a DbDeadlockException exception.
DbLockNotGrantedException If a Berkeley DB Concurrent Data Store database environment configured for lock timeouts was unable to grant a lock in the allowed time, the Db.put method will fail and throw a DbLockNotGrantedException exception.
IllegalArgumentException The Db.put method will fail and throw a IllegalArgumentException exception if 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; or if an invalid flag value or parameter was specified.
Returns:
Unless otherwise specified, the Db.put method throws an exception that encapsulates a non-zero error value on failure.

Definition at line 4895 of file Db.java.

Referenced by com::sleepycat::bdb::DataDb::put().

                                                                                 {
        return db_javaJNI.Db_put(swigCPtr, DbTxn.getCPtr(txnid), key, data, flags);
    }


Generated by  Doxygen 1.6.0   Back to index