问题标签 [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.
database - QSqlDatabase 连接多个数据库
我在尝试连接到一个 Qt 应用程序中的两个不同数据库时遇到问题。我有存储应用程序收集的所有信息的信息数据库和新的日志数据库,它允许我跟踪应用程序发生的所有更改、按钮按下、屏幕加载等,以便在发布后轻松调试。另外,数据库运行良好,但是当我尝试同时使用它们时,只有一个可以运行。我读到这可能是因为我没有命名连接,显然只有最近连接的数据库才能使用默认连接。但是,当我给数据库名称时,它们根本不起作用,isOpen() 将在两者上都返回 true,但是一旦它们尝试执行查询,我就会得到错误
我的两个数据库声明是:
对于 Logger 数据库连接和:
此外,当我在数据库上运行第一个查询以查看它们的表是否存在时,我正在使用
对于普通数据库也是如此,但即使在声明数据库连接以运行查询后,我仍然遇到连接问题。
应用程序使用的数据库在命名空间中声明为静态 QSqlDatabase 以创建全局效果,因此每个人都可以访问它,这是以前的程序员,我将 Log 数据库创建为具有私有数据库连接的 Singleton。就像我说的那样,两个版本的代码是分开工作的,但是当它们在一起时,它们就会互相争斗。我知道关于 Singleton vs Dependecy Injection 的正确设计存在巨大争议,但是代码再次单独工作,所以我对它现在的设计方式感到满意。如果有任何遗漏的信息或您有任何想法,请告诉我。谢谢你。
c++ - QPSQL 驱动程序未加载 Qt
我想添加数据库时遇到了一些麻烦。
调用此方法后出现错误:
我包括PATH
可变路径:
我也将文件夹复制sqldrivers
到Debug
文件夹。还尝试将此文件夹中的 dll 复制到Debug
. 也不行。
c++ - 连接 QSqlDatabase 有什么区别?
QSqlDatabase的很多教程都是这样启动数据库的:
会不会和这个不一样:
或这个:
qt - 使用 Qt 和 QSqlDatabase 断开连接后重新连接到数据库的正确方法
断开连接时使用 Qt4 重新连接到数据库的正确方法是什么?
我在 ODBC 上使用 Sql Server 2012。如果我使用 SELECT 1 查询检测到断开连接,然后执行
我在尝试使用 next() 方法的其他打开的 SqlQueries(在驱动程序中)收到异常。
如果我对数据库什么都不做,只尝试使用同一个数据库执行新查询 - 任何 exec() 都会返回 false 并带有警告“连接错误”。
mysql - 管理数据库和连接生命周期
在 Qt 中,需要完成几个步骤才能完成数据库访问。
第一步是按连接名称添加数据库:
在此之后,我可以使用open()
和close()
打开/关闭相应的连接。
也可以使用以下调用删除该数据库:
我的应用程序经常这样做,因为它出于多种目的访问并行进程中的各种数据库。它也是一个服务器应用程序,可以运行很长时间而无需重新启动。
对我来说很明显,由于可能的网络问题和服务器端的连接有限,始终保持连接打开是一个坏主意。
然而呢addDatabase()
?addDatabase()
在不直接调用removeDatabase()
(但仅在应用程序退出时)的情况下调用是否有任何危害或好处?还是始终直接配对这些呼叫更好?
c++ - 在 QLabel 中显示 sql 查询的输出
我正在编写一个 qt gui 应用程序,我计划在其中显示 QLabel 中的 sql 查询的输出。
现在填充 QTableView 模型中的输出很简单,我可以使用它;
关于如何在 QLabel 中实现这一点的任何想法???
查询的输出将是一条记录。例如世界最高山峰的名称,或英格兰首都的名称。只是单曲记录。
c++ - 在 sqlite 数据库、qt 之间复制表会导致错误
我想在用户单击时将我的 SQlite 数据库的内容写入另一个 SQlite 数据库。为此,我试图连接到两个数据库并从一个数据库中选择查询,并在事务中向另一个数据库插入查询。但是我在连接创建本身上遇到错误。
在头文件中:
在源文件中:
运行时出现以下错误:
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' 仍在使用中,所有查询都将停止工作。
QSqlDatabasePrivate::addDatabase: 重复连接名称 'qt_sql_default_connection',旧连接已删除。
如果我只使用数据库连接,则不会发生错误。我不确定如何使用单个连接进行复制。
我当前的复制代码如下:
python - 过滤通过 QSqlTableModel 连接到 SQLite 数据库的 QTableView 的内容
如何过滤通过 QSqlTableModel 连接到 SQLite 数据库的 QTableView 的内容?
例如,如果数据库包含“名称”列,我只想显示名称为“Jack”的行?
pyqt - 带有 QSqlRelationalDelegate 的 QSqlRelationalTableModel 在 QAbstractProxyModel 后面不起作用
我需要交换 QSqlRelationalTableModel 的行和列。经过大量搜索,我写了一个小代理模型来翻转行和列。
它正在部分工作。表中的关系已解决并显示,但选择它们的保管箱会丢失。另外,我如何让他们更新?
这是一个重现该行为的独立脚本。
我的错误在哪里?我强烈怀疑它与模型的信号和插槽有关,但我没有找到任何提示哪些以及如何重新实现它们。
还有另一种更简单的方法来交换行和列吗?
编辑:澄清授权模型并非完全不起作用,它只是部分起作用。
c++ - 使用 QT5 连接到 ACCDB
我想做的是从一个目录中找到所有.db(Paradox)文件并将它们保存到.mdb。问题是,要尝试这是否正常工作,我首先尝试打开一个 ACCDB(我将使用的 .db 和 .mdb 是仅在我学校的内部网络中可用的资源)。
我已经查过了,在Qt目录下找到了sql驱动,我的pro文件里也加了QT +=sql,安装了access数据库引擎,也安装了VBA,但是可以无法打开连接。我还没有尝试连接到 SQLITE 数据库来尝试它是否有效,但我猜它会的。这是从按钮触发的代码:
有什么想法吗??谢谢!