# Poco::Data

# class AbstractExtractor

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

## Description

Interface used to extract data from a single result row. If an extractor receives null it is not allowed to change val!

## Inheritance

Known Derived Classes: Poco::Data::MySQL::Extractor, Poco::Data::ODBC::Extractor, Poco::Data::PostgreSQL::BinaryExtractor, Poco::Data::PostgreSQL::Extractor, Poco::Data::SQLite::Extractor

## Member Summary

Member Functions: extract, isNull, reset, reverseTranscode, transcode, transcodeRequired

## Types Aliases

### Ptr

using Ptr = SharedPtr < AbstractExtractor >;

## Constructors

### AbstractExtractor

AbstractExtractor(
Poco::TextEncoding::Ptr pDBEncoding = nullptr,
Poco::TextEncoding::Ptr pToEncoding = nullptr
);

Creates the AbstractExtractor.

## Destructor

### ~AbstractExtractor

virtual ~AbstractExtractor();

Destroys the AbstractExtractor.

## Member Functions

### extract

virtual bool extract(
std::size_t pos,
Poco::Int8 & val
) = 0;

Extracts an Int8. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::Int8 > & val
) = 0;

Extracts an Int8 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::Int8 > & val
) = 0;

Extracts an Int8 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::Int8 > & val
) = 0;

Extracts an Int8 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::UInt8 & val
) = 0;

Extracts an UInt8. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::UInt8 > & val
) = 0;

Extracts an UInt8 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::UInt8 > & val
) = 0;

Extracts an UInt8 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::UInt8 > & val
) = 0;

Extracts an UInt8 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::Int16 & val
) = 0;

Extracts an Int16. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::Int16 > & val
) = 0;

Extracts an Int16 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::Int16 > & val
) = 0;

Extracts an Int16 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::Int16 > & val
) = 0;

Extracts an Int16 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::UInt16 & val
) = 0;

Extracts an UInt16. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::UInt16 > & val
) = 0;

Extracts an UInt16 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::UInt16 > & val
) = 0;

Extracts an UInt16 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::UInt16 > & val
) = 0;

Extracts an UInt16 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::Int32 & val
) = 0;

Extracts an Int32. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::Int32 > & val
) = 0;

Extracts an Int32 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::Int32 > & val
) = 0;

Extracts an Int32 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::Int32 > & val
) = 0;

Extracts an Int32 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::UInt32 & val
) = 0;

Extracts an UInt32. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::UInt32 > & val
) = 0;

Extracts an UInt32 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::UInt32 > & val
) = 0;

Extracts an UInt32 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::UInt32 > & val
) = 0;

Extracts an UInt32 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::Int64 & val
) = 0;

Extracts an Int64. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::Int64 > & val
) = 0;

Extracts an Int64 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::Int64 > & val
) = 0;

Extracts an Int64 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::Int64 > & val
) = 0;

Extracts an Int64 list.

### extract

virtual bool extract(
std::size_t pos,
Poco::UInt64 & val
) = 0;

Extracts an UInt64. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::UInt64 > & val
) = 0;

Extracts an UInt64 vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::UInt64 > & val
) = 0;

Extracts an UInt64 deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::UInt64 > & val
) = 0;

Extracts an UInt64 list.

### extract

virtual bool extract(
std::size_t pos,
bool & val
) = 0;

Extracts a boolean. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < bool > & val
) = 0;

Extracts a boolean vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < bool > & val
) = 0;

Extracts a boolean deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < bool > & val
) = 0;

Extracts a boolean list.

### extract

virtual bool extract(
std::size_t pos,
float & val
) = 0;

Extracts a float. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < float > & val
) = 0;

Extracts a float vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < float > & val
) = 0;

Extracts a float deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < float > & val
) = 0;

Extracts a float list.

### extract

virtual bool extract(
std::size_t pos,
double & val
) = 0;

Extracts a double. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < double > & val
) = 0;

Extracts a double vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < double > & val
) = 0;

Extracts a double deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < double > & val
) = 0;

Extracts a double list.

### extract

virtual bool extract(
std::size_t pos,
char & val
) = 0;

Extracts a single character. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < char > & val
) = 0;

Extracts a character vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < char > & val
) = 0;

Extracts a character deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < char > & val
) = 0;

Extracts a character list.

### extract

virtual bool extract(
std::size_t pos,
std::string & val
) = 0;

Extracts a string. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < std::string > & val
) = 0;

Extracts a string vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < std::string > & val
) = 0;

Extracts a string deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < std::string > & val
) = 0;

Extracts a string list.

### extract

virtual bool extract(
std::size_t pos,
UTF16String & val
);

Extracts a UTF16String. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < UTF16String > & val
);

