QSqlTableModel问题 – 没有自动更新

前端之家收集整理的这篇文章主要介绍了QSqlTableModel问题 – 没有自动更新前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在Qt 4.4中设置表格模型后,如下所示:
QsqlTableModel *sqlmodel = new QsqlTableModel();

    sqlmodel->setTable("Names");
    sqlmodel->setEditStrategy(QsqlTableModel::OnFieldChange);
    sqlmodel->select();
    sqlmodel->removeColumn(0);

    tableView->setModel(sqlmodel);
    tableView->show();

内容显示正确,但无法编辑,错误

QsqlQuery::value: not positioned on a valid record

解决方法

我可以在Qt 4.5.1中确认该错误的存在与您报告的完全一致,并且文档,例如 here,仍然给出了一个错误的例子(即包含removeColumn调用的例子).

作为一种解决方法,我试图写一个连接到beforeUpdate信号的插槽,想要检查QsqlRecord有什么问题,它将在数据库中更新并可能修复它,但我无法理解work – 对该记录参数的方法的任何调用都会导致我的玩具应用程序崩溃.

所以我放弃了这个想法并切换到了无疑是正确的方法(可见性应该由视图决定,而不是模型,对吧? – ):丢失removeColumn并代替它调用tableView – > setColumnHidden(0,true)代替.通过这种方式,ID被隐藏,一切正常.

所以我认为我们可以确认文档错误并在Qt跟踪器中打开它的问题,因此可以在下一轮文档中修复,对吧?

原文链接:https://www.f2er.com/mssql/78878.html

猜你在找的MsSQL相关文章