# Poco::Data::ODBC

# class Binder

Library: Data/ODBC
Package: ODBC
Header: Poco/Data/ODBC/Binder.h

## Description

Binds placeholders in the sql query to the provided values. Performs data types mapping.

## Inheritance

Direct Base Classes: Poco::Data::AbstractBinder

All Base Classes: Poco::Data::AbstractBinder

## Member Summary

Member Functions: bind, getDataBinding, parameterSize, reset, setDataBinding, synchronize

Inherited Functions: bind, isInBound, isOutBound, reset, reverseTranscode, toString, transcode, transcodeRequired

## Types

### Direction

typedef AbstractBinder::Direction Direction;

### ParamMap

typedef std::map < SQLPOINTER, SQLLEN > ParamMap;

## Enumerations

### ParameterBinding

PB_IMMEDIATE

PB_AT_EXEC

## Constructors

### Binder

Binder(
const StatementHandle & rStmt,
std::size_t maxFieldSize,
ParameterBinding dataBinding = PB_IMMEDIATE,
const TypeInfo * pDataTypes = nullptr,
Poco::TextEncoding::Ptr pFromEncoding = nullptr,
Poco::TextEncoding::Ptr pDBEncoding = nullptr
);

Creates the Binder.

## Destructor

### ~Binder

~Binder() override;

Destroys the Binder.

## Member Functions

### bind

void bind(
std::size_t pos,
const Poco::Int8 & val,
Direction dir
) override;

Binds an Int8.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::Int8 > & val,
Direction dir
) override;

Binds an Int8 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::Int8 > & val,
Direction dir
) override;

Binds an Int8 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::Int8 > & val,
Direction dir
) override;

Binds an Int8 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::UInt8 & val,
Direction dir
) override;

Binds an UInt8.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::UInt8 > & val,
Direction dir
) override;

Binds an UInt8 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::UInt8 > & val,
Direction dir
) override;

Binds an UInt8 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::UInt8 > & val,
Direction dir
) override;

Binds an UInt8 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::Int16 & val,
Direction dir
) override;

Binds an Int16.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::Int16 > & val,
Direction dir
) override;

Binds an Int16 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::Int16 > & val,
Direction dir
) override;

Binds an Int16 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::Int16 > & val,
Direction dir
) override;

Binds an Int16 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::UInt16 & val,
Direction dir
) override;

Binds an UInt16.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::UInt16 > & val,
Direction dir
) override;

Binds an UInt16 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::UInt16 > & val,
Direction dir
) override;

Binds an UInt16 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::UInt16 > & val,
Direction dir
) override;

Binds an UInt16 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::Int32 & val,
Direction dir
) override;

Binds an Int32.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::Int32 > & val,
Direction dir
) override;

Binds an Int32 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::Int32 > & val,
Direction dir
) override;

Binds an Int32 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::Int32 > & val,
Direction dir
) override;

Binds an Int32 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::UInt32 & val,
Direction dir
) override;

Binds an UInt32.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::UInt32 > & val,
Direction dir
) override;

Binds an UInt32 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::UInt32 > & val,
Direction dir
) override;

Binds an UInt32 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::UInt32 > & val,
Direction dir
) override;

Binds an UInt32 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::Int64 & val,
Direction dir
) override;

Binds an Int64.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::Int64 > & val,
Direction dir
) override;

Binds an Int64 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::Int64 > & val,
Direction dir
) override;

Binds an Int64 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::Int64 > & val,
Direction dir
) override;

Binds an Int64 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Poco::UInt64 & val,
Direction dir
) override;

Binds an UInt64.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::UInt64 > & val,
Direction dir
) override;

Binds an UInt64 vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Poco::UInt64 > & val,
Direction dir
) override;

Binds an UInt64 deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Poco::UInt64 > & val,
Direction dir
) override;

Binds an UInt64 list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const bool & val,
Direction dir
) override;

Binds a boolean.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < bool > & val,
Direction dir
) override;

Binds a boolean vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < bool > & val,
Direction dir
) override;

Binds a boolean deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < bool > & val,
Direction dir
) override;

Binds a boolean list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const float & val,
Direction dir
) override;

Binds a float.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < float > & val,
Direction dir
) override;

Binds a float vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < float > & val,
Direction dir
) override;

Binds a float deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < float > & val,
Direction dir
) override;

Binds a float list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const double & val,
Direction dir
) override;

Binds a double.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < double > & val,
Direction dir
) override;

