diff --git a/README.md b/README.md index 150c2b3..f79ae22 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,11 @@ try { | | | | cout << get<0>(row) << " " << get<1>(row) << endl; } + // access columns name + for (auto column_name : response.columns_name) { + cout << column_name << endl; + } + } catch (const string err) { cout << err << endl; } diff --git a/lib/mysql.hpp b/lib/mysql.hpp index edf49bc..4fa0006 100644 --- a/lib/mysql.hpp +++ b/lib/mysql.hpp @@ -5,7 +5,6 @@ #include #include #include -// #include #include #include #include @@ -36,7 +35,8 @@ class MySQL_Res : public vector> { bool have_result = false; uint16_t affected = 0; uint16_t rows = 0; - uint16_t columns = (int)tuple_size>::value; + uint16_t columns = sizeof...(Types); + vector columns_name; }; /** @@ -156,8 +156,15 @@ class MySQL { ResultSet* res = stmt->getResultSet(); result.rows = res->rowsCount(); + ResultSetMetaData *metaData = res->getMetaData(); + int columnCount = metaData->getColumnCount(); + + for (int i = 1; i <= columnCount; ++i) { + result.columns_name.push_back(metaData->getColumnName(i)); + } + while (res->next()) { - result.push_back(MySQL::getRow(res, std::make_index_sequence{})); + result.push_back(MySQL::getRow(res, make_index_sequence{})); } res->close(); diff --git a/test/test.cpp b/test/test.cpp index 32fd557..d7bcc02 100644 --- a/test/test.cpp +++ b/test/test.cpp @@ -11,7 +11,7 @@ using namespace marcelb; int main() { try { // MySQL mydb("tcp://192.168.2.10:3306", "dinio", "H€r5elfInd1aH@nds", "dinio", 1); - MySQL mydb("tcp://192.168.2.10:3306", "dinio", "H€r5elfInd1aH@nds", "dinio", 5); + MySQL mydb("tcp://bitelex.ddns.net:3306", "dinio", "H€r5elfInd1aH@nds", "dinio", 5); sleep(2); @@ -115,6 +115,10 @@ int main() { cout << get<0>(row) << " " << get<1>(row) << endl; } + for (auto column_name : response.columns_name) { + cout << column_name << endl; + } + } catch (const string err) { cout << err << endl; } diff --git a/test/test.o b/test/test.o deleted file mode 100755 index 6cf3a69..0000000 Binary files a/test/test.o and /dev/null differ