libpqxx  3.1.1
pqxx::tablereader Class Reference

Efficiently pull data directly out of a table. More...

#include <tablereader.hxx>

Inheritance diagram for pqxx::tablereader:
pqxx::tablestream pqxx::internal::transactionfocus pqxx::internal::namedclass

Public Member Functions

 tablereader (transaction_base &, const std::string &Name, const std::string &Null=std::string())
template<typename ITER >
 tablereader (transaction_base &, const std::string &Name, ITER begincolumns, ITER endcolumns)
 Read only the given sequence of columns.
template<typename ITER >
 tablereader (transaction_base &, const std::string &Name, ITER begincolumns, ITER endcolumns, const std::string &Null)
 ~tablereader () throw ()
template<typename TUPLE >
tablereaderoperator>> (TUPLE &)
 operator bool () const throw ()
bool operator! () const throw ()
bool get_raw_line (std::string &Line)
 Read a line of raw, unparsed table data.
template<typename TUPLE >
void tokenize (std::string, TUPLE &) const
virtual void complete ()
 Finish stream action, check for errors, and detach from transaction.
- Public Member Functions inherited from pqxx::tablestream
 tablestream (transaction_base &Trans, const std::string &Null=std::string())
virtual ~tablestream ()=0 throw ()
- Public Member Functions inherited from pqxx::internal::transactionfocus
 transactionfocus (transaction_base &t)
- Public Member Functions inherited from pqxx::internal::namedclass
 namedclass (const std::string &Classname, const std::string &Name="")
const std::string & name () const throw ()
const std::string & classname () const throw ()
std::string description () const

Additional Inherited Members

- Protected Member Functions inherited from pqxx::tablestream
const std::string & NullStr () const
bool is_finished () const throw ()
void base_close ()
- Static Protected Member Functions inherited from pqxx::tablestream
template<typename ITER >
static std::string columnlist (ITER colbegin, ITER colend)
 Construct a comma-separated column list from given sequence.
- Protected Attributes inherited from pqxx::internal::transactionfocus
transaction_basem_Trans

Detailed Description

Efficiently pull data directly out of a table.

A tablereader provides efficient read access to a database table. This is not as flexible as a normal query using the result class however:

  • Can only dump tables, not views or arbitrary queries
  • Has no knowledge of metadata
  • Is unable to reorder, rename, omit or enrich fields
  • Does not support filtering of records

On the other hand, it can read rows of data and transform them into any container or container-like object that supports STL back-inserters. Since the tablereader has no knowledge of the types of data expected, it treats all fields as strings.

Constructor & Destructor Documentation

pqxx::tablereader::tablereader ( transaction_base T,
const std::string &  Name,
const std::string &  Null = std::string() 
)
template<typename ITER >
pqxx::tablereader::tablereader ( transaction_base T,
const std::string &  Name,
ITER  begincolumns,
ITER  endcolumns 
)

Read only the given sequence of columns.

Since
PostgreSQL backend 7.3

References pqxx::tablestream::columnlist().

template<typename ITER >
pqxx::tablereader::tablereader ( transaction_base T,
const std::string &  Name,
ITER  begincolumns,
ITER  endcolumns,
const std::string &  Null 
)
pqxx::tablereader::~tablereader ( ) throw ()

Member Function Documentation

void pqxx::tablereader::complete ( )
virtual

Finish stream action, check for errors, and detach from transaction.

It is recommended that you call this function before the tablestream's destructor is run. This function will check any final errors which may not become apparent until the transaction is committed otherwise.

As an added benefit, this will free up the transaction while the tablestream object itself still exists.

Implements pqxx::tablestream.

bool pqxx::tablereader::get_raw_line ( std::string &  Line)

Read a line of raw, unparsed table data.

Parameters
LineVariable to hold the raw data line read from the table.
Returns
Whether a line could be read

Referenced by pqxx::tablewriter::operator<<().

pqxx::tablereader::operator bool ( ) const throw ()
bool pqxx::tablereader::operator! ( ) const throw ()
template<typename TUPLE >
tablereader & pqxx::tablereader::operator>> ( TUPLE &  T)
template<typename TUPLE >
void pqxx::tablereader::tokenize ( std::string  Line,
TUPLE &  T 
) const

The documentation for this class was generated from the following files: