libpqxx  3.1.1
pqxx::result Class Reference

Query or command result set. More...

#include <result.hxx>

Inheritance diagram for pqxx::result:
pqxx::internal::PQAlloc< const internal::result_data, internal::freemem_result_data >

Classes

class  const_fielditerator
class  const_iterator
 Iterator for rows (tuples) in a query result set. More...
class  const_reverse_fielditerator
class  const_reverse_iterator
class  field
 Reference to a field in a result set. More...
class  tuple
 Reference to one row in a result. More...

Public Types

typedef unsigned long size_type
typedef signed long difference_type
typedef tuple reference
typedef const_iterator pointer
typedef std::iterator
< std::random_access_iterator_tag,
const tuple,
result::difference_type,
const_iterator, tuple
const_iterator_base
typedef const_iterator iterator
typedef const_reverse_iterator reverse_iterator

Public Member Functions

 result () throw ()
 result (const result &rhs) throw ()
resultoperator= (const result &rhs) throw ()
const_reverse_iterator rbegin () const
const_reverse_iterator rend () const
const_iterator begin () const throw ()
const_iterator end () const throw ()
reference front () const throw ()
reference back () const throw ()
size_type size () const throw ()
bool empty () const throw ()
size_type capacity () const throw ()
void swap (result &) throw ()
const tuple operator[] (size_type i) const throw ()
const tuple at (size_type) const throw (range_error)
void clear () throw ()
const std::string & query () const throw ()
 Query that produced this result, if available (empty string otherwise)
oid inserted_oid () const
 If command was INSERT of 1 row, return oid of inserted row.
size_type affected_rows () const
 If command was INSERT, UPDATE, or DELETE: number of affected rows.
Comparisons
bool operator== (const result &) const throw ()
bool operator!= (const result &rhs) const throw ()
Column information
tuple::size_type columns () const throw ()
 Number of columns in result.
