QSqlRelationalTableModel or QSqlQueryModel



  • Hi!

    Description:
    I use QTableView with database in first form for listing records.
    I create second form (modal form) for editing single record. This record has field, referencing to other table (FK). I tried to use QSqlRelationalTableModel with "setFilter" (for selecting single record) and "setRelation" (for processing FK and combobox). I planned to use "submit" for saving record.
    I didn't have success with this scheme because "setFilter" and "setRelation" are conflicting. I think I should use QSqlQueryModel for selecting single record.

    Questions:
    How should I save record (QSqlQueryModel is read-only)?
    Is this method right and the best for my target?



  • @michaeldev said in QSqlRelationalTableModel or QSqlQueryModel:

    I think I should use QSqlQueryModel for selecting single record

    No, you can just use a QSortFilterProxyModel on the original model and your strategy will work



  • @VRonin Yes, I've try and it works.
    But now I am facing with problem of saving changes. QDataWidgetMapper doesn't update ComboBox after changing.
    I see the same situation here
    https://forum.qt.io/topic/63442/sql-widget-mapper-example-weirdness
    And there is bugreport
    https://bugreports.qt.io/browse/QTBUG-50780



  • You can still implement what QDataWidgetMapper does manually. I know it's not ideal but it shouldn't be a huge amount of work



  • It is very strange. Components are very raw. At least some of them.



  • @michaeldev said in QSqlRelationalTableModel or QSqlQueryModel:

    Components are very raw

    I wouldn't be that harsh. There are a few bugs here and there and some parts have been more-or-less discontinued (DOM qgraphicsview, etc.) but overall the quality of components in Qt is pretty high



  • Qt Widgets - more alive than dead or more dead than alive?



  • It's a vital part of the framework so I'd say alive


Log in to reply