Wt
3.2.0
|
Traits class for value types. More...
#include <Wt/Dbo/SqlTraits>
Static Public Member Functions | |
static const char * | type (SqlConnection *connection, int size) |
Returns the SQL type name. | |
static void | bind (const V &v, SqlStatement *statement, int index, int size) |
Binds a value to a statement parameter. | |
static bool | read (V &v, SqlStatement *statement, int column, int size) |
Reads a result from an executed query. |
Traits class for value types.
This traits class may be specialized for a custom type V
, to add dbo support for custom types. A value type has a one-to-one mapping to a single database column.
The library has built-in support for:
std::string
char const *
(read-only: only as a bound parameter for a query)short
, int
, long long
long
: since the size of a long
is 64bit on UNIX/Linux 64bit systems and 32bit otherwise, it is mapped to an integer
or a bigint
depending on the environment.float
, double
bool
std::vector<unsigned char>
(binary data)boost::optional<T>
: to make the type optional (allowing an SQL null
value)In <Wt/Dbo/WtSqlTraits>, traits classes are also provided for:
static void Wt::Dbo::sql_value_traits< V, Enable >::bind | ( | const V & | v, |
SqlStatement * | statement, | ||
int | index, | ||
int | size | ||
) | [static] |
Binds a value to a statement parameter.
The value v
must be bound to parameter with index index
in the statement
.
static bool Wt::Dbo::sql_value_traits< V, Enable >::read | ( | V & | v, |
SqlStatement * | statement, | ||
int | column, | ||
int | size | ||
) | [static] |
Reads a result from an executed query.
The value v
must be read from result column column
in the statement
.
Returns true
if the value was not null
. This result may be used by the boost::optional<V> specialization to support fields that may have null
values.
static const char* Wt::Dbo::sql_value_traits< V, Enable >::type | ( | SqlConnection * | connection, |
int | size | ||
) | [static] |
Returns the SQL type name.
The size
(for strings) is a hint and may be ignored by a back-end.
This will usually return a type ending with " not null" except for C++ types that support null
values. For a normal c++ value type T
, boost::optional<T> has been specialized to allow for null
values.