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