introduced table repository
This commit is contained in:
@@ -183,36 +183,53 @@ bool sqlite_query_result::fetch()
|
||||
return ++row_index_ < result_.size();
|
||||
}
|
||||
|
||||
template < typename Type >
|
||||
void convert(const char *valstr, sql::any_type &value)
|
||||
{
|
||||
Type val{};
|
||||
read(val, valstr);
|
||||
value = val;
|
||||
}
|
||||
|
||||
void sqlite_query_result::read_value(const char *id, size_t index, sql::any_type &value, sql::data_type_t type, size_t size)
|
||||
{
|
||||
switch (type) {
|
||||
case sql::data_type_t::type_char:
|
||||
convert<char>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_short:
|
||||
convert<short>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_int:
|
||||
convert<int>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_long:
|
||||
case sql::data_type_t::type_long_long: {
|
||||
long long val{};
|
||||
read(val, result_[row_index_][index]);
|
||||
value = val;
|
||||
convert<long>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_long_long:
|
||||
convert<long long>(result_[row_index_][index], value);
|
||||
break;
|
||||
}
|
||||
case sql::data_type_t::type_unsigned_char:
|
||||
convert<unsigned char>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_unsigned_short:
|
||||
convert<unsigned short>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_unsigned_int:
|
||||
convert<unsigned int>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_unsigned_long:
|
||||
case sql::data_type_t::type_unsigned_long_long: {
|
||||
unsigned long long val{};
|
||||
read(val, result_[row_index_][index]);
|
||||
value = val;
|
||||
convert<unsigned long>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_unsigned_long_long:
|
||||
convert<unsigned long long>(result_[row_index_][index], value);
|
||||
break;
|
||||
}
|
||||
case sql::data_type_t::type_float:
|
||||
case sql::data_type_t::type_double: {
|
||||
double val{};
|
||||
read(val, result_[row_index_][index]);
|
||||
value = val;
|
||||
convert<float>(result_[row_index_][index], value);
|
||||
break;
|
||||
case sql::data_type_t::type_double:
|
||||
convert<double>(result_[row_index_][index], value);
|
||||
break;
|
||||
}
|
||||
case sql::data_type_t::type_bool: {
|
||||
int val{};
|
||||
read(val, result_[row_index_][index]);
|
||||
|
||||
Reference in New Issue
Block a user