问题标签 [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.
qt - View 不显示模型中的数据
建立连接后,我尝试了这段代码,但它没有显示任何数据
c++ - setData 为 QAbstractProxyModel 返回 false
我对 QAbstractProxyModel 进行了子类化,它的源模型是 QSqlTableModel 的子类。代理模型一次只能显示一行源模型。这是代码:
源型号:
当必须将新行添加到源模型时调用以下命令:
selectedRow 是保存源模型当前行的私有成员。
setData() 总是返回 false。源模型设置为手动提交。我究竟做错了什么?
编辑:
我解决了这个问题。我使用的源模型是QSqlTableModel 的一个子类,它为EditRole 以外的任何角色调用QSqlQueryModel 的setData。由于 QSqlQueryModel 本身并没有重新实现 setData,所以它调用 QAbstractItemModel 的 setData,它总是返回 false。
因此,我现在使用 EditRole 进行所有 setData() 调用,并且 data() 从存储在 EditRole 下的源模型返回值。
mysql - QSqlTableModel:上次检查状态更改未反映在数据库上
我有 MySQL 数据库,QSqlTableModel
并且QTableView
有几个复选框列。它可以工作,但最后一次单击复选框不会导致数据库发生变化。这意味着如果我启动一个程序,单击某个复选框并关闭程序,则不会对数据库进行任何更改。如果我要更改几个复选框的状态,最后一次更改将不会显示在数据库中。也许我的setData
方法有问题?
c++ - 波兰语字符的“字符串值不正确”(QSqlTableModel、MySQL)
向 QSqlTableModel 添加记录时遇到问题:
如果 name 只包含基本字符,一切都很好:代码返回
名称:“Nowy uklad tablicy”
名称取自 QLineEdit,因此如果它包含波兰语字符,例如“Nowy układ tablicy”在文本字段中可见,则返回:
名称:“Nowy uk³ad tablicy”
错误:“不正确的字符串值:第 1 行 QMYSQL3 的列 'name' 的'\xB3ad ta...':无法执行语句”
我想使用 QString::toUtf8,然后没有错误,并且表上的 SELECT 返回了良好的值(带有“ł”),但是 Qt 从数据库返回的内容是错误的,但又有所不同:
Nowy ukÅad tablicy
现在我改变了数据库的排序规则,从 utf8_general_ci 到 utf16_unicode_ci,因为它是 QString AFAIK 的原生排序规则。仍然出现相同的错误。我只会使用 QString::fromUtf8 来读取值,但 QSqlTableModel 可以自己工作。奇怪的是,这不是我第一次通过 QSqlTableModel 进行 MySQL/Qt 集成,但我以前从未遇到过类似的问题……我刚刚升级了 Qt,所以可能就是这样。有任何想法吗?
python - PYQT:QSqlTableModel。如何过滤数字而不是文本
我正在开发一个 GUI,它允许护士和医生从 sqlite 数据库中查看或查看患者记录。我已经能够设计一种使用setFilter功能过滤行的方法。然而,这是我的困境:搜索字符数据的离散字段工作完美;但是,当我使用患者的 MRN(身份证号)采取同样的方法时,它会返回一个空白屏幕。这是我的代码,[参见下面的第 1a 节,[#1]:
我已经尝试过以下方法:
我究竟做错了什么?请指教。
python - PyQt:QTableView + QSqlTableModel - 将所有选定的行或列复制并粘贴到记事本或 Excel 中
首先,我已经看过 ekhumoro 的代码,主题几乎类似Here。但是,当我尝试实现此代码时,我得到了不同的结果。而不是复制和粘贴我选择的所有内容,它只分别复制所选行的第一个单元格。我需要用户能够选择多行或多列并将这些值粘贴到 Excel 或记事本中。有任何想法吗?
代码:
python - QSqlRelationalTableModel 仅填充前 256 条记录
我有以下使用 PyQt5、sqlite3 和 python3.5.2 的简单模型。
执行模型会产生以下输出:
数据库中的行:831
model.select() 之后的行:256
最初的选择似乎只填充了前 256 条记录。这是一个 sqlite3 问题吗?如果是,我该如何填充所有记录(数据库总共只有大约 850 条记录)。如果不是,我如何强制加载所有记录?
结果是,在我更改代理过滤条件之前,使用代理模型和代理视图最初不会显示所有记录——也就是说,我必须触发其余记录的加载。
python-3.x - pyqt5 无法插入字节
如何将字节对象插入数据库。每当我尝试这样做时,我都会插入一个空字符串(不是 NULL)。
该问题已在邮件列表中注明,但从未解决。 https://www.riverbankcomputing.com/pipermail/pyqt/20 16-April /037260.html 事实证明,尽可能使用表模型而不是准备好的语句更有意义(他还注意到 pyqt 中的一个错误关于 exec() 与 exec_()。
c++ - 调用 QSqlTableModel setTable 方法时出现“无法找到表”错误
我需要通过从 QSqlTableModel 对象中检索数据来填充 QTableView。我使用以下命令连接到 sql server 数据库:
我通过 QSqlDatabase 类的 isValid() 和 open() 方法验证数据库连接。我也能够正确地从数据库表中查询。ٍ到目前为止一切正常。但是当我使用以下命令时会出现问题:
方法 setTable 不起作用并导致错误:无法找到表“mytable”。
c++ - 多个字符串的 setFilterFixedString
我的建议是:有一种方法可以搜索两个或多个字符串(结果的联合)
FILTRO->setFilterFixedString(searchText1);
FILTRO->setFilterFixedString(searchText2);
@@我已经知道如何找到具有两个 Qstring 的交集,或者只是其中一个,但不是具有的联合字符串之一或另一个或两者
谢谢你