加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

QSqlTableModel问题 – 没有自动更新

发布时间:2020-05-24 16:14:41 所属栏目:MsSql 来源:互联网
导读:在Qt 4.4中设置表格模型后,如下所示: QSqlTableModel *sqlmodel = new QSqlTableModel(); sqlmodel-setTable(Names); sqlmodel-setEditStrategy(QSqlTableModel::OnFieldChange); sqlmodel-select(); sqlmo

在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跟踪器中打开它的问题,因此可以在下一轮文档中修复,对吧?

(编辑:安卓应用网)

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

    推荐文章
      热点阅读