28#include "sql/sqlException.hpp"
30#include "date/dateFormatter.hpp"
31#include "sql/types/date.hpp"
32#include "sql/types/time.hpp"
33#include "sql/types/timestamp.hpp"
55 std::map<std::string, std::size_t>
_fields;
89 bool get(std::
size_t idx, T& out);
103 bool get(const std::
string field, T& out) {
104 auto search =
_fields.find(field);
106 std::ostringstream msg;
107 msg <<
"Field " << field <<
" does not exist in result set. "
108 "Available fields are [";
109 for(auto iter = _fields.cbegin() ; iter != _fields.cend() ; ++iter) {
110 if(iter != _fields.cbegin()) {
118 return get<T>(search->second, out);
133 std::optional<T>
get(std::size_t idx);
147 const std::optional<T>
get(
const std::string field) {
148 auto search =
_fields.find(field);
150 std::ostringstream msg;
151 msg <<
"Field " << field <<
" does not exist in result set. "
152 "Available fields are [";
153 for(
auto iter =
_fields.cbegin() ; iter !=
_fields.cend() ; ++iter) {
162 return get<T>(search->second);
183 virtual bool getValue(std::size_t idx, std::string& out) = 0;
194 virtual std::optional<std::string>
getValue(std::size_t idx) = 0;
virtual std::optional< std::string > getValue(std::size_t idx)=0
virtual bool getValue(std::size_t idx, std::string &out)=0
const anch::date::DateFormatter & getDefaultTimeFormatter()
const std::optional< T > get(const std::string field)
Definition resultSet.hpp:147
std::map< std::string, std::size_t > _fields
Definition resultSet.hpp:55
virtual const anch::date::DateFormatter & getTimestampFormatter()=0
virtual const anch::date::DateFormatter & getDateFormatter()=0
bool get(std::size_t idx, T &out)
const anch::date::DateFormatter & getDefaultTimestampFormatter()
virtual const anch::date::DateFormatter & getTimeFormatter()=0
const anch::date::DateFormatter & getDefaultDateFormatter()
std::optional< T > get(std::size_t idx)
SQL exception.
Definition sqlException.hpp:38
SQL namespace.
Definition clauses.hpp:26
AnCH framework base namespace.
Definition app.hpp:28