### Bulk Retrieval API

`

###

    #include <db_cxx.h>

    class DbMultipleDataIterator
    {
    public:
    	DbMultipleDataIterator(const Dbt &dbt);

    	bool next(Dbt &data);
    };

    class DbMultipleKeyDataIterator
    {
    public:
    	DbMultipleKeyDataIterator(const Dbt &dbt);

    	bool next(Dbt &key, Dbt &data);
    };

    class DbMultipleRecnoDataIterator
    {
    public:
    	DbMultipleRecnoDataIterator(const Dbt &dbt);

    	bool next(db_recno_t &key, Dbt &data);
    };

### Description: Bulk Retrieval API

If either of the DB_MULTIPLE or DB_MULTIPLE_KEY flags were specified to the Db::get or Dbc::get method, the data Dbt returned by those interfaces will refer to a buffer that is filled with data. Access to that data is through the following classes.

All instances of the bulk retrieval classes may be used only once, and to traverse the bulk retrieval buffer in the forward direction only. However, they are nondestructive, so multiple iterators can be instantiated and used on the same returned data Dbt.

### Description: DbMultipleIterator

The DbMultipleIterator is a shared package-private base class for the three types of bulk-return Iterator; it should never be instantiated directly, but it handles the functionality shared by its subclasses.

### Description: DbMultipleDataIterator

The DbMultipleDataIterator class is used to iterate through data returned using the DB_MULTIPLE flag from a database belonging to any access method.

The constructor takes the data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE flag.

### Parameters

dbt
  The dbt parameter is a data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE flag.

### Description: DbMultipleDataIterator.next

The DbMultipleDataIterator.next method takes a Dbt that will be filled in with a reference to a buffer, a size, and an offset that together yield the next data item in the original bulk retrieval buffer.

The DbMultipleDataIterator.next method returns false if no more data are available, and true otherwise.

### Parameters

data
  The data parameter is a Dbt that will be filled in with a reference to a buffer, a size, and an offset that together yield the next data item in the original bulk retrieval buffer.

### Description: DbMultipleKeyDataIterator

The DbMultipleKeyDataIterator class is used to iterate through data returned using the DB_MULTIPLE_KEY flag from a database belonging to the Btree or Hash access methods.

The constructor takes the data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE_KEY flag.

### Parameters

dbt
  The dbt parameter is a data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE_KEY flag.

### Description: DbMultipleKeyDataIterator.next

The DbMultipleKeyDataIterator.next method takes two Dbts, one for a key and one for a data item, that will each be filled in with a reference to a buffer, a size, and an offset that together yield the next key and data item in the original bulk retrieval buffer. The DbMultipleKeyDataIterator.next method returns false if no more data are available, and true otherwise.

The DbMultipleKeyDataIterator.next method returns false if no more data are available, and true otherwise.

### Parameters

key
  The key parameter will be filled in with a reference to a buffer, a size, and an offset that yields the next key item in the original bulk retrieval buffer.

data
  The data parameter will be filled in with a reference to a buffer, a size, and an offset that yields the next data item in the original bulk retrieval buffer.

### Description: DbMultipleRecnoDataIterator

This class is used to iterate through data returned using the DB_MULTIPLE_KEY flag from a database belonging to the Recno or Queue access methods.

The constructor takes the data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE_KEY flag.

### Parameters

dbt
  The dbt parameter is a data Dbt returned by the call to Db::get or Dbc::get that used the DB_MULTIPLE_KEY flag.

### Description: DbMultipleRecnoDataIterator.next

The DbMultipleRecnoDataIterator.next method takes a db_recno_t for the key and a Dbt for a data item, which will be filled in with a pointer to a buffer and a size. Together they yield the next key and data item in the original bulk retrieval buffer.

The DbMultipleRecnoDataIterator.next method returns false if no more data are available, and true otherwise.

### Parameters

key
  The key parameter will be filled in with a reference to a buffer, a size, and an offset that yields the next key item in the original bulk retrieval buffer.

data
  The data parameter will be filled in with a reference to a buffer, a size, and an offset that yields the next data item in the original bulk retrieval buffer.

`

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.