加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

QSqlTableModel问题 – 没有自动更新

发布时间:2020-12-12 06:29:14 所属栏目:MsSql教程 来源:网络整理
导读:在Qt 4.4中设置表格模型后,如下所示: QSqlTableModel *sqlmodel = new QSqlTableModel(); sqlmodel-setTable("Names"); sqlmodel-setEditStrategy(QSqlTableModel::OnFieldChange); sqlmodel-select(); sqlmodel-removeColumn(0); tableView-setModel(sqlmod
在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跟踪器中打开它的问题,因此可以在下一轮文档中修复,对吧?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读