@@ -39,27 +39,31 @@ game_value Result::cmd_toArray(game_state&, game_value_parameter right) {
3939 auto_array<game_value> row;
4040
4141 for (mariadb::u32 i = 0u ; i < res->column_count (); ++i) {
42- switch (res->column_type (i)) {
43- case mariadb::value::null: row.emplace_back (game_value{}); break ;
44- case mariadb::value::date: row.emplace_back (res->get_date (i).str ()); break ;
45- case mariadb::value::date_time: row.emplace_back (res->get_date_time (i).str ()); break ;
46- case mariadb::value::time: row.emplace_back (res->get_time (i).str_time ()); break ;
47- case mariadb::value::string: row.emplace_back (res->get_string (i)); break ;
48- case mariadb::value::boolean: row.emplace_back (res->get_boolean (i)); break ;
49- case mariadb::value::decimal: row.emplace_back (res->get_decimal (i).float32 ()); break ;
50- case mariadb::value::unsigned8: row.emplace_back (static_cast <float >(res->get_unsigned8 (i))); break ;
51- case mariadb::value::signed8: row.emplace_back (static_cast <float >(res->get_signed8 (i))); break ;
52- case mariadb::value::unsigned16: row.emplace_back (static_cast <float >(res->get_unsigned16 (i))); break ;
53- case mariadb::value::signed16: row.emplace_back (static_cast <float >(res->get_signed16 (i))); break ;
54- case mariadb::value::unsigned32: row.emplace_back (static_cast <float >(res->get_unsigned32 (i))); break ;
55- case mariadb::value::signed32: row.emplace_back (static_cast <float >(res->get_signed32 (i))); break ;
56- case mariadb::value::unsigned64: row.emplace_back (static_cast <float >(res->get_unsigned64 (i))); break ;
57- case mariadb::value::signed64: row.emplace_back (static_cast <float >(res->get_signed64 (i))); break ;
58- case mariadb::value::float32: row.emplace_back (res->get_float (i)); break ;
59- case mariadb::value::double64: row.emplace_back (static_cast <float >(res->get_double (i))); break ;
60- case mariadb::value::enumeration: row.emplace_back (res->get_string (i)); break ;
61- case mariadb::value::blob: row.emplace_back (res->get_blobString (i)); break ;
62- default : ;
42+ try {
43+ switch (res->column_type (i)) {
44+ case mariadb::value::null: row.emplace_back (game_value{}); break ;
45+ case mariadb::value::date: row.emplace_back (res->get_date (i).str ()); break ;
46+ case mariadb::value::date_time: row.emplace_back (res->get_date_time (i).str ()); break ;
47+ case mariadb::value::time: row.emplace_back (res->get_time (i).str_time ()); break ;
48+ case mariadb::value::string: row.emplace_back (res->get_string (i)); break ;
49+ case mariadb::value::boolean: row.emplace_back (res->get_boolean (i)); break ;
50+ case mariadb::value::decimal: row.emplace_back (res->get_decimal (i).float32 ()); break ;
51+ case mariadb::value::unsigned8: row.emplace_back (static_cast <float >(res->get_unsigned8 (i))); break ;
52+ case mariadb::value::signed8: row.emplace_back (static_cast <float >(res->get_signed8 (i))); break ;
53+ case mariadb::value::unsigned16: row.emplace_back (static_cast <float >(res->get_unsigned16 (i))); break ;
54+ case mariadb::value::signed16: row.emplace_back (static_cast <float >(res->get_signed16 (i))); break ;
55+ case mariadb::value::unsigned32: row.emplace_back (static_cast <float >(res->get_unsigned32 (i))); break ;
56+ case mariadb::value::signed32: row.emplace_back (static_cast <float >(res->get_signed32 (i))); break ;
57+ case mariadb::value::unsigned64: row.emplace_back (static_cast <float >(res->get_unsigned64 (i))); break ;
58+ case mariadb::value::signed64: row.emplace_back (static_cast <float >(res->get_signed64 (i))); break ;
59+ case mariadb::value::float32: row.emplace_back (res->get_float (i)); break ;
60+ case mariadb::value::double64: row.emplace_back (static_cast <float >(res->get_double (i))); break ;
61+ case mariadb::value::enumeration: row.emplace_back (res->get_string (i)); break ;
62+ case mariadb::value::blob: row.emplace_back (res->get_blobString (i)); break ;
63+ default : ;
64+ }
65+ } catch (std::invalid_argument & x) {// get_date_time getting "NULL"
66+ row.emplace_back (" NULL" sv); break ;
6367 }
6468 }
6569 result.emplace_back (std::move (row));
0 commit comments