|  | 
| 
 Public Types | 
| typedef unsigned | size_type | 
| 
 Public Member Functions | 
|  | tablewriter (transaction_base &, const PGSTD::string &WName, const PGSTD::string &Null=PGSTD::string()) | 
| template<typename ITER> | tablewriter (transaction_base &, const PGSTD::string &WName, ITER begincolumns, ITER endcolumns, const PGSTD::string &Null=PGSTD::string()) | 
|  | Write only the given sequence of columns. 
 | 
|  | ~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> PGSTD::string | generate (IT Begin, IT End) const | 
|  | Translate tuple of data to a string in DBMS-specific format. 
 | 
| template<typename TUPLE> PGSTD::string | generate (const TUPLE &) const | 
| virtual void | complete () | 
|  | Finish stream action, check for errors, and detach from transaction. 
 | 
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.