12#ifndef RDBACCESSSVC_SQLITERECORD_H
13#define RDBACCESSSVC_SQLITERECORD_H
33typedef std::variant<int
62 bool isFieldNull(
const std::string& field)
const override;
67 int getInt(
const std::string& field)
const override;
72 long getLong(
const std::string& field)
const override;
77 double getDouble(
const std::string& field)
const override;
82 float getFloat(
const std::string& field)
const override;
87 virtual const std::string&
getString(
const std::string& field)
const override;
96 int getInt(
const std::string& field,
unsigned int index)
const override;
102 long getLong(
const std::string& field,
unsigned int index)
const override;
108 double getDouble(
const std::string& field,
unsigned int index)
const override;
114 float getFloat(
const std::string& field,
unsigned int index)
const override;
120 virtual const std::string&
getString(
const std::string& field,
unsigned int index)
const override;
125 void addValue(
const std::string& field
129 typedef std::map<std::string,SqliteInp>
Record;
155 auto defIt =
m_def->find(field);
165 return std::make_tuple(checkIt,checkCode);
173 throw std::runtime_error(
"Wrong name for the field " + field);
175 throw std::runtime_error(
"Wrong data type requested for the field " + field);
177 throw std::runtime_error( field +
" is NULL");
Definition of the abstract IRDBRecord interface.
std::shared_ptr< SqliteInpDef > SqliteInpDef_ptr
std::variant< int, long, float, double, std::string > SqliteInp
std::map< std::string, SqliteInpType > SqliteInpDef
IRDBRecord is one record in the IRDBRecordset object.
double getDouble(const std::string &field) const override
Get double field value.
void addValue(const std::string &field, SqliteInp value)
FieldCheckResult checkField(const std::string &field, SqliteInpType fieldType) const
std::tuple< RecordCIterator, FieldCheckCode > FieldCheckResult
bool isFieldNull(const std::string &field) const override
Check if the field value is NULL.
long getLong(const std::string &field) const override
Get long field value.
Record::const_iterator RecordCIterator
void dump() const
Dump to cout.
void handleError(const std::string &field, FieldCheckCode checkCode) const
SqliteRecord(const SqliteRecord &)=delete
int getInt(const std::string &field) const override
Get int field value.
std::map< std::string, SqliteInp > Record
SqliteRecord & operator=(const SqliteRecord &)=delete
virtual const std::string & getString(const std::string &field) const override
Get string field value.
float getFloat(const std::string &field) const override
Get float field value.
SqliteRecord(SqliteInpDef_ptr def)
~SqliteRecord() override
Destructor.