fix get fields function
This commit is contained in:
		| @@ -1,3 +1,9 @@ | ||||
| #define DEBUG | ||||
|  | ||||
| #ifdef DEBUG | ||||
| #include <iostream> | ||||
| #endif | ||||
|  | ||||
| #include <optional> | ||||
| #include <ranges> | ||||
| #include <algorithm> | ||||
| @@ -10,13 +16,22 @@ | ||||
|  | ||||
| #include "util.h" | ||||
|  | ||||
| template<typename T> | ||||
| void log(T msg){ | ||||
| #ifdef DEBUG | ||||
|     std::cout<<msg<<std::endl; | ||||
| #endif | ||||
| } | ||||
|  | ||||
| using util::_support_string; | ||||
|  | ||||
| [[maybe_unused]] | ||||
| struct RowItem{ | ||||
|     std::vector<std::string_view> row; | ||||
| }; | ||||
|  | ||||
| //Not Implemented; | ||||
| [[maybe_unused]] | ||||
| class Result{ | ||||
|     std::vector<std::string_view> fields; | ||||
|     std::map<std::string_view, std::vector<std::string_view>> datas; | ||||
| @@ -98,13 +113,12 @@ public: | ||||
|     std::vector<std::string_view> get_fields(std::string_view table_name){ | ||||
|         std::vector<std::string_view> really_result; | ||||
|         std::string command; | ||||
|         std::format_to(std::back_inserter(command), "SHOW COLUMNS FROM %s;", table_name); | ||||
|         std::format_to(std::back_inserter(command), "SHOW COLUMNS FROM {};", table_name); | ||||
|         auto _ = mysql_query(&mysql_client, command.c_str()); | ||||
|         if(auto mysql_result = mysql_store_result(&mysql_client); mysql_result != nullptr){ | ||||
|             auto field_length = mysql_num_fields(mysql_result); | ||||
|             auto row = mysql_fetch_row(mysql_result); | ||||
|             for(int i=0; i<field_length; i++){ | ||||
|                 really_result.emplace_back(row[i]); | ||||
|             while(auto row = mysql_fetch_row(mysql_result)){ | ||||
|                 really_result.emplace_back(row[0]); | ||||
|             } | ||||
|             mysql_free_result(mysql_result); | ||||
|         } | ||||
| @@ -143,7 +157,7 @@ public: | ||||
|         return false; | ||||
|     } | ||||
|      | ||||
|     std::vector<std::string_view> GetTables(){ | ||||
|     std::vector<std::string_view> get_tables(){ | ||||
|         std::vector<std::string_view> really_result; | ||||
|         mysql_query(&mysql_client, "SHOW TABLES;"); | ||||
|         if(auto mysql_result = mysql_store_result(&mysql_client); mysql_result != nullptr){ | ||||
|   | ||||
							
								
								
									
										17
									
								
								src/main.cc
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								src/main.cc
									
									
									
									
									
								
							| @@ -8,14 +8,17 @@ using namespace std; | ||||
| int main(int argc, char** const argv){ | ||||
|     SqlConnection conn{}; | ||||
|     auto resp = conn.Connect("192.168.1.17", "3306", "root", "", "mobiletek_mmi"); | ||||
|     auto table_result = conn.get_tables(); | ||||
|     auto fields = conn.get_fields("r303"); | ||||
|     ranges::for_each(fields, [](auto item){cout<<item<<endl;}); | ||||
| //    resp.or_else([](auto err_msg){cout<<err_msg<<"\n";}); | ||||
| //    auto table_result = conn.GetTables(); | ||||
|     auto result = conn.Query("SELECT IMEI_1 FROM R303 WHERE Powertest=1;"); | ||||
|     ranges::for_each(result.value(), [](auto row){ | ||||
|         ranges::for_each(row, [](auto item){ | ||||
|             cout<<item<<", "; | ||||
|         }); | ||||
|         cout<<endl; | ||||
|     }); | ||||
| //    auto result = conn.Query("SELECT IMEI_1 FROM R303 WHERE Powertest=1;"); | ||||
| //    ranges::for_each(result.value(), [](auto row){ | ||||
| //        ranges::for_each(row, [](auto item){ | ||||
| //            cout<<item<<", "; | ||||
| //        }); | ||||
| //        cout<<endl; | ||||
| //    }); | ||||
|     return 0; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user