瀏覽代碼

SQLStudio: Display real column names in the results tab

Timothy Flynn 2 年之前
父節點
當前提交
e96df1599c
共有 2 個文件被更改,包括 7 次插入3 次删除
  1. 6 3
      Userland/DevTools/SQLStudio/MainWidget.cpp
  2. 1 0
      Userland/DevTools/SQLStudio/MainWidget.h

+ 6 - 3
Userland/DevTools/SQLStudio/MainWidget.cpp

@@ -253,7 +253,8 @@ MainWidget::MainWidget()
     };
     };
 
 
     m_sql_client = SQL::SQLClient::try_create().release_value_but_fixme_should_propagate_errors();
     m_sql_client = SQL::SQLClient::try_create().release_value_but_fixme_should_propagate_errors();
-    m_sql_client->on_execution_success = [this](auto) {
+    m_sql_client->on_execution_success = [this](auto result) {
+        m_result_column_names = move(result.column_names);
         read_next_sql_statement_of_editor();
         read_next_sql_statement_of_editor();
     };
     };
     m_sql_client->on_execution_error = [this](auto result) {
     m_sql_client->on_execution_error = [this](auto result) {
@@ -274,9 +275,11 @@ MainWidget::MainWidget()
             return;
             return;
         if (m_results[0].size() == 0)
         if (m_results[0].size() == 0)
             return;
             return;
+
         Vector<GUI::JsonArrayModel::FieldSpec> query_result_fields;
         Vector<GUI::JsonArrayModel::FieldSpec> query_result_fields;
-        for (size_t i = 0; i < m_results[0].size(); i++)
-            query_result_fields.empend(DeprecatedString::formatted("column_{}", i + 1), DeprecatedString::formatted("Column {}", i + 1), Gfx::TextAlignment::CenterLeft);
+        for (auto& column_name : m_result_column_names)
+            query_result_fields.empend(column_name, column_name, Gfx::TextAlignment::CenterLeft);
+
         auto query_results_model = GUI::JsonArrayModel::create("{}", move(query_result_fields));
         auto query_results_model = GUI::JsonArrayModel::create("{}", move(query_result_fields));
         m_query_results_table_view->set_model(MUST(GUI::SortingProxyModel::create(*query_results_model)));
         m_query_results_table_view->set_model(MUST(GUI::SortingProxyModel::create(*query_results_model)));
         for (auto& result_row : m_results) {
         for (auto& result_row : m_results) {

+ 1 - 0
Userland/DevTools/SQLStudio/MainWidget.h

@@ -64,6 +64,7 @@ private:
 
 
     RefPtr<SQL::SQLClient> m_sql_client;
     RefPtr<SQL::SQLClient> m_sql_client;
     Optional<SQL::ConnectionID> m_connection_id;
     Optional<SQL::ConnectionID> m_connection_id;
+    Vector<DeprecatedString> m_result_column_names;
     Vector<Vector<DeprecatedString>> m_results;
     Vector<Vector<DeprecatedString>> m_results;
 
 
     void read_next_sql_statement_of_editor();
     void read_next_sql_statement_of_editor();