added mysql data type string conversion

This commit is contained in:
Sascha Kuehl 2024-01-21 15:21:47 +01:00
parent 9355f7ea27
commit b158b41556
1 changed files with 35 additions and 2 deletions

View File

@ -110,9 +110,42 @@ sql::null_option to_null_option(unsigned int flags)
sql::data_type_t string2type(const std::string &type_string)
{
// if (strcmp(type_string.c_str(), "int")
if (strncmp(type_string.c_str(), "tinyint", 7) == 0) {
return sql::data_type_t::type_char;
} else if (strncmp(type_string.c_str(), "smallint", 8) == 0) {
if (strstr(type_string.c_str(), "unsigned") != nullptr) {
return sql::data_type_t::type_unsigned_short;
} else {
return sql::data_type_t::type_short;
}
} else if (strncmp(type_string.c_str(), "int", 3) == 0) {
if (strstr(type_string.c_str(), "unsigned") != nullptr) {
return sql::data_type_t::type_unsigned_int;
} else {
return sql::data_type_t::type_int;
}
} else if (strncmp(type_string.c_str(), "bigint", 6) == 0) {
if (strstr(type_string.c_str(), "unsigned") != nullptr) {
return sql::data_type_t::type_unsigned_long_long;
} else {
return sql::data_type_t::type_long_long;
}
} else if (strcmp(type_string.c_str(), "date") == 0) {
return sql::data_type_t::type_date;
} else if (strncmp(type_string.c_str(), "datetime", 8) == 0) {
return sql::data_type_t::type_time;
} else if (strcmp(type_string.c_str(), "float") == 0) {
return sql::data_type_t::type_float;
} else if (strcmp(type_string.c_str(), "double") == 0) {
return sql::data_type_t::type_double;
} else if (strncmp(type_string.c_str(), "varchar", 7) == 0) {
return sql::data_type_t::type_varchar;
} else if (strncmp(type_string.c_str(), "text", 4) == 0) {
return sql::data_type_t::type_text;
} else {
return sql::data_type_t::type_unknown;
}
}
struct type_info
{