问题标签 [qtsql]

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.

0 投票
1 回答
668 浏览

sql - 如何在使用 qt 对 mssql db 的查询中将变量用作 int?

我已经构建了一个我正在尝试制作的快速应用程序,以了解如何将动态配件或类别选项列表实现到产品列表(IE 品牌、型号、年份搜索)。我以为我找到了一种简单的方法来做到这一点,但我发现它比我想象的要难。我已经动态地制作了配件选项所需的组合框,但我不知道如何获取配件组的 ID 并将其作为“where 子句”的一部分在新查询中使用。在 qt 中使用变量作为对 mssql 数据库的查询中的 int 的最佳方法是什么?

}

0 投票
1 回答
2336 浏览

c++ - 面向 C++ 程序员的 SQL 简介

我是一名 C++ 程序员,他想将他的知识扩展到 SQL 语言,因为我正在处理 QtSQL 模块并且想更好地理解它。

我想为 C/C++ 程序员找到一个关于 SQL 语言的温和介绍。你能推荐一些阅读或特定的教程吗?

0 投票
1 回答
1807 浏览

c++ - 为什么我的交易没有回滚?Qt Mysql odbc 驱动程序

我正在使用 Qt 4.8.3 和 MySQL ODBC 3.51 驱动程序。当我的事务由于第二个表中的重复唯一 ID 而失败时,第一个表中的插入不会回滚。任何人都可以发现错误吗?

0 投票
2 回答
6778 浏览

qt - 如何使用 QSqlQuery 在事务中获取先前插入的行的 ID

我试图在事务范围内获取插入行的主键,因为我不想让数据库处于逻辑上不一致的状态。

我的问题是我找不到一种方法来检索以前执行的查询的 ID 值,我想将其用于下一个插入查询。在事务生效时查询 PostgreSQL 数据库在非外键表中显示没有结果(该行尚未提交?)。我相信这是由于事务的隔离级别。

下面是我试图用生产代码做的事情,尽管为了清楚起见,稍微编辑并缩小到一个功能。const int lastInsertId始终为 0,在这种情况下应该意味着没有找到任何值(从技术上讲,该toInt()函数失败了)。我尝试手动插入一个有效的非外键行,然后调用LASTVAL()它产生了预期的结果——插入行的 ID。

那么,我做错了什么?我在这里遗漏或误解了什么?

0 投票
2 回答
2368 浏览

multithreading - QtConcurrent 线程很慢!!我究竟做错了什么?

为什么我qtconcurrent::run()的调用和通过对象调用成员函数一样慢?

