问题标签 [qsqldatabase]

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 投票
2 回答
5823 浏览

database - QSqlDatabase 连接多个数据库

我在尝试连接到一个 Qt 应用程序中的两个不同数据库时遇到问题。我有存储应用程序收集的所有信息的信息数据库和新的日志数据库,它允许我跟踪应用程序发生的所有更改、按钮按下、屏幕加载等,以便在发布后轻松调试。另外,数据库运行良好,但是当我尝试同时使用它们时,只有一个可以运行。我读到这可能是因为我没有命名连接,显然只有最近连接的数据库才能使用默认连接。但是,当我给数据库名称时,它们根本不起作用,isOpen() 将在两者上都返回 true,但是一旦它们尝试执行查询,我就会得到错误

我的两个数据库声明是:

对于 Logger 数据库连接和:

此外,当我在数据库上运行第一个查询以查看它们的表是否存在时,我正在使用

对于普通数据库也是如此,但即使在声明数据库连接以运行查询后,我仍然遇到连接问题。

应用程序使用的数据库在命名空间中声明为静态 QSqlDatabase 以创建全局效果,因此每个人都可以访问它,这是以前的程序员,我将 Log 数据库创建为具有私有数据库连接的 Singleton。就像我说的那样,两个版本的代码是分开工作的,但是当它们在一起时,它们就会互相争斗。我知道关于 Singleton vs Dependecy Injection 的正确设计存在巨大争议,但是代码再次单独工作,所以我对它现在的设计方式感到满意。如果有任何遗漏的信息或您有任何想法,请告诉我。谢谢你。

0 投票
4 回答
24870 浏览

c++ - QPSQL 驱动程序未加载 Qt

我想添加数据库时遇到了一些麻烦。

调用此方法后出现错误:

我包括PATH可变路径:

我也将文件夹复制sqldriversDebug文件夹。还尝试将此文件夹中的 dll 复制到Debug. 也不行。

0 投票
1 回答
92 浏览

c++ - 连接 QSqlDatabase 有什么区别?

QSqlDatabase的很多教程都是这样启动数据库的:

会不会和这个不一样:

或这个:

0 投票
0 回答
1236 浏览

qt - 使用 Qt 和 QSqlDatabase 断开连接后重新连接到数据库的正确方法

断开连接时使用 Qt4 重新连接到数据库的正确方法是什么?

我在 ODBC 上使用 Sql Server 2012。如果我使用 SELECT 1 查询检测到断开连接,然后执行

我在尝试使用 next() 方法的其他打开的 SqlQueries(在驱动程序中)收到异常。

如果我对数据库什么都不做,只尝试使用同一个数据库执行新查询 - 任何 exec() 都会返回 false 并带有警告“连接错误”。

0 投票
1 回答
423 浏览

mysql - 管理数据库和连接生命周期

在 Qt 中,需要完成几个步骤才能完成数据库访问。

第一步是按连接名称添加数据库:

在此之后,我可以使用open()close()打开/关闭相应的连接。

也可以使用以下调用删除该数据库:

我的应用程序经常这样做,因为它出于多种目的访问并行进程中的各种数据库。它也是一个服务器应用程序,可以运行很长时间而无需重新启动。

对我来说很明显,由于可能的网络问题和服务器端的连接有限,始终保持连接打开是一个坏主意。

然而呢addDatabase()addDatabase() 在不直接调用removeDatabase()(但仅在应用程序退出时)的情况下调用是否有任何危害或好处?还是始终直接配对这些呼叫更好?

0 投票
2 回答
2269 浏览

c++ - 在 QLabel 中显示 sql 查询的输出

我正在编写一个 qt gui 应用程序,我计划在其中显示 QLabel 中的 sql 查询的输出。

现在填充 QTableView 模型中的输出很简单,我可以使用它;

关于如何在 QLabel 中实现这一点的任何想法???

查询的输出将是一条记录。例如世界最高山峰的名称,或英格兰首都的名称。只是单曲记录。

0 投票
1 回答
1406 浏览

c++ - 在 sqlite 数据库、qt 之间复制表会导致错误

我想在用户单击时将我的 SQlite 数据库的内容写入另一个 SQlite 数据库。为此,我试图连接到两个数据库并从一个数据库中选择查询,并在事务中向另一个数据库插入查询。但是我在连接创建本身上遇到错误。

在头文件中:

在源文件中:

运行时出现以下错误:

QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' 仍在使用中,所有查询都将停止工作。

QSqlDatabasePrivate::addDatabase: 重复连接名称 'qt_sql_default_connection',旧连接已删除。

如果我只使用数据库连接,则不会发生错误。我不确定如何使用单个连接进行复制。

我当前的复制代码如下:

0 投票
1 回答
825 浏览

python - 过滤通过 QSqlTableModel 连接到 SQLite 数据库的 QTableView 的内容

如何过滤通过 QSqlTableModel 连接到 SQLite 数据库的 QTableView 的内容?

例如,如果数据库包含“名称”列,我只想显示名称为“Jack”的行?

0 投票
1 回答
1473 浏览

pyqt - 带有 QSqlRelationalDelegate 的 QSqlRelationalTableModel 在 QAbstractProxyModel 后面不起作用

我需要交换 QSqlRelationalTableModel 的行和列。经过大量搜索,我写了一个小代理模型来翻转行和列。

它正在部分工作。表中的关系已解决并显示,但选择它们的保管箱会丢失。另外,我如何让他们更新?

这是一个重现该行为的独立脚本。

我的错误在哪里?我强烈怀疑它与模型的信号和插槽有关,但我没有找到任何提示哪些以及如何重新实现它们。

还有另一种更简单的方法来交换行和列吗?

编辑:澄清授权模型并非完全不起作用,它只是部分起作用。

0 投票
1 回答
1075 浏览

c++ - 使用 QT5 连接到 ACCDB

我想做的是从一个目录中找到所有.db(Paradox)文件并将它们保存到.mdb。问题是,要尝试这是否正常工作,我首先尝试打开一个 ACCDB(我将使用的 .db 和 .mdb 是仅在我学校的内部网络中可用的资源)。

我已经查过了,在Qt目录下找到了sql驱动,我的pro文件里也加了QT +=sql,安装了access数据库引擎,也安装了VBA,但是可以无法打开连接。我还没有尝试连接到 SQLITE 数据库来尝试它是否有效,但我猜它会的。这是从按钮触发的代码:

有什么想法吗??谢谢!