- 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/
我在将新的 QSqlRecord 插入 Postgresql 数据库时遇到问题。目标表定义如下: create table samochod( samochod_id integer primar
当我能够以某种方式轻松获取 QSqlRecord 中存在的所有字段和值时,调试数据库操作会更容易。 最佳答案 我花了很长时间才从 Qt 文档中弄清楚如何做到这一点,尽管最终它相当简单。 // QSql
我正在 Qt 中开发一个小型应用程序,我将 SQL 库与 SQLite 一起用作数据库。到目前为止,效果很好。 QSqlQuery 类只提供了一种通过索引而不是字段名获取列值的方法。但是,使用 rec
有一个类FilmModel继承自QSqlTableModel和QTableView。我设置模型 model = new FilmModel(this); ui->filmList->setModel(
我遇到的问题与我见过的一些问题类似,但解决方案似乎不适合我,所以我将添加一个新问题: 我正在尝试使用以下查询将 SQLite 表中的数值(最高用户 ID)访问到我的 QT 程序中: SELECT Na
我是一名优秀的程序员,十分优秀!