# Poco::Data::SQLite

# class SQLiteStatementImpl

Library: Data/SQLite
Package: SQLite
Header: Poco/Data/SQLite/SQLiteStatementImpl.h

## Description

Implements statement functionality needed for SQLite

## Inheritance

Direct Base Classes: Poco::Data::StatementImpl

All Base Classes: Poco::Data::StatementImpl

## Member Summary

Member Functions: affectedRowCount, bindImpl, binder, canBind, canCompile, columnsReturned, compileImpl, extractor, hasNext, metaColumn, next

Inherited Functions: activateNextDataSet, activatePreviousDataSet, add, addBind, addExtract, affectedRowCount, bindImpl, binder, bindings, canBind, canCompile, columnsExtracted, columnsReturned, compileImpl, currentDataSet, dataSetCount, execDirectImpl, execute, executeDirect, extractionCount, extractionLimit, extractions, extractor, fixupBinding, fixupExtraction, getExtractionLimit, getState, getStorage, hasMoreDataSets, hasNext, isStoredProcedure, makeExtractors, metaColumn, next, removeBind, reset, resetBinding, rowsExtracted, session, setExtractionLimit, setStorage, subTotalRowCount, toString

## Constructors

### SQLiteStatementImpl

SQLiteStatementImpl(
Poco::Data::SessionImpl & rSession,
sqlite3 * pDB
);

Creates the SQLiteStatementImpl.

## Destructor

### ~SQLiteStatementImpl

~SQLiteStatementImpl() override;

Destroys the SQLiteStatementImpl.

## Member Functions

### affectedRowCount

int affectedRowCount() const override;

Returns the number of affected rows. Used to find out the number of rows affected by insert, delete or update. All changes are counted, even if they are later undone by a ROLLBACK or ABORT. Changes associated with creating and dropping tables are not counted.

See also: Poco::Data::StatementImpl::affectedRowCount()

### bindImpl

void bindImpl() override;

Binds parameters

See also: Poco::Data::StatementImpl::bindImpl()

### binder

AbstractBinding::BinderPtr binder() override;

Returns the concrete binder used by the statement.

See also: Poco::Data::StatementImpl::binder()

### canBind

bool canBind() const override;

Returns true if a valid statement is set and we can bind.

See also: Poco::Data::StatementImpl::canBind()

### canCompile

bool canCompile() const override;

Returns true if statement can compile.

See also: Poco::Data::StatementImpl::canCompile()

### columnsReturned

std::size_t columnsReturned() const override;

Returns number of columns returned by query.

See also: Poco::Data::StatementImpl::columnsReturned()

### compileImpl

void compileImpl() override;

Compiles the statement, doesn't bind yet. Returns true if the statement was succesfully compiled. The way SQLite handles batches of statmeents is by compiling one at a time and returning a pointer to the next one. The remainder of the statement is kept in a string buffer pointed to by _pLeftover member.

See also: Poco::Data::StatementImpl::compileImpl()

### extractor

AbstractExtraction::ExtractorPtr extractor() override;

Returns the concrete extractor used by the statement.

See also: Poco::Data::StatementImpl::extractor()

### hasNext

bool hasNext() override;

Returns true if a call to next() will return data.

See also: Poco::Data::StatementImpl::hasNext()

### metaColumn

const MetaColumn & metaColumn(
std::size_t pos
) const override;

Returns column meta data.

See also: Poco::Data::StatementImpl::metaColumn()

### next

std::size_t next() override;

Retrieves the next row from the resultset and returns 1. Will throw, if the resultset is empty.

See also: Poco::Data::StatementImpl::next()