我尝试使用:
if (!db.isOpen()) {
db.open();
}
检查我的数据库连接,但它不会重新连接到我的数据库......:(打开我的程序(20-30 秒?)后,我的连接将随机断开。但是,如果我忘记了 if 语句并做到db.open();
了。我有#include <QSqlDatabase>
。
我尝试使用:
if (!db.isOpen()) {
db.open();
}
检查我的数据库连接,但它不会重新连接到我的数据库......:(打开我的程序(20-30 秒?)后,我的连接将随机断开。但是,如果我忘记了 if 语句并做到db.open();
了。我有#include <QSqlDatabase>
。
我认为isOpen
不检查连接是否仍然存在。如果连接成功打开并且尚未关闭,它只会返回 true。您应该使用简单的 SQL 请求(例如SELECT 1
)检查连接。也可能是如果您定期执行此请求,连接将保持活动状态。
另请参阅检测 QSqlDatabase 断开连接。