(例如:QtConcurrent::run(&db, &DBConnect::loadPhoneNumbers)和调用一样慢db.loadPhoneNumbers()

阅读下面的进一步解释

我一直在尝试通过创建一个线程QtConcurrent::run来帮助加快将数据发送到 SQL 数据库表的速度。我正在获取一个 QMap 成员变量并遍历它以将每个键 + 值发送到数据库。

QtConcurrent::run() 调用的成员函数:

调用线程的 main.cpp 部分

我对情况的理解

据我了解,该线程将在与主线程分开的新线程池下运行。我所看到的情况并非如此(请注意,在此之前还有 2 个其他 QtConcurrent::run() 调用用于数据库,在继续数据库调用之前全部完成)

现在我考虑使用 QtConcurrent::map() / mapped() 但无法让它与 QMap 一起正常工作。(找不到任何可以帮助的例子,但除此之外......只是一个仅供参考,以防有人问我为什么不使用一个)

一直在做一些“调试”工作来找出发生了什么,在我的测试中,我使用 QThread::currentThread() 来查找我当前正在从哪个线程进行调用。这就是我程序中的各个线程正在发生的事情。(所有 qtconcurrent::run() 调用都是在 main.cpp 中进行的,仅供参考......不确定这是否有区别)

如上所示,除了第一次qtconcurrent::run()调用外,其他一切都在主线程上(oO)

问题:

据我了解,我所有的线程(全部qtconcurrent::run)都应该在他们自己的线程上(只有第一个是)。这是真的还是我错过了什么?

其次,我的 loadPhoneNumebrs() 成员函数线程安全吗?(因为我没有改变我所看到的任何东西)

最大的问题: 为什么我的loadPhoneNumbers() qtconcurrent::run调用和我刚刚调用成员函数一样慢?(例如:db.loadPhoneNumbers()与 qtconcurrent::run() 版本一样慢)

任何帮助深表感谢!

0 投票
2 回答
3537 浏览

mysql - Qt MySQL无法加载插件驱动(QLibrary,QPluginLoader成功加载,QSqlDatabase::drivers()返回空!)

我已经成功编译了 MySQL 驱动程序,但我无法强制 Qt 加载它们。

一开始应该说什么 Iv 得到了 ODBC 和 SQLite 驱动程序包(在安装 Qt 之后),它们也没有被检测到。

在 *C:\Qt\4.8.0\plugins\sqldrivers* 我得到:

qsqlite4.dll

qsqlite4.lib

qsqlited4.dll

qsqlited4.lib

qsqlmysql4.dll

qsqlmysql4.lib

qsqlmysqld4.dll

qsqlmysqld4.lib

qsqlodbc4.dll

qsqlodbc4.lib

qsqlodbcd4.dll

qsqlodbcd4.lib

qsqlpsql4.dll

qsqlpsql4.lib

qsqlpsqld4.dll

qsqlpsqld4.lib

我还放入的 qsqlmysql*.* 文件:

C:\Qt\4.8.0\bin

应用\

应用\调试\

应用\发布\

应用程序\sqldrivers\

当然,我也得到了 QtSql*.dll。

Iv 正确配置了 .pro:

QT += core gui 网络 sql

我正在运行这段代码:

QLibrary 和 QPluginLoader 返回 true。而 QSqlDatabase::drivers() 是空的。我做错了什么?Qt 看不到 C:\Qt\4.8.0\plugins\sqldrivers 中的所有驱动程序。Iv 使用相同的编译器 (MSVC2010) 编译 Qt 和 SQL 驱动程序,没有错误。我正在运行我的代码几个月。任务是添加 MySQL 支持。

0 投票
2 回答
1864 浏览

c++ - Qt SQL - 配置与数据库的连接

我已经放弃尝试为 Qt 5.0 库配置 MYSQL 驱动程序,我将使用当前可用的唯一驱动程序 - “QSQLITE”。

我已经尝试了很长一段时间,并尝试了类似帖子中提到的所有内容: Select from SQLite with Qt

其中 SQL_Server = 192.168.1.100

我从应用程序中得到以下 qDebug 输出:

输出表明数据库连接是有效的,但是如果我将服务器名称更改为完全错误的名称,例如“xlkcjox”或其他随机键 - 我会得到相同的输出。我在这里想念什么?我觉得这应该相对容易。

请指教!

0 投票
2 回答
1697 浏览

sql - qt select 不适用于 where 语句

我正在使用 qt 4.8 和 psql 驱动程序连接到 postgres 9.1 数据库。

我正在做一个通用库来连接并插入数据库;几乎所有方法都准备好了,但在最后一个方法中,我需要从表中进行选择以将值插入到另一个表中。当我尝试选择语句时,它的行为有所不同。依次根据代码,但我所做的任何测试都没有产生正确的解决方案。这是我的代码:

base1.insertaEvento 是来自我所做的类的调用,用于在表上插入数据,之后我需要提取 id。这

在我将它附加到查询之前,我把它知道时间是否正确,顺便说一句,这是正确的。horaE 取自我在前面提到的类中声明的结构。

当我按原样运行查询时,while(query.next())它运行良好但不返回任何结果,如果我删除 while 循环但仍保持query.next()编译器返回

我尝试使用 query.first() 方法和 query.setForwardOnly(true) 但结果相同。

另外,如果我用 qDebug() 尝试 hora_bus 的值并直接在 psql 控制台中替换它,我会得到一个肯定的匹配,所以问题不在于插入或格式化数据的方式,而是检索查询的方式我相信但是不知道如何解决这个有什么想法吗?谢谢

0 投票
1 回答
3973 浏览

mysql - Qt MySQL -------- 无法打开包含文件:'mysql.h':

我在 Qt 中制作了一个 GUI 应用程序,它基本上是数据库的前端

但是我什至还没有到做任何事情的地步,因为我的数据库连接一直失败(嗯,它实际上并没有编译,所以它不是数据库连接问题)

无论如何,我的项目甚至不会构建,因为 Qt 给出了错误:

我不是特别明白,因为在使用 QtSQL 的课程中​​,我包括了:

现在有点把我的头撞在桌子上,因为我从文档中了解到这两个包含的就是你所需要的,哦,这在我的 .pro 中

我在这里错过了一些非常明显的东西吗?

干杯

0 投票
2 回答
16697 浏览

database - QSqlQuery::exec: 数据库未打开

我正在使用 qt,我的数据库与 qt 正确连接,但是每次调试时突然出现以下问题,,,ii 变得无法从/向数据库中获取或添加数据,,,我不知道怎么回事,但我是 qt 的新手。

QSqlQuery::exec: 数据库未打开

有人可以帮忙吗,这是紧急情况,这里是代码