Public Member Functions
psql::Statement< BindTypes, RetTypes, CopyTypes > Class Template Reference

Class representing an executable sql statement. More...

#include <Statement.h>

Inheritance diagram for psql::Statement< BindTypes, RetTypes, CopyTypes >:
psql::IStatement

Public Member Functions

 Statement ()
 Constructs an empty statement.
 Statement (std::string const &sql, Database &db)
 Constructs a statement representing sql query.
 Statement (std::string const &name, std::string const &sql, Database &db)
 Constructs a server side prepared statement.
 ~Statement ()
Statementoperator= (Statement const &)
 Statement (Statement< BindTypes, RetTypes, CopyTypes > const &)
Statementoperator= (Statement &&other)
 Move assignment.
 Statement (Statement &&other)
 Move construction.
template<typename... Args>
void execute (Args...args)
 Execute the query.
RetTypes::RowType get_row (int row)
int row_count ()
int64_t affected_rows ()
bool copying ()
void end_copy ()
 Finish copying into the database.
template<typename... Args>
void copy_data (Args...args)
 Copy row into database.
std::string get_sql () const

Detailed Description

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
class psql::Statement< BindTypes, RetTypes, CopyTypes >

Class representing an executable sql statement.

BindTypes, RetTypes and CopyTypes specify types to be used as arguments to the query, the types of rows returned and types of rows to copy into database if the query initiates copying respectively.

Definition at line 51 of file Statement.h.


Constructor & Destructor Documentation

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::Statement ( ) [inline]

Constructs an empty statement.

Definition at line 63 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::Statement ( std::string const &  sql,
Database db 
) [inline]

Constructs a statement representing sql query.

Parameters:
sqlquery to execute
dbconnection to use

Definition at line 76 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::Statement ( std::string const &  name,
std::string const &  sql,
Database db 
) [inline]

Constructs a server side prepared statement.

Parameters:
namename of the statement
sqlquery to execute
dbconnection to use

Definition at line 92 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::~Statement ( ) [inline]

Definition at line 104 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::Statement ( Statement< BindTypes, RetTypes, CopyTypes > const &  )
template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
psql::Statement< BindTypes, RetTypes, CopyTypes >::Statement ( Statement< BindTypes, RetTypes, CopyTypes > &&  other) [inline]

Move construction.

Parameters:
other

Definition at line 147 of file Statement.h.


Member Function Documentation

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
int64_t psql::Statement< BindTypes, RetTypes, CopyTypes >::affected_rows ( ) [inline]
Returns:
number of rows affected by executing the statement

Definition at line 206 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
template<typename... Args>
void psql::Statement< BindTypes, RetTypes, CopyTypes >::copy_data ( Args...  args) [inline]

Copy row into database.

The statement has to be executed before this is called and it has to initiate copying.

Parameters:
args

Definition at line 250 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
bool psql::Statement< BindTypes, RetTypes, CopyTypes >::copying ( ) [inline]
Returns:
whether statement execution started data copying into the database

Definition at line 220 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
void psql::Statement< BindTypes, RetTypes, CopyTypes >::end_copy ( ) [inline]

Finish copying into the database.

Definition at line 228 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
template<typename... Args>
void psql::Statement< BindTypes, RetTypes, CopyTypes >::execute ( Args...  args) [inline]

Execute the query.

Args need to correspond to supplied BindTypes

Parameters:
argsarguments to query

Definition at line 161 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
RetTypes::RowType psql::Statement< BindTypes, RetTypes, CopyTypes >::get_row ( int  row) [inline]
Parameters:
rowzero based index of row to retrieve
Returns:
row from result with given index

Definition at line 182 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
std::string psql::Statement< BindTypes, RetTypes, CopyTypes >::get_sql ( ) const [inline]
Returns:
sql query used to initialize this Statement

Definition at line 259 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
Statement& psql::Statement< BindTypes, RetTypes, CopyTypes >::operator= ( Statement< BindTypes, RetTypes, CopyTypes > const &  )
template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
Statement& psql::Statement< BindTypes, RetTypes, CopyTypes >::operator= ( Statement< BindTypes, RetTypes, CopyTypes > &&  other) [inline]

Move assignment.

Parameters:
other
Returns:
*this

Definition at line 124 of file Statement.h.

template<typename BindTypes, typename RetTypes, typename CopyTypes = CopyTypes<>>
int psql::Statement< BindTypes, RetTypes, CopyTypes >::row_count ( ) [inline]
Returns:
number of rows in result set

Definition at line 193 of file Statement.h.


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines