@@ -26,6 +26,7 @@ game_value Result::cmd_lastInsertId(uintptr_t, game_value_parameter right) {
2626
2727game_value Result::cmd_toArray (uintptr_t , game_value_parameter right) {
2828 auto & res = right.get_as <GameDataDBResult>()->res ;
29+ if (!res) return auto_array<game_value>();
2930 auto_array<game_value> result;
3031
3132 while (res->next ()) {
@@ -35,29 +36,29 @@ game_value Result::cmd_toArray(uintptr_t, game_value_parameter right) {
3536
3637 switch (res->column_type (i)) {
3738 case mariadb::value::null: row.emplace_back (game_value{}); break ;
38- case mariadb::value::date: row.emplace_back (res->get_string (i )); break ;
39- case mariadb::value::date_time: row.emplace_back (res->get_string (i )); break ;
40- case mariadb::value::time: row.emplace_back (res->get_string (i )); break ;
39+ case mariadb::value::date: row.emplace_back (res->get_date (i). str ( )); break ;
40+ case mariadb::value::date_time: row.emplace_back (res->get_date_time (i). str ( )); break ;
41+ case mariadb::value::time: row.emplace_back (res->get_time (i). str_time ( )); break ;
4142 case mariadb::value::string: row.emplace_back (res->get_string (i)); break ;
4243 case mariadb::value::boolean: row.emplace_back (res->get_boolean (i)); break ;
4344 case mariadb::value::decimal: row.emplace_back (res->get_decimal (i).float32 ()); break ;
44- case mariadb::value::unsigned8: row.emplace_back (res->get_float (i )); break ;
45- case mariadb::value::signed8: row.emplace_back (res->get_float (i )); break ;
46- case mariadb::value::unsigned16: row.emplace_back (res->get_float (i )); break ;
47- case mariadb::value::signed16: row.emplace_back (res->get_float (i )); break ;
48- case mariadb::value::unsigned32: row.emplace_back (res->get_float (i )); break ;
49- case mariadb::value::signed32: row.emplace_back (res->get_float (i )); break ;
50- case mariadb::value::unsigned64: row.emplace_back (res->get_float (i )); break ;
51- case mariadb::value::signed64: row.emplace_back (res->get_float (i )); break ;
45+ case mariadb::value::unsigned8: row.emplace_back (static_cast < float >( res->get_unsigned8 (i) )); break ;
46+ case mariadb::value::signed8: row.emplace_back (static_cast < float >( res->get_signed8 (i) )); break ;
47+ case mariadb::value::unsigned16: row.emplace_back (static_cast < float >( res->get_unsigned16 (i) )); break ;
48+ case mariadb::value::signed16: row.emplace_back (static_cast < float >( res->get_signed16 (i) )); break ;
49+ case mariadb::value::unsigned32: row.emplace_back (static_cast < float >( res->get_unsigned32 (i) )); break ;
50+ case mariadb::value::signed32: row.emplace_back (static_cast < float >( res->get_signed32 (i) )); break ;
51+ case mariadb::value::unsigned64: row.emplace_back (static_cast < float >( res->get_unsigned64 (i) )); break ;
52+ case mariadb::value::signed64: row.emplace_back (static_cast < float >( res->get_signed64 (i) )); break ;
5253 case mariadb::value::float32: row.emplace_back (res->get_float (i)); break ;
53- case mariadb::value::double64: row.emplace_back (res->get_float (i )); break ;
54+ case mariadb::value::double64: row.emplace_back (static_cast < float >( res->get_double (i) )); break ;
5455 case mariadb::value::enumeration: row.emplace_back (res->get_string (i)); break ;
5556 default : ;
5657 }
5758 }
5859 result.emplace_back (std::move (row));
5960 }
60- return game_value ( result) ;
61+ return result;
6162}
6263
6364void ::Result::initCommands () {
0 commit comments