我有一个QSqlRelationalTableModel
设置,其中一个QSqlRelation
到另一个表工作得很好。现在,我想在相关表中查找该行的其他列。我该怎么做?在
示例表格:
city ('id', 'name', 'state_id')
state ('id', 'name', 'capital')
到目前为止我所拥有的:
^{pr2}$这会让我大吵大闹:
| 1 | 'San Francisco' | 'California' |
现在我想从city表中查找state模型中的capital。我该怎么做?我对setRelation
的理解是,它从X列的主表中获取id,并用映射的列替换它,但我不想更改状态表。我已经研究了QSqlRecord
和{
谢谢!在
当要显示的表中有外键时,
QSqlRelationalTableModel
非常有用。在您的例子中,capital
不是city
表的列。在您应该改为使用
QSqlQueryModel
和JOIN
这两个表来获取所需的列。这样的事情应该行得通我发现实现我所要做的事情的最好方法是使用QSqlRelationalTableModel并重写selectStatement。在
失败的尝试:
使用其他列重载setRelation:
当这显示数据时,如果您正在使用QSqlRelationalDelegate,它会中断QSqlRelationalDelegate。在
我还尝试添加了一个方法来搜索relationModel,但这似乎比selectStatement()方法更糟糕。在
^{pr2}$根据@pnezis的建议,我也研究了QSqlQueryModel,但在文档中是这样写的
但它为我指明了正确的方向。谢谢
相关问题 更多 >
编程相关推荐