Compare commits

...

6 Commits

Author SHA1 Message Date
Jie
13396e0cab fix move function 2025-03-26 18:04:38 +08:00
Jie
d293180eb1 fix move operator= function 2025-03-26 17:50:15 +08:00
Jie
ea90ef1398 mysql_query return 0 when success 2024-12-26 15:01:51 +08:00
Jie
458e55868e Fix std::expected error 2024-12-26 14:34:37 +08:00
Jie
c2d88355d1 Merge 2024-12-26 14:29:09 +08:00
Jie
a1bda53ca5 Exec function fail will retur error message now 2024-12-26 14:27:10 +08:00

View File

@@ -1,3 +1,4 @@
#include <exception>
#define DEBUG
#ifdef DEBUG
@@ -77,15 +78,26 @@ public:
SqlConnection& operator=(const SqlConnection& other) = delete;
SqlConnection(SqlConnection&& other){
other.Close();
this->Connect(other.ip, other.port, other.username, other.password, other.database_name);
this->ip = std::move(other.ip);
this->port = std::move(other.port);
this->username = std::move(other.username);
this->password = std::move(other.password);
this->database_name = std::move(other.database_name);
this->mysql_client = other.mysql_client;
mysql_init(&(other.mysql_client));
}
SqlConnection& operator=(SqlConnection&& other){
if(this != &other){
auto temp = SqlConnection{};
temp.Connect(other.ip, other.port, other.username, other.password, other.database_name);
other.Close();
this->Close();
this->ip = std::move(other.ip);
this->port = std::move(other.port);
this->username = std::move(other.username);
this->password = std::move(other.password);
this->database_name = std::move(other.database_name);
this->mysql_client = other.mysql_client;
mysql_init(&other.mysql_client);
}
return *this;
}
@@ -126,7 +138,6 @@ public:
}
std::expected<std::vector<std::vector<std::string_view>>, std::string_view> Query(std::string_view command){
//Not Implemented;
std::vector<std::vector<std::string_view>> really_result;
mysql_query(&mysql_client, command.data());
if(auto mysql_result = mysql_store_result(&mysql_client); mysql_result != nullptr){
@@ -153,9 +164,11 @@ public:
return std::unexpected(get_error_msg());
}
bool Execute(std::string_view command){
//Not Implemented;
return false;
std::expected<bool, std::string_view> Execute(std::string_view command){
auto res = mysql_query(&mysql_client, command.data());
if(res)
return std::unexpected(get_error_msg());
return res;
}
std::vector<std::string_view> get_tables(){