tuple::size_type column_number (const char ColName[]) const
 Number of given column (throws exception if it doesn't exist)
tuple::size_type column_number (const std::string &Name) const
 Number of given column (throws exception if it doesn't exist)
const char * column_name (tuple::size_type Number) const
 Name of column with this number (throws exception if it doesn't exist)
oid column_type (tuple::size_type ColNum) const
 Type of given column.
oid column_type (int ColNum) const
 Type of given column.
oid column_type (const std::string &ColName) const
 Type of given column.
oid column_type (const char ColName[]) const
 Type of given column.
oid column_table (tuple::size_type ColNum) const
 What table did this column come from? Requires PostgreSQL 7.4 C API.
oid column_table (int ColNum) const
 What table did this column come from? Requires PostgreSQL 7.4 C API.
oid column_table (const std::string &ColName) const
 What table did this column come from? Requires PostgreSQL 7.4 C API.
tuple::size_type table_column (tuple::size_type ColNum) const
 What column in its table did this column come from?
tuple::size_type table_column (int ColNum) const
 What column in its table did this column come from?
tuple::size_type table_column (const std::string &ColName) const
 What column in its table did this column come from?

Friends

class pqxx::result::field
class pqxx::internal::gate::result_creation
class pqxx::internal::gate::result_connection
class pqxx::internal::gate::result_sql_cursor

Additional Inherited Members

- Private Types inherited from pqxx::internal::PQAlloc< const internal::result_data, internal::freemem_result_data >
typedef const internal::result_data content_type
- Private Member Functions inherited from pqxx::internal::PQAlloc< const internal::result_data, internal::freemem_result_data >
 PQAlloc () throw ()
 PQAlloc (const PQAlloc &rhs) throw ()
 PQAlloc (const internal::result_data *obj) throw ()
 Assume ownership of a pointer.
 ~PQAlloc () throw ()
PQAllocoperator= (const PQAlloc &rhs) throw ()
void swap (PQAlloc &rhs) throw ()
 operator bool () const throw ()
 Is this pointer non-null?
bool operator! () const throw ()
 Is this pointer null?
const internal::result_dataoperator-> () const throw (std::logic_error)
 Dereference pointer.
const internal::result_dataoperator* () const throw (std::logic_error)
 Dereference pointer.
const internal::result_dataget () const throw ()
 Obtain underlying pointer.
void reset () throw ()

Detailed Description

Query or command result set.

This behaves as a container (as defined by the C++ standard library) and provides random access const iterators to iterate over its tuples. A tuple can also be accessed by indexing a result R by the tuple's zero-based number:

for (result::size_type i=0; i < R.size(); ++i) Process(R[i]);

Result sets in libpqxx are lightweight, reference-counted wrapper objects (following the Proxy design pattern) that are small and cheap to copy. Think of a result object as a "smart pointer" to an underlying result set.

Warning
The result set that a result object points to is not thread-safe. If you copy a result object, it still refers to the same underlying result set. So never copy, destroy, query, or otherwise access a result while another thread may be copying, destroying, querying, or otherwise accessing the same result set–even if it is doing so through a different result object!

Member Typedef Documentation

typedef std::iterator<std::random_access_iterator_tag, const tuple, result::difference_type, const_iterator, tuple> pqxx::result::const_iterator_base
typedef signed long pqxx::result::difference_type
typedef unsigned long pqxx::result::size_type

Constructor & Destructor Documentation

pqxx::result::result ( ) throw ()
pqxx::result::result ( const result rhs) throw ()

Member Function Documentation

pqxx::result::size_type pqxx::result::affected_rows ( ) const

If command was INSERT, UPDATE, or DELETE: number of affected rows.

Returns
Number of affected rows if last command was INSERT, UPDATE, or DELETE; zero for all other commands.

Referenced by pqxx::internal::sql_cursor::move().

const pqxx::result::tuple pqxx::result::at ( size_type  i) const throw (range_error)
reference pqxx::result::back ( ) const throw ()
const_iterator pqxx::result::begin ( ) const throw ()
size_type pqxx::result::capacity ( ) const throw ()
void pqxx::result::clear ( ) throw ()
const char * pqxx::result::column_name ( tuple::size_type  Number) const

Name of column with this number (throws exception if it doesn't exist)

References pqxx::to_string().

pqxx::result::tuple::size_type pqxx::result::column_number ( const char  ColName[]) const

Number of given column (throws exception if it doesn't exist)

Referenced by pqxx::result::tuple::column_number().

tuple::size_type pqxx::result::column_number ( const std::string &  Name) const

Number of given column (throws exception if it doesn't exist)

References column_number().

Referenced by column_number().

oid pqxx::result::column_table ( tuple::size_type  ColNum) const

What table did this column come from? Requires PostgreSQL 7.4 C API.

Only defined if the libpqxx library was compiled against a libpq version that supports the PQftable function.

If you get a link error saying this function is undefined, that must be because libpqxx was compiled against an older version of libpq. The PQftable function first became available in PostgreSQL 7.4.

oid pqxx::result::column_table ( int  ColNum) const

What table did this column come from? Requires PostgreSQL 7.4 C API.

Only defined if the libpqxx library was compiled against a libpq version that supports the PQftable function.

If you get a link error saying this function is undefined, that must be because libpqxx was compiled against an older version of libpq. The PQftable function first became available in PostgreSQL 7.4.

References column_table().

Referenced by column_table().

oid pqxx::result::column_table ( const std::string &  ColName) const

What table did this column come from? Requires PostgreSQL 7.4 C API.

Only defined if the libpqxx library was compiled against a libpq version that supports the PQftable function.

If you get a link error saying this function is undefined, that must be because libpqxx was compiled against an older version of libpq. The PQftable function first became available in PostgreSQL 7.4.

References column_table().

Referenced by column_table().

pqxx::oid pqxx::result::column_type ( tuple::size_type  ColNum) const

Type of given column.

References pqxx::oid_none, and pqxx::to_string().

oid pqxx::result::column_type ( int  ColNum) const

Type of given column.

References column_type().

Referenced by column_type().

oid pqxx::result::column_type ( const std::string &  ColName) const

Type of given column.

References column_type().

Referenced by column_type().

oid pqxx::result::column_type ( const char  ColName[]) const

Type of given column.

References column_type().

Referenced by column_type().

pqxx::result::tuple::size_type pqxx::result::columns ( ) const throw ()

Number of columns in result.

bool pqxx::result::empty ( ) const throw ()
result::const_iterator pqxx::result::end ( ) const throw ()
reference pqxx::result::front ( ) const throw ()
pqxx::oid pqxx::result::inserted_oid ( ) const

If command was INSERT of 1 row, return oid of inserted row.

Returns
Identifier of inserted row if exactly one row was inserted, or oid_none otherwise.
bool pqxx::result::operator!= ( const result rhs) const throw ()
result& pqxx::result::operator= ( const result rhs) throw ()
bool pqxx::result::operator== ( const result rhs) const throw ()
const tuple pqxx::result::operator[] ( size_type  i) const throw ()
const string & pqxx::result::query ( ) const throw ()

Query that produced this result, if available (empty string otherwise)

const_reverse_iterator pqxx::result::rbegin ( ) const
const_reverse_iterator pqxx::result::rend ( ) const
pqxx::result::size_type pqxx::result::size ( ) const throw ()
void pqxx::result::swap ( result rhs) throw ()
tuple::size_type pqxx::result::table_column ( tuple::size_type  ColNum) const

What column in its table did this column come from?

tuple::size_type pqxx::result::table_column ( int  ColNum) const

What column in its table did this column come from?

References table_column().

Referenced by table_column().

tuple::size_type pqxx::result::table_column ( const std::string &  ColName) const

What column in its table did this column come from?

References table_column().

Referenced by table_column().

Friends And Related Function Documentation

friend class pqxx::internal::gate::result_connection
friend
friend class pqxx::internal::gate::result_creation
friend
friend class pqxx::internal::gate::result_sql_cursor
friend
friend class pqxx::result::field
friend

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