问题标签 [qsqlquerymodel]
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.
python - 打印QSqlModel的SQL代码
有没有办法打印发送到数据库的 QSqlTableModel/QueryModel 的 SQL 代码?(我正在使用过滤器,并希望将其用于调试目的)
就像是:
c++ - Qt 和 SQLite:使用数组元素进行过滤
我目前正在做一个项目,我对 Qt 和 SQLITE 还是很陌生。我目前有一个整数数组,想用它来获取链接到数组中元素的数据。比如数据是61616,就会输出Sarah。
我知道这是错误的。有人可以解释如何正确地做到这一点吗?
更新:
但是,它仍然没有输出到表中。
python - 复杂SQL查询的可编辑QTableView
如何使可编辑的 QTableView 显示来自复杂 SQLite 查询的数据?
我需要用来自几个 SQLite 表的数据填充 QTableView。这需要用户可编辑。
由于查询有点复杂(包括 JOIN 和 CASE WHEN 等),我通过 QSqlTableModel 和 QSqlQuery 执行此操作。然而,有人告诉我,这不是 QSqlTableModels 应该使用的方式。那么,有人可以告诉我如何通过正确的方式获得像这里显示的结果吗?
此外,虽然我的 QTableViews 是可编辑的,但结果似乎并没有存储在 SQLite 数据库中。(当我注释掉 fill_tables 时,我在重新启动 GUI 后仍然得到原始结果。将 EditStrategy 更改为 OnFieldChange 没有帮助。)是因为我处理 QSqlTableModel 错误吗?
我已经尝试使用 QSqlRelationalTableModel 代替,但是我无法完成相同的查询复杂性,并且它也不会保存更改,就像上面的代码一样。这是就我的尝试而言:
要回答传入的问题:
可编辑性:
在此示例中,唯一绝对需要可编辑的列(以使更改到达数据库的方式)是 Country 列(并且那里的更改应该影响共享相同内容的所有其他行;例如,如果您更改任何大众汽车的“德国”到“法国”,然后都应将“法国”列为国家)。
如果您知道一种使第一个也可编辑的方法,以便更新数据库中的各个列,那将非常好看,但这不是必需的。(在我的真实表格中,我将此类“列连接”用于不可编辑的字段。)在这种特定情况下,我希望将“VW Polo”更改为“Marco Polo”也将“VW Golf”更新为“Marco Golf” ',因为列连接中使用的列是制造商.公司而不是汽车.公司。(实际上,可能会使用cars.company 进行连接,在这种情况下,'VW Golf' 将保持不变。但让我们假设上面给出的查询。)
第三列是计算统计结果的示例,这些通常仅供阅读(编辑它们没有意义)。
列顺序:
我非常感谢能够选择列的显示顺序,即使跨连接表(就像我可以使用查询一样)。
qt - QTableView 未显示 SQLite 数据库中的所有数据
我有一个带有QTableView和QLineEdit的简单应用程序,我正在使用QSqlQueryModel和QSortFilterProxyModel从 SQLite3 数据库中的表中获取数据并过滤结果(使用setFilterFixedString(the text from the QLineEdit))。数据库中的表有 8611 行大。
首次加载时,tableview 似乎并未显示数据库中的所有行。当我将字符串应用于过滤器(在 QLineEdit 上放置一些文本)时,并非所有预期结果都显示出来;我必须从 QLineEdit 中删除文本并向下滚动到 tableview 的末尾(它从数据库更新?!)然后问题就消失了:我的所有结果都来自数据库。
这是 QTableView 的已知错误吗?如何解决这个问题呢?
谢谢你。
PS:这是我的应用程序中关于这个问题的重要部分。
mainwindow.h
mainwindow.cpp
python - 来自 SQL 模型的 Qt 自定义多选 QComboBox
我想要一个下拉类别选择框,它允许用户单击多个选择,并且最好连接到 SQL 查询。我没有特别附加到组合框(每次点击时消失没有帮助),无论什么都能完成工作。
目前,我基本上已经将那个杰里装配在一起,它在技术上允许多个选择,但它只是基于随机鼠标是否被拖动到它上面。
希望这足够清楚,有人可以提供帮助!:)
qt - 用于动态更改信息的 QSqlQueryModel
尝试使用 QML 中的 UI 构建应用程序并从 Sqlite 数据库访问数据。
QML 视图可以TableView
在数据网格中显示信息,并使用 C++ 中的模型。
模型是一个继承自QSqlQueryModel
对数据库的查询的类:setQuery("SELECT * FROM Samples", GetDataBase())
我在另一个线程中每秒在数据库表中添加一个新行。
当我导航到TableView
放置 的视图时,表格中的信息会填充网格。都好。但是,每次我添加一个新行时,我都会setQuery
再次调用,但表格没有更新。如果我再次来回查看视图,它将填充所有新行。
我认为只要模型更改,视图就会“自动”通知,但我想我错过了任何通知让视图知道有新行或其他什么?
另外......这只是一个测试应用程序,但我预见在我的真实应用程序中,要在网格中显示的信息会变化得非常快,并且表格可以有几行信息(大约十万行)所以我想知道QSqlQueryModel
是否此类数据的正确模型。
c++ - Qt-如何实现一个可读写的QSqlQueryModel?
我对 QSqlQueryModel::setData() 和 QSqlQueryModel::flags() 进行了子类化和重新实现,现在我可以编辑这个模型,但这里会出现问题:
我编辑了记录中的第四个字段,但随后,第四个字段和后者都将其内容更改为相同:
这是我的 scoremodel.cpp:
我已经调试了很长时间。如果您能帮助我,我将不胜感激。
谢谢!
qt - 在其他文件(mainwindow.cpp除外)中,如何操作ui组件?
现在,我重新实现了 QSqlQueryModel 以使其可编辑,这意味着我重新实现了函数 QSqlQueryModel::setData() 和函数 QSqlQueryModel::flags() 并且我使用 QTableview 来显示数据。
在重新实现的函数 QSqlQueryModel::setData() 的最后,有一个刷新步骤再次将数据填充到模型中:
但我在 mainwindow.cpp 中用以下代码装饰了 tableView(可以引用 ui->tableView):
为了保持tableView外观的一致性,我也想在刷新步骤中进行这样的操作。
在我有限的 Qt/C++ 经验中,我无法有效地处理它。我在网上找了很久。但是没有用。请帮助或尝试给出一些想法如何实现这一点。谢谢!
python - 带有 OnManualSubmit 的 QSqlRelationalTableModel
我这样设置视图的模型:
但是在 tableview 中编辑第 10 列后,将显示 id-value (IOKey)。编辑前显示的是正确的相关值(“IOText”)。
如果我删除带有“setEditStrategy”的行,一切正常,但我想要一个带有“OnManualSubmit”的 EditStrategy。
谢谢!