问题标签 [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.
sql - 如何在使用 qt 对 mssql db 的查询中将变量用作 int?
我已经构建了一个我正在尝试制作的快速应用程序,以了解如何将动态配件或类别选项列表实现到产品列表(IE 品牌、型号、年份搜索)。我以为我找到了一种简单的方法来做到这一点,但我发现它比我想象的要难。我已经动态地制作了配件选项所需的组合框,但我不知道如何获取配件组的 ID 并将其作为“where 子句”的一部分在新查询中使用。在 qt 中使用变量作为对 mssql 数据库的查询中的 int 的最佳方法是什么?
}
c++ - 面向 C++ 程序员的 SQL 简介
我是一名 C++ 程序员,他想将他的知识扩展到 SQL 语言,因为我正在处理 QtSQL 模块并且想更好地理解它。
我想为 C/C++ 程序员找到一个关于 SQL 语言的温和介绍。你能推荐一些阅读或特定的教程吗?
c++ - 为什么我的交易没有回滚?Qt Mysql odbc 驱动程序
我正在使用 Qt 4.8.3 和 MySQL ODBC 3.51 驱动程序。当我的事务由于第二个表中的重复唯一 ID 而失败时,第一个表中的插入不会回滚。任何人都可以发现错误吗?
qt - 如何使用 QSqlQuery 在事务中获取先前插入的行的 ID
我试图在事务范围内获取插入行的主键,因为我不想让数据库处于逻辑上不一致的状态。
我的问题是我找不到一种方法来检索以前执行的查询的 ID 值,我想将其用于下一个插入查询。在事务生效时查询 PostgreSQL 数据库在非外键表中显示没有结果(该行尚未提交?)。我相信这是由于事务的隔离级别。
下面是我试图用生产代码做的事情,尽管为了清楚起见,稍微编辑并缩小到一个功能。const int lastInsertId
始终为 0,在这种情况下应该意味着没有找到任何值(从技术上讲,该toInt()
函数失败了)。我尝试手动插入一个有效的非外键行,然后调用LASTVAL()
它产生了预期的结果——插入行的 ID。
那么,我做错了什么?我在这里遗漏或误解了什么?
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() 版本一样慢)
任何帮助深表感谢!
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 支持。
c++ - Qt SQL - 配置与数据库的连接
我已经放弃尝试为 Qt 5.0 库配置 MYSQL 驱动程序,我将使用当前可用的唯一驱动程序 - “QSQLITE”。
我已经尝试了很长一段时间,并尝试了类似帖子中提到的所有内容: Select from SQLite with Qt
其中 SQL_Server = 192.168.1.100
我从应用程序中得到以下 qDebug 输出:
输出表明数据库连接是有效的,但是如果我将服务器名称更改为完全错误的名称,例如“xlkcjox”或其他随机键 - 我会得到相同的输出。我在这里想念什么?我觉得这应该相对容易。
请指教!
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 控制台中替换它,我会得到一个肯定的匹配,所以问题不在于插入或格式化数据的方式,而是检索查询的方式我相信但是不知道如何解决这个有什么想法吗?谢谢
mysql - Qt MySQL -------- 无法打开包含文件:'mysql.h':
我在 Qt 中制作了一个 GUI 应用程序,它基本上是数据库的前端
但是我什至还没有到做任何事情的地步,因为我的数据库连接一直失败(嗯,它实际上并没有编译,所以它不是数据库连接问题)
无论如何,我的项目甚至不会构建,因为 Qt 给出了错误:
我不是特别明白,因为在使用 QtSQL 的课程中,我包括了:
现在有点把我的头撞在桌子上,因为我从文档中了解到这两个包含的就是你所需要的,哦,这在我的 .pro 中
我在这里错过了一些非常明显的东西吗?
干杯
database - QSqlQuery::exec: 数据库未打开
我正在使用 qt,我的数据库与 qt 正确连接,但是每次调试时突然出现以下问题,,,ii 变得无法从/向数据库中获取或添加数据,,,我不知道怎么回事,但我是 qt 的新手。
QSqlQuery::exec: 数据库未打开
有人可以帮忙吗,这是紧急情况,这里是代码