libpqxx
3.1.1
|
Efficiently write data directly to a database table. More...
#include <tablewriter.hxx>
Public Types | |
typedef unsigned | size_type |
Public Member Functions | |
tablewriter (transaction_base &, const std::string &WName, const std::string &Null=std::string()) | |
template<typename ITER > | |
tablewriter (transaction_base &, const std::string &WName, ITER begincolumns, ITER endcolumns) | |
Write only the given sequence of columns. | |
template<typename ITER > | |
tablewriter (transaction_base &T, const std::string &WName, ITER begincolumns, ITER endcolumns, const std::string &Null) | |
Write only the given sequence of columns, with customized "null" string. | |
~tablewriter () throw () | |
template<typename IT > | |
void | insert (IT Begin, IT End) |
template<typename TUPLE > | |
void | insert (const TUPLE &) |
template<typename IT > | |
void | push_back (IT Begin, IT End) |
template<typename TUPLE > | |
void | push_back (const TUPLE &) |
void | reserve (size_type) |
template<typename TUPLE > | |
tablewriter & | operator<< (const TUPLE &) |
tablewriter & | operator<< (tablereader &) |
Copy table from one database to another. | |
template<typename IT > | |
std::string | generate (IT Begin, IT End) const |
Translate tuple of data to a string in DBMS-specific format. | |
template<typename TUPLE > | |
std::string | generate (const TUPLE &) const |
virtual void | complete () |
Finish stream action, check for errors, and detach from transaction. | |
void | write_raw_line (const std::string &) |
Write line of raw data (e.g. obtained from tablereader.get_raw_line). | |
![]() | |
tablestream (transaction_base &Trans, const std::string &Null=std::string()) | |
virtual | ~tablestream ()=0 throw () |
![]() | |
transactionfocus (transaction_base &t) | |
![]() | |
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 | |
![]() | |
const std::string & | NullStr () const |
bool | is_finished () const throw () |
void | base_close () |
![]() | |
template<typename ITER > | |
static std::string | columnlist (ITER colbegin, ITER colend) |
Construct a comma-separated column list from given sequence. | |
![]() | |
transaction_base & | m_Trans |
Efficiently write data directly to a database table.
A tablewriter provides a Spartan but efficient way of writing data tuples into a table. It provides a plethora of STL-like insertion methods: it has insert() methods, push_back(), as well as an overloaded insertion operator (<<
), and it supports inserters created by std::back_inserter(). All of these are templatized so you can use any container type or iterator range to feed tuples into the table.
Note that in each case, a container or range represents the fields of a single tuple–not a collection of tuples.
typedef unsigned pqxx::tablewriter::size_type |
pqxx::tablewriter::tablewriter | ( | transaction_base & | T, |
const std::string & | WName, | ||
const std::string & | Null = std::string() |
||
) |
pqxx::tablewriter::tablewriter | ( | transaction_base & | T, |
const std::string & | WName, | ||
ITER | begincolumns, | ||
ITER | endcolumns | ||
) |
Write only the given sequence of columns.
This constructor takes a sequence of names of columns to write to. Only those columns will be written, and they will be taken from your input data in that order.
References pqxx::tablestream::columnlist().
pqxx::tablewriter::tablewriter | ( | transaction_base & | T, |
const std::string & | WName, | ||
ITER | begincolumns, | ||
ITER | endcolumns, | ||
const std::string & | Null | ||
) |
Write only the given sequence of columns, with customized "null" string.
This constructor takes a sequence of names of columns to write to. Only those columns will be written, and they will be taken from your input data in that order.
T | The transaction that this tablewriter will operate on. |
WName | A name for this table writer, to help with debugging. |
begincolumns | Beginning of a sequence of names of columns to write. |
endcolumns | End of a sequence of names of columns to write. |
Null | The string that is used in your input data to denote null. |
References pqxx::tablestream::columnlist().
pqxx::tablewriter::~tablewriter | ( | ) | throw () |
|
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.
std::string pqxx::tablewriter::generate | ( | IT | Begin, |
IT | End | ||
) | const |
Translate tuple of data to a string in DBMS-specific format.
References pqxx::tablestream::NullStr(), and pqxx::separated_list().
Referenced by generate(), and insert().
std::string pqxx::tablewriter::generate | ( | const TUPLE & | T | ) | const |
References generate().
void pqxx::tablewriter::insert | ( | IT | Begin, |
IT | End | ||
) |
References generate(), and write_raw_line().
Referenced by insert(), operator<<(), and push_back().
void pqxx::tablewriter::insert | ( | const TUPLE & | T | ) |
References insert().
tablewriter & pqxx::tablewriter::operator<< | ( | const TUPLE & | T | ) |
References insert().
pqxx::tablewriter & pqxx::tablewriter::operator<< | ( | pqxx::tablereader & | R | ) |
Copy table from one database to another.
References pqxx::tablereader::get_raw_line().
void pqxx::tablewriter::push_back | ( | IT | Begin, |
IT | End | ||
) |
References insert().
void pqxx::tablewriter::push_back | ( | const TUPLE & | T | ) |
References insert().
void pqxx::tablewriter::reserve | ( | size_type | ) |
void pqxx::tablewriter::write_raw_line | ( | const std::string & | Line | ) |
Write line of raw data (e.g. obtained from tablereader.get_raw_line).
Referenced by insert().