Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Solved Update QSqlTableModel after QSqlQuery executing

    General and Desktop
    4
    22
    978
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JonB
      JonB @Wuzi last edited by JonB

      @Wuzi said in Update QSqlTableModel after QSqlQuery executing:

          m_model->selectStatement(); // I don't see the new column here
          m_model->setQuery(query);
          m_model->selectStatement(); // The selectStatement is empty
          //m_model->setTable(m_model->tableName());
          m_model->selectStatement(); // query is fine and the new column is shown in the table view
      

      I simply do not believe the "query is fine" in the third selectStatement() you show here. I can believe it would be fine if you uncommented the setTable() statement, but that is not what you show. Nonetheless is that what you mean??

      The idea is now to update the query of the model every time I'm executing a new query?

      Not for every query, but yes for the very unusual case where you add/remove/alter columns. You have to tell QSqlTableModel to re-read the table definition, and setTable() should do that.

      Finally, I cannot imagine why you persist in m_model->setQuery(query);. Your query is an ALTER TABLE statement. that is totally unsuitable as the statement for reading data from a table, which should be a SELECT statement. You don't need to set that (setTable() will sort it out), but don't set it to some completely unrelated statement.

      W 1 Reply Last reply Reply Quote 1
      • W
        Wuzi @JonB last edited by Wuzi

        @JonB said in Update QSqlTableModel after QSqlQuery executing:

        I simply do not believe the "query is fine" in the third selectStatement() you show here. I can believe it would be fine if you uncommented the setTable() statement, but that is not what you show.

        @JonB said in Update QSqlTableModel after QSqlQuery executing:

        Finally, I cannot imagine why you persist in m_model->setQuery(query);. Your query is an ALTER TABLE statement. that is totally unsuitable

        You are right. SELECT is the correct one

        Sorry. I played around to check and forgott to enable it again. I edited the code above

        Yes I think setTable and does the job. I thought there is a different way doing it.

        Thank you all for helping!

        1 Reply Last reply Reply Quote 0
        • First post
          Last post