Binds a double vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < double > & val,
Direction dir
) override;

Binds a double deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < double > & val,
Direction dir
) override;

Binds a double list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const char & val,
Direction dir
) override;

Binds a single character.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < char > & val,
Direction dir
) override;

Binds a character vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < char > & val,
Direction dir
) override;

Binds a character deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < char > & val,
Direction dir
) override;

Binds a character list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::string & val,
Direction dir
) override;

Binds a string.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < std::string > & val,
Direction dir
) override;

Binds a string vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < std::string > & val,
Direction dir
) override;

Binds a string deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < std::string > & val,
Direction dir
) override;

Binds a string list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const UTF16String & val,
Direction dir
) override;

Binds a string.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < UTF16String > & val,
Direction dir
) override;

Binds a string vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < UTF16String > & val,
Direction dir
) override;

Binds a string deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < UTF16String > & val,
Direction dir
) override;

Binds a string list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const BLOB & val,
Direction dir
) override;

Binds a BLOB. In-bound only.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const CLOB & val,
Direction dir
) override;

Binds a CLOB. In-bound only.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < BLOB > & val,
Direction dir
) override;

Binds a BLOB vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < BLOB > & val,
Direction dir
) override;

Binds a BLOB deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < BLOB > & val,
Direction dir
) override;

Binds a BLOB list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < CLOB > & val,
Direction dir
) override;

Binds a CLOB vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < CLOB > & val,
Direction dir
) override;

Binds a CLOB deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < CLOB > & val,
Direction dir
) override;

Binds a CLOB list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Date & val,
Direction dir
) override;

Binds a Date.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Date > & val,
Direction dir
) override;

Binds a Date vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Date > & val,
Direction dir
) override;

Binds a Date deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Date > & val,
Direction dir
) override;

Binds a Date list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const Time & val,
Direction dir
) override;

Binds a Time.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Time > & val,
Direction dir
) override;

Binds a Time vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < Time > & val,
Direction dir
) override;

Binds a Time deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < Time > & val,
Direction dir
) override;

Binds a Time list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const DateTime & val,
Direction dir
) override;

Binds a DateTime.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < DateTime > & val,
Direction dir
) override;

Binds a DateTime vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < DateTime > & val,
Direction dir
) override;

Binds a DateTime deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < DateTime > & val,
Direction dir
) override;

Binds a DateTime list.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const UUID & val,
Direction dir
) override;

Binds a UUID.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < Poco::UUID > & val,
Direction dir
) override;

Binds a UUID vector.

### bind

void bind(
std::size_t pos,
const std::deque < Poco::UUID > & val,
Direction dir
) override;

Binds a UUID deque.

### bind

void bind(
std::size_t pos,
const std::list < Poco::UUID > & val,
Direction dir
) override;

Binds a UUID list.

### bind

void bind(
std::size_t pos,
const NullData & val,
Direction dir
) override;

Binds a null. In-bound only.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::vector < NullData > & val,
Direction dir
) override;

Binds a null vector.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::deque < NullData > & val,
Direction dir
) override;

Binds a null deque.

See also: Poco::Data::AbstractBinder::bind()

### bind

void bind(
std::size_t pos,
const std::list < NullData > & val,
Direction dir
) override;

Binds a null list.

See also: Poco::Data::AbstractBinder::bind()

### bind

template < typename T > void bind(
std::size_t pos,
const std::vector < Nullable < T >> & val,
Direction dir
);

Binds a nullable vector.

### bind

template < typename T > void bind(
std::size_t pos,
const std::deque < Nullable < T >> & val,
Direction dir
);

Binds a nullable deque.

### bind

template < typename T > void bind(
std::size_t pos,
const std::list < Nullable < T >> & val,
Direction dir
);

Binds a nullable list.

### getDataBinding

ParameterBinding getDataBinding() const;

Return data binding type.

### parameterSize

std::size_t parameterSize(
SQLPOINTER pAddr
) const;

Returns bound data size for parameter at specified position.

### reset

void reset() override;

Clears the cached storage.

See also: Poco::Data::AbstractBinder::reset()

### setDataBinding

void setDataBinding(
ParameterBinding binding
);

Set data binding type.

### synchronize

void synchronize();

Transfers the results of non-POD outbound parameters from internal holders back into the externally supplied buffers.

## Variables

### DEFAULT_PARAM_SIZE

static const size_t DEFAULT_PARAM_SIZE = 1024;