|
libpqxx
The C++ client library for PostgreSQL
|
Build a parameter list for a parameterised or prepared statement. More...
Public Member Functions | |
| template<typename... Args> | |
| constexpr | params (Args &&...args) |
Pre-populate a params with args. Feel free to add more later. | |
| void | reserve (std::size_t n) & |
Pre-allocate room for at least n parameters. | |
| auto | size () const noexcept |
Get the number of parameters currently in this params. | |
| auto | ssize () const |
| Get the number of parameters (signed). | |
| void | append () & |
| Append a null value. | |
| void | append (zview) & |
| Append a non-null zview parameter. | |
| void | append (std::string const &) & |
| Append a non-null string parameter. | |
| void | append (std::string &&) & |
| Append a non-null string parameter. | |
| void | append (bytes_view) & |
| Append a non-null binary parameter. | |
| void | append (bytes const &) & |
| Append a non-null binary parameter. | |
| void | append (bytes &&) & |
| Append a non-null binary parameter. | |
| void | append (binarystring const &value) & |
| template<typename IT , typename ACCESSOR > | |
| void | append (pqxx::internal::dynamic_params< IT, ACCESSOR > const &value) & |
| Append all parameters from value. | |
| void | append (params const &value) & |
| void | append (params &&value) & |
| template<typename TYPE > | |
| void | append (TYPE const &value) & |
| template<typename RANGE > | |
| void | append_multi (RANGE const &range) & |
Append all elements of range as parameters. | |
| pqxx::internal::c_params | make_c_params () const |
For internal use: Generate a params object for use in calls. | |
Build a parameter list for a parameterised or prepared statement.
When calling a parameterised statement or a prepared statement, in some cases you can pass parameters into the statement directly in the invocation, as additional arguments to e.g. exec_prepared or exec_params. But not all functions accept that, plus, sometimes you want to build the lists at run time.
In those situations, you can create a params and append your parameters into that, one by one. Then you pass the params to the function that executes your SQL statement.
Combinations also work: if you have a params containing a string parameter, and you call exec_params with an int argument followed by your params, you'll be passing the int as the first parameter and the string as the second. You can even insert a params in a params, or pass two params objects to a statement. In the end all the embedded parameters show up in their natural order.
| void pqxx::params::append | ( | binarystring const & | value | ) | & |
The binarystring must stay valid for as long as the params remains active.
| void pqxx::params::append | ( | bytes const & | value | ) | & |
Append a non-null binary parameter.
Copies the underlying data into internal storage. For best efficiency, use the pqxx::bytes_view variant if you can, or std::move().
| void pqxx::params::append | ( | bytes_view | value | ) | & |
Append a non-null binary parameter.
The underlying data must stay valid for as long as the params remains active.
| void pqxx::params::append | ( | std::string const & | value | ) | & |
Append a non-null string parameter.
Copies the underlying data into internal storage. For best efficiency, use the zview variant if you can, or std::move()
|
inline |
Append a non-null parameter, converting it to its string representation.
| void pqxx::params::append | ( | zview | value | ) | & |
Append a non-null zview parameter.
The underlying data must stay valid for as long as the params remains active.
| pqxx::internal::c_params pqxx::params::make_c_params | ( | ) | const |
For internal use: Generate a params object for use in calls.
The params object encapsulates the pointers which we will need to pass to libpq when calling a parameterised or prepared statement.
The pointers in the params will refer to storage owned by either the params object, or the caller. This is not a problem because a c_params object is guaranteed to live only while the call is going on. As soon as we climb back out of that call tree, we're done with that data.
| void pqxx::params::reserve | ( | std::size_t | n | ) | & |
Pre-allocate room for at least n parameters.
This is not needed, but it may improve efficiency.
Reserve space if you're going to add parameters individually, and you've got some idea of how many there are going to be. It may save some memory re-allocations.
|
inline |