问题标签 [qsqltablemodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1745 浏览

python - 在 PyQt 模型中按多列排序

我想在基于模型/视图的应用程序中使用PyQt与以下语句等效的语句:SQLPyQt

如何按 a 中的多列排序QSqlTableModel,特别是因为setSort()接受单个column参数?

0 投票
2 回答
1163 浏览

c++ - QSqlTableModel 中的附加空行

我正在尝试添加始终为空的最后一行。现在我有代理模型,我在其上调用 insertRow() - 插入了行。但是我需要添加另一行,当最后一行更新(插入数据)时。我应该连接哪个信号?

有时会发生奇怪的错误 - 单击现有行时,数据会复制到最后一行。你知道什么是错的吗?

感谢帮助

0 投票
1 回答
328 浏览

replace - 如何用 QSqlTableModel 中的列替换行?

我找到了很多关于如何在 SQL 中将行转换为列的答案。但我需要将行转换为 QSqlTableModel 中的列。据我了解,这应该不是一项非常艰巨的任务,但我找不到如何实现它的任何想法。也许 data()、setData() 和其他一些方法可以重新实现,但我害怕错过一些东西......

或者,也许应该重新实现 QTableView 的某些方法。

0 投票
1 回答
260 浏览

c++ - QSqlTableModel中如何获取一行的行状态?

我有一个QSqlRelationalTableModel. 我正在使用OnManualSubmit我的编辑策略。我打电话给setTableinsertRow

稍后,我如何以编程方式知道模型中已添加或编辑了哪些行但尚未提交到数据库?

0 投票
1 回答
634 浏览

c++ - QTableView 不刷新外键?

我有一个QMainWindow带两个QTableViews的。每个QTableView都有自己的QSqlRelationalTableModel. 我正在使用OnManualSubmit这两个模型的编辑策略。两个模型都访问同一个数据库,并使用setTable(每个访问不同的表)填充,然后是select().

第二个表的模型通过适当的调用来设置,以setRelation将其链接到用于填充第一个模型的表。在第二个(子)视图中,我调用view->setItemDelegate(new QSqlRelationalDelegate(view));

一切似乎都很好:出现在第一个视图中的数据列在第二个视图相应字段的下拉列表中。

我的问题:当我向第一个(父)视图添加、编辑或删除记录并将其保存到数据库时,我应该如何刷新第二个视图以使下拉列表准确?

第二个(子)视图中可能有未保存的编辑,我不想丢失这些,也不想保存它们。我只想适当地更新下拉列表。

我试过child_model->relationModel(fk_col)->select();了,但它child_model->relationModel(fk_col)->columnCount();表明选择正在父表的所有字段上操作,这似乎是不必要的悲观。

这是我第一次尝试使用<QtSql>QTableView所以我可能会遗漏一些基本的东西。也许有一种方法可以对两个视图使用相同的模型,并且刷新会自动发生?刷新子视图下拉菜单的适当方式是什么?

0 投票
2 回答
1655 浏览

qt - 如何设置/读取 QSqlRelationalTableModel 列属性和约束?

有没有办法检查 a 中每一列的属性和约束QSqlRelationalTableModel?例如,我想询问我的QSqlRelationalTableModel对象某个列是否可以包含空值,或者该列有效的数据类型。

0 投票
5 回答
4306 浏览

c++ - QSqlRecord 在查询中将具有默认值的列设置为空

我在将新的 QSqlRecord 插入 Postgresql 数据库时遇到问题。目标表定义如下:

记录插入代码为:

我想要做的就是插入一条新记录,并让 sqlsamochod_id为我设置它,但尽管我设置isGenerated为 false,但它会因消息而崩溃:

我应该怎么做才能使 QSqlRecord 离开samochod_id数据库的生成?

0 投票
1 回答
702 浏览

sqlite - 如何提高使用 QT 的 sqlite3 数据库的性能?

我在 sqlite3 数据库上使用 QSQlQuery。为了获取特定项目,我从 4 个不同的表中填充了结果。我认为加入表格会提高性能/速度并更快地获得结果。所以我最初加入了 2 个表,但加入表后获取数据需要更长的时间(?)

任何有关如何提高性能的建议将不胜感激。此外,我正在查看http://qt-project.org/doc/qt-4.8/qsqlquery.html并提到使用 setForwardOnly 会提高某些数据库的性能。知道它是否适用于 SQLite3 吗?

谢谢!

0 投票
2 回答
23641 浏览

qt - 将颜色设置为 QTableView 行

使用这种方法,我可以为我的 QTableviews 设置一个 QSQlQueryModels。

但是我如何根据单元格值将颜色设置为一行?

0 投票
1 回答
675 浏览

c++ - 禁用 QSql(Relational)TableModel 的预取/缓存行为

由于某些(嗯,性能)原因,Qt 的“模型”类仅从数据库中获取 256 行,因此如果您想将该行附加到记录集的末尾,显然,您必须按照以下方式进行操作

这确实有效,当您model->insertRow(model->rowCount())之后执行此操作时,该行确实会附加在记录集的最后一行之后。

还有与此行为相关的各种其他问题,例如当您从模型中插入或删除行时,呈现它的视图将被重绘,仅显示 256 行,您必须手动确保再次获取丢失的行。

有没有办法完全绕过这种行为?我的模型不太可能显示多于 1000 行,但是让它检索这 1000 行似乎是一件非常痛苦的事情。我知道,如果您必须处理更大的记录集,这是一个很好的性能优化,但对我来说,这是一种负担,而不是一种恩惠。

该模型需要是可写的,所以我不能简单地使用 QSqlQueryModel 代替 QSqlRelationalTableModel。