Extracts a UTF16String vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < UTF16String > & val
);

Extracts a UTF16String deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < UTF16String > & val
);

Extracts a UTF16String list.

### extract

virtual bool extract(
std::size_t pos,
BLOB & val
) = 0;

Extracts a BLOB. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
CLOB & val
) = 0;

Extracts a CLOB. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < BLOB > & val
) = 0;

Extracts a BLOB vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < BLOB > & val
) = 0;

Extracts a BLOB deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < BLOB > & val
) = 0;

Extracts a BLOB list.

### extract

virtual bool extract(
std::size_t pos,
std::vector < CLOB > & val
) = 0;

Extracts a CLOB vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < CLOB > & val
) = 0;

Extracts a CLOB deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < CLOB > & val
) = 0;

Extracts a CLOB list.

### extract

virtual bool extract(
std::size_t pos,
DateTime & val
) = 0;

Extracts a DateTime. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < DateTime > & val
) = 0;

Extracts a DateTime vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < DateTime > & val
) = 0;

Extracts a DateTime deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < DateTime > & val
) = 0;

Extracts a DateTime list.

### extract

virtual bool extract(
std::size_t pos,
Date & val
) = 0;

Extracts a Date. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Date > & val
) = 0;

Extracts a Date vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Date > & val
) = 0;

Extracts a Date deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Date > & val
) = 0;

Extracts a Date list.

### extract

virtual bool extract(
std::size_t pos,
Time & val
) = 0;

Extracts a Time. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Time > & val
) = 0;

Extracts a Time vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Time > & val
) = 0;

Extracts a Time deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Time > & val
) = 0;

Extracts a Time list.

### extract

virtual bool extract(
std::size_t pos,
UUID & val
) = 0;

Extracts a UUID. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < UUID > & val
);

Extracts a UUID vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < UUID > & val
);

Extracts a UUID deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < UUID > & val
);

Extracts a UUID list.

### extract

virtual bool extract(
std::size_t pos,
Any & val
) = 0;

Extracts an Any. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Any > & val
) = 0;

Extracts an Any vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Any > & val
) = 0;

Extracts an Any deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Any > & val
) = 0;

Extracts an Any list.

### extract

virtual bool extract(
std::size_t pos,
Poco::Dynamic::Var & val
) = 0;

Extracts a Var. Returns false if null was received.

### extract

virtual bool extract(
std::size_t pos,
std::vector < Poco::Dynamic::Var > & val
) = 0;

Extracts a Var vector.

### extract

virtual bool extract(
std::size_t pos,
std::deque < Poco::Dynamic::Var > & val
) = 0;

Extracts a Var deque.

### extract

virtual bool extract(
std::size_t pos,
std::list < Poco::Dynamic::Var > & val
) = 0;

Extracts a Var list.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::Int8 > & val
);

Extracts a nullable nullable Int8.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::UInt8 > & val
);

Extracts a nullable nullable UInt8.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::Int16 > & val
);

Extracts a nullable nullable Int16.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::UInt16 > & val
);

Extracts a nullable nullable UInt16.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::Int32 > & val
);

Extracts a nullable nullable Int32.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::UInt32 > & val
);

Extracts a nullable nullable UInt32.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::Int64 > & val
);

Extracts a nullable nullable Int64.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::UInt64 > & val
);

Extracts a nullable nullable UInt64.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < bool > & val
);

Extracts a nullable boolean.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < float > & val
);

Extracts a nullable float.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < double > & val
);

Extracts a nullable double.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < char > & val
);

Extracts a nullable single character.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < std::string > & val
);

Extracts a nullable string.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < UTF16String > & val
);

Extracts a nullable UTF16String.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < BLOB > & val
);

Extracts a nullable BLOB.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < CLOB > & val
);

Extracts a nullable CLOB.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < DateTime > & val
);

Extracts a nullable DateTime.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Date > & val
);

Extracts a nullable Date.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Time > & val
);

Extracts a nullable Time.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < UUID > & val
);

Extracts a nullable UUID.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Any > & val
);

Extracts a nullable nullable Any.

### extract

virtual bool extract(
std::size_t pos,
Poco::Nullable < Poco::Dynamic::Var > & val
);

Extracts a nullable Var.

### isNull

virtual bool isNull(
std::size_t col,
std::size_t row = POCO_DATA_INVALID_ROW
) = 0;

Returns true if the value at [col,row] position is null.

### reset

virtual void reset();

Resets any information internally cached by the extractor.

### reverseTranscode

void reverseTranscode(
const std::string & from,
std::string & to
);

### transcode

void transcode(
const std::string & from,
std::string & to
);

### transcodeRequired

bool transcodeRequired() const;