问题标签 [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.
c++ - 如何获取 QSqlTableModel 中的值?
我的数据库:
我的代码:
如何获得“2014 年 1 月”的 TOTAL 值?即“1”。
qt - 如何获取与 QSqlTableModel::setData() 关联的已执行 SQL 语句?
我正在使用QSqlTableModel
方法从 Qt 应用程序插入/更新数据库表setData
,submitAll
并且commit
。出于日志记录的目的,我需要记录相应的 SQL 语句。我怎样才能做到这一点?(我正在看,QSqlTableModel::query()
但似乎它只返回 SELECT)
这是我正在做的事情的简化版本。
最后一行总是打印一个 SELECT,即使我进行了更新或插入。
更新
这是一个自给自足的代码片段。设置是,我有一个带有 aQTableView
和QPushButton
. clicked()
在插槽中捕获按钮的信号,并将addNewRow()
任意值插入到第一个单元格。我正在打印lastQuery()
期望它是插入语句的结果,但它是给定表的 SELECT 语句。我究竟做错了什么?
主文件
测试1.h
测试1.cpp
qt - 解析 QSqlRelationalTable 中的复杂外键
我正在使用 QSqlRelationalModel,但我遇到了一些问题。
例如,如果我们处理简单的表格,例如:
然后我可以写:
它会正常工作,并显示位置名称而不是 ID。
但就我而言,我不能应用这种方法。假设我有下一张桌子:
假设我想使用 Participant 作为 QSqlRelationalTable:
而且我想在视图中显示 Person.firstname 而不是 experience_id (而且我不想失去编辑功能)。我怎样才能做到这一点?
我不能像上面的例子那样使用 setRelation() ,因为:
我不能写“person_id”,因为我想显示名字而不是 person_id。
c++ - QDataWidgetMapper 和 QDateEdit 值
我有带有一些表的 QSqlTableModel,假设它是一个
而且我还有 QDataWidgetMapper 它将一些小部件(lineedits 等)映射到模型中的适当列。
所以问题出在QDateEdit
元素上。
当我更改birthEdit
( QDateEdit
) 中的日期时,相应表中的值实际上并未更改,因为它们以不同的格式存储,并且我也收到错误消息:
数据库中的日期存储在“yyyy-MM-dd”中,而QDateEdit
返回另一个日期(我想)。据我所知QDataWidgetMapper
,在映射小部件中使用 USER 属性来获取/设置值。
我该如何解决我的问题?
qt - 更改后的 QSqlRelationalModel 模型/视图更新
我在更改后更新模型/视图时遇到问题。
为了更好地解释我的意思,我用 SQLite 写了一个简单的例子。
所以 main.cpp 文件:
MainForm.h 文件:
那么关于错误......在编辑包含外键的单元格后,显示的值变得错误。因此,例如在部门更改后,它显示为整数而不是字符串。为什么?是Qt错误吗?
添加新行后同样的问题。
c++ - 如何查询本地 QSqlQueryModel?
我在QSqlTableModel::OnManualSubmit
模式下显示 QSqlTableModel。
我想在我的本地副本上运行 SQL 样式查询,例如,我有一个getMax
在添加新行时会发生变化的函数。QSqlTableModel
如果我的用户在交互过程中本地更改了我希望getMax
生成不同的输入,但是该getMax
函数远程查询数据并且结果将始终相同,而与用户所做的任何更改无关。
如何在模型的本地副本上运行查询?
qt - 如何改变 Qt TableView 的方向
嗨,我正在使用 QTableView 使用 qsqltablemodel 显示来自 sql 表的数据,如下所示:
我只想在这样的视图中显示表格,即列显示为行,行显示为列。我搜索了谷歌等。但找不到任何简单的解决方案。提到了代理模型,但我不确定如何使用在此示例中不使用数据方法的 QSqltablemodel 来实现它,而是一次填充整个模型的 model->select() 语句。任何指导将不胜感激。
c++ - QSqlTableModel 和 DATETIME 列
我有一个QTableView
使用QSqlTableModel
. 在该表中,我有一个 DATETIME 列。当我添加一行并尝试编辑该列时,我有一个简单的 QEdit。我想在那里有一个QDateTimeEdit
(或类似的),正确编辑该字段会容易得多。
据我了解文档,它应该自己工作,默认委托应该能够处理QDateTime
并放置 a QDateTimeEdit
,所以我猜它QSqlTableModel
没有将它识别为日期,因为表是空的。有没有一种简单的方法来指定它是一个日期而不仅仅是文本?
我现在使用 SQlite 作为数据库,我不知道这是否是问题所在?我不知道我可以在这里粘贴什么相关的代码,它实际上只是 aQSqlTableModel::setTable
和 a QTableView::setModel
,没什么。
python - 如何从填充有 QSqlTableModel 的 QComboBox 中获取选择项数据
我有一个基本组合框,其中填充了来自 sqlite3 数据库表的数据:
这是表架构:
这只会产生一个空的 dict {}
。如何从 QSqlTableModel 中获取选定/当前项的数据对象?