# Poco::Data

# class AbstractExtraction

Library: Data
Package: DataCore
Header: Poco/Data/AbstractExtraction.h

## Description

AbstractExtraction is the interface class that connects output positions to concrete values retrieved via an AbstractExtractor.

## Inheritance

Direct Base Classes: Poco::RefCountedObject

All Base Classes: Poco::RefCountedObject

Known Derived Classes: Extraction

## Member Summary

Member Functions: createPrepareObject, extract, getExtractor, getLimit, numOfColumnsHandled, numOfRowsAllowed, numOfRowsHandled, reset, setExtractor, setLimit

Inherited Functions: duplicate, referenceCount, release

## Constructors

### AbstractExtraction

AbstractExtraction(
Poco::UInt32 limit = Limit::LIMIT_UNLIMITED
);

Creates the AbstractExtraction. A limit value equal to EXTRACT_UNLIMITED (0xffffffffu) means that we extract as much data as possible during one execute. Otherwise the limit value is used to partition data extracting to a limited amount of rows.

## Destructor

### ~AbstractExtraction

virtual ~AbstractExtraction();

Destroys the AbstractExtraction.

## Member Functions

### createPrepareObject

virtual AbstractPrepare * createPrepareObject(
AbstractPreparation * pPrep,
std::size_t pos
) const = 0;

Creates a Prepare object for the etxracting object

### extract

virtual void extract(
std::size_t pos
) = 0;

Extracts a value from the param, starting at the given column position.

### getExtractor

AbstractExtractor * getExtractor() const;

Retrieves the extractor object

### getLimit

Poco::UInt32 getLimit() const;

Gets the limit.

### numOfColumnsHandled

virtual std::size_t numOfColumnsHandled() const = 0;

Returns the number of columns that the extraction handles.

The trivial case will be one single column but when complex types are used this value can be larger than one.

### numOfRowsAllowed

virtual std::size_t numOfRowsAllowed() const = 0;

Returns the upper limit on number of rows that the extraction will handle.

### numOfRowsHandled

virtual std::size_t numOfRowsHandled() const = 0;

Returns the number of rows that the extraction handles.

The trivial case will be one single row but for collection data types (ie vector) it can be larger.

### reset

virtual void reset() = 0;

Resets the etxractor so that it can be re-used.

### setExtractor

void setExtractor(
AbstractExtractor * pExtractor
);

Sets the class used for extracting the data. Does not take ownership of the pointer.

### setLimit

void setLimit(
Poco::UInt32 limit
);

Sets the limit.