- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在 Qt 中开发一个小型应用程序,我将 SQL 库与 SQLite 一起用作数据库。到目前为止,效果很好。 QSqlQuery
类只提供了一种通过索引而不是字段名获取列值的方法。但是,使用 record()
函数可以将查询中的当前行转换为 QSqlRecord
,它具有 value()
函数通过字段名称获取值。
所以,这工作得很好并且允许我编写更短和更清晰的代码,但是像下面这样的连接查询会带来问题:
SELECT t1.*, t2.* FROM table1 AS t1, table2 AS t2 WHERE t1.table2_id=t2.id
所以我们正常执行这个查询,并将一行转换为一条记录。但事实证明,QSqlRecord
中的列名没有以表名作为前缀 - 例如,在记录对象中可以找到两个名为 id
的列。这显然有点问题。
这个问题的最佳解决方案是什么?
(我在 Qt 错误跟踪器中找到了 this issue,但没有太大帮助。)
最佳答案
字段名完全依赖于驱动;所以问题实际上出在 SQLite 本身,毕竟它可能在做“正确”的事情(正确,就像 SQL 标准一样,我还没有检查过)。
无论如何,简单的解决方案:只需在 SQL 本身中给您的字段一个别名,但是,您不能也不应该使用 select * from
:
SELECT t1.id TI_ID, t1.name TI_NAME, t2.id T2_ID FROM table1 AS t1, table2 AS t2 WHERE t1.table2_id=t2.id
关于c++ - QtSQL : QSqlRecord doesn't keep the table prefixes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365376/
... query.exec("insert into person values(104, 'Roberto', 'Robitaille')"); query.exec("insert into
#include #include #include int main(int argc, char* argv[]) { QApplication app(argc, argv);
我试图将数据插入 QtSql 数据库,但我一直收到错误: "Parameter count mismatch" 我做错了什么? #include int main(int argc, char *a
有没有办法在不指定数据库的情况下连接到数据库服务器? 如果缺少数据库,我希望能够创建它 - 但 QtSql 驱动程序需要一些数据库才能连接到。 最佳答案 那是因为您的数据库服务器也需要它。 默认情况下
是否可以使用 QtSql api 创建表而不执行查询,例如我不想这样做 QSqlQuery query; query.exec("create table person (id int primary
编辑:我不得不更改问题,因为我发现问题不仅与 ODBC 驱动程序有关,而且与所有驱动程序(如 MYSQL、SQLITE 等)有关。 所以问题是这样的:我尝试使用 PySide 和 QtSql 模块连接
需要为使用 PySide 构建的桌面应用程序创建一个小型数据库。我不知道两者(sqlite3 和 QtSql)是否相似,但我倾向于 sqlite3。这是因为,嗯,它是 Pythonic 的!我想知道我
我已经阅读了 Qt 文档,但无法从语言本身找到直接的方法来从查询结果中获取行数和列数。我能想到的唯一方法是在 mysql 查询本身中使用 SELECT COUNT(*) FROM table_name
我正在尝试 from PyQt5.QtSql import QSqlDatabase, QSqlQuery 并收到此错误: 从 PyQt5.QtSql 导入 QSqlDatabase, QSqlQue
我想知道 QtSql + Sqlite 是否支持 QSqlQuery::size() 函数? 最佳答案 不,它没有。 SQLite 是无法直接提供查询大小的数据库之一。 顺便说一句 :“qt sqli
对 PyQt5 相当陌生,在设置示例应用程序时我遇到了 QtSql 的问题。我找到的所有示例都显示了使用数据库连接的单个类,但没有一个示例显示如何在需要数据库连接的许多不同类上持久使用 QtSql 类
我无法访问 mysql 服务器(在本地主机上)。Python 3.1 和最新的 PyQt 我的代码: from PyQt4 import QtSql db = QtSql.QSqlDatabase.a
好的,现在我已经弄清楚了 MDI 应用程序中的整个持久 QSqlDatabase,我尝试在 QThread 中访问它: class LoadWorker(QThread): totalSign
EXISTS 运算符的计算结果总是整数值 0 和 1 之一。我试图通过 QSqlQuery::value(int index) 获取它们.但不知何故,这个结果与列无关。 QtSql 如何获取 EXIS
我正在尝试使用 Python PyQt 将一些 MySql 查询转换为 SQLite,但我似乎无法让它工作。当我运行以下代码时,没有打印任何内容,没有错误或结果。代码有什么问题? db = QSqlD
看来我需要实例化一个QApplication对象并在其上调用exec来使用QtSql,即建立数据库连接,执行查询等。 我说得对吗?如果是,为什么? 最佳答案 你可能不需要QApplication,如果
我想在 Ubuntu 上通过 PyQt4 访问 SQL 数据库。我已经安装了 apt-get install python-qt4-sql 但是当我像这样添加数据库时: import sys from
我有一个 PyQt4 应用程序,它提供注册和登录功能。注册效果很好,也就是说,凭据按预期存储在数据库中。问题在于登录,它接受任何凭据,包括数据库中不存在的凭据。下面是正在使用的代码。 self.dat
我正在 Qt 中开发一个小型应用程序,我将 SQL 库与 SQLite 一起用作数据库。到目前为止,效果很好。 QSqlQuery 类只提供了一种通过索引而不是字段名获取列值的方法。但是,使用 rec
我正在开发一个 PyQt 程序,它很快就会从 xml 类型的后端切换到本地 MySQL 服务器上托管的后端。我一直在尝试阅读这三个选项中的每一个,但认为最好问问你们这些神。 我目前在使用 MySQLd
我是一名优秀的程序员,十分优秀!