# Poco

# namespace Data

## Overview

Namespaces: MySQL, ODBC, SQLite

Classes: AbstractBinder, AbstractBinding, AbstractExtraction, AbstractExtractor, AbstractPreparation, AbstractPrepare, AbstractSessionImpl, BLOB, BLOBIOS, BLOBInputStream, BLOBOutputStream, BLOBStreamBuf, Binding, BindingException, Column, Connector, DataException, ExecutionException, ExtractException, Extraction, InternalExtraction, Limit, LimitException, MetaColumn, NotImplementedException, NotSupportedException, PooledSessionHolder, PooledSessionImpl, Prepare, Range, RecordSet, RowDataMissingException, Session, SessionFactory, SessionImpl, SessionPool, SessionPoolExhaustedException, SessionUnavailableException, Statement, StatementCreator, StatementImpl, TypeHandler, UnknownDataBaseException, UnknownTypeException

Types: AbstractBindingPtr, AbstractBindingVec, AbstractExtractionPtr, AbstractExtractionVec

Functions: into, limit, lowerLimit, now, operator [], range, tupleBind, tupleExtract, tuplePrepare, upperLimit, use

## Namespaces

### namespace MySQL

### namespace ODBC

### namespace SQLite

## Classes

### class AbstractBinder

Interface for Binding data types to placeholders.

### class AbstractBinding

AbstractBinding connects a value with a placeholder via an AbstractBinder interface.

### class AbstractExtraction

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

### class AbstractExtractor

Interface used to extract data from a single result row.

### class AbstractPreparation

Interface used for database preparation where we first have to register all data types (and memory output locations) before extracting data, i.

### class AbstractPrepare

Interface for calling the appropriate AbstractPreparation method

### class AbstractSessionImpl

A partial implementation of SessionImpl, providing features and properties management.

### class BLOB

Representation of a Binary Large OBject.

### class BLOBIOS

The base class for BLOBInputStream and BLOBOutputStream.

### class BLOBInputStream

An input stream for reading from a BLOB.

### class BLOBOutputStream

An output stream for writing to a BLOB.

### class BLOBStreamBuf

This is the streambuf class used for reading from and writing to a BLOB.

### class Binding

A Binding maps a value to a column.

### class BindingException

### class Column

Column class is column data container.

### class Connector

A Connector creates SessionImpl objects.

### class DataException

### class ExecutionException

### class ExtractException

### class Extraction

Concrete Data Type specific extraction of values from a query result set.

### class InternalExtraction

Vector Data Type specialization for extraction of values from a query result set.

### class Limit

Limit stores information how many rows a query should return.

### class LimitException

### class MetaColumn

MetaColumn class contains column metadata information.

### class NotImplementedException

### class NotSupportedException

### class PooledSessionHolder

This class is used by SessionPool to manage SessionImpl objects.

### class PooledSessionImpl

PooledSessionImpl is a decorator created by SessionPool that adds session pool management to SessionImpl objects.

### class Prepare

Class for calling the appropriate AbstractPreparation method.

### class Range

Range stores information how many rows a query should return.

### class RecordSet

RecordSet provides access to data returned from a query.

### class RowDataMissingException

### class Session

A Session holds a connection to a Database and creates Statement objects.

### class SessionFactory

A SessionFactory is a singleton class that stores Connectors and allows to create Sessions of the required type: Session ses(SessionFactory::instance().

### class SessionImpl

Interface for Session functionality that subclasses must extend.

### class SessionPool

This class implements session pooling for POCO Data.

### class SessionPoolExhaustedException

### class SessionUnavailableException

### class Statement

A Statement is used to execute SQL statements.

### class StatementCreator

A StatementCreator creates Statements.

### class StatementImpl

StatementImpl interface that subclasses must implement to define database dependent query execution.

### class TypeHandler

Converts Rows to a Type and the other way around.

### class UnknownDataBaseException

### class UnknownTypeException

## Types

### AbstractBindingPtr

typedef Poco::AutoPtr < AbstractBinding > AbstractBindingPtr;

### AbstractBindingVec

typedef std::vector < AbstractBindingPtr > AbstractBindingVec;

### AbstractExtractionPtr

typedef Poco::AutoPtr < AbstractExtraction > AbstractExtractionPtr;

### AbstractExtractionVec

typedef std::vector < AbstractExtractionPtr > AbstractExtractionVec;

## Functions

### into

template < typename T > Extraction < T > * into(
T & t
);

Set Data Type specialization for extraction of values from a query result set. Multiset Data Type specialization for extraction of values from a query result set. Map Data Type specialization for extraction of values from a query result set. Multimap Data Type specialization for extraction of values from a query result set. Convenience function to allow for a more compact creation of a default extraction object

### into

template < typename T > Extraction < T > * into(
T & t,
const T & def
);

Convenience function to allow for a more compact creation of an extraction object with the given default

### limit

template < typename T > Limit limit(
T lim,
bool hard = false
);

Creates an upperLimit

### lowerLimit

template < typename T > Limit lowerLimit(
T lim
);

### now

void now(
Statement & statement
);

### operator []

inline DynamicAny RecordSet::operator[] (
const std::string & name
);

inlines

### operator []

inline DynamicAny RecordSet::operator[] (
std::size_t index
);

### range

template < typename T > Range range(
T low,
T upp,
bool hard = false
);

### tupleBind

template < typename TupleType, typename Type, int N > inline void tupleBind(
std::size_t & pos,
TupleType tuple,
AbstractBinder * pBinder
);

Poco::Tuple TypeHandler specializations

### tupleExtract

template < typename TupleType, typename DefValType, typename Type, int N > inline void tupleExtract(
std::size_t & pos,
TupleType tuple,
DefValType defVal,
AbstractExtractor * pExt
);

### tuplePrepare

template < typename TupleType, typename Type, int N > inline void tuplePrepare(
std::size_t & pos,
TupleType tuple,
AbstractPreparation * pPrepare
);

### upperLimit

template < typename T > Limit upperLimit(
T lim,
bool hard = false
);

### use

template < typename T > Binding < T > * use(
const T & t
);

Specialization for std::vector. Creates the Binding. Destroys the Binding. Specialization for std::set. Creates the Binding. Destroys the Binding. Specialization for std::multiset. Creates the Binding. Destroys the Binding. Specialization for std::map. Creates the Binding. Destroys the Binding. Specialization for std::multimap. Creates the Binding. Destroys the Binding. Convenience function for a more compact Binding creation.