pqxx::prepare::invocation Class Reference

Helper class for passing parameters to, and executing, prepared statements. More...

#include <prepared_statement.hxx>

List of all members.

Public Member Functions

 invocation (transaction_base &, const PGSTD::string &statement)
result exec () const
 Execute!
invocationoperator() ()
 Pass null parameter.
template<typename T>
invocationoperator() (const T &v, bool nonnull=true)
 Pass parameter value.
template<typename T>
invocationoperator() (T *v, bool nonnull=true)
 Pass pointer parameter value, or null if pointer is null.
invocationoperator() (const char *v, bool nonnull=true)
 Pass C-style string parameter, or null if pointer is null.


Detailed Description

Helper class for passing parameters to, and executing, prepared statements.


Constructor & Destructor Documentation

pqxx::prepare::invocation::invocation transaction_base ,
const PGSTD::string &  statement
 


Member Function Documentation

pqxx::result pqxx::prepare::invocation::exec  )  const
 

Execute!

invocation& pqxx::prepare::invocation::operator() const char *  v,
bool  nonnull = true
 

Pass C-style string parameter, or null if pointer is null.

This duplicates the pointer-to-template-argument-type version of the operator, but helps compilers with less advanced template implementations disambiguate calls where C-style strings are passed.

template<typename T>
invocation& pqxx::prepare::invocation::operator() T *  v,
bool  nonnull = true
 

Pass pointer parameter value, or null if pointer is null.

Warning:
Be very careful with the special constant NULL! Since NULL in C++ is an int, not a pointer, a value of NULL would cause the wrong version of this template to be invoked. To all intents and purposes it would look like you were trying to pass a regular zero as an integer value, instead of a null string. This is not a problem with pointer variables that may happen to be NULL, since in that case the value's type is not subject to any confusion. So if you know at compile time that you want to pass a null value, use the zero-argument version of this operator; if you don't want to do that, at least add a second argument of false to make clear that you want a null, not a zero.
Parameters:
v parameter value (will be represented as a string internally)
nonnull replaces value with null if set to false

template<typename T>
invocation& pqxx::prepare::invocation::operator() const T &  v,
bool  nonnull = true
 

Pass parameter value.

Parameters:
v parameter value (will be represented as a string internally)
nonnull replaces value with null if set to false

pqxx::prepare::invocation & pqxx::prepare::invocation::operator()  ) 
 

Pass null parameter.


The documentation for this class was generated from the following files:
Generated on Sat May 27 17:35:37 2006 for libpqxx by  doxygen 1.4.6