1

我尝试使用:

if (!db.isOpen()) {
  db.open();
}

检查我的数据库连接,但它不会重新连接到我的数据库......:(打开我的程序(20-30 秒?)后,我的连接将随机断开。但是,如果我忘记了 if 语句并做到db.open();了。我有#include <QSqlDatabase>

4

1 回答 1

3

我认为isOpen不检查连接是否仍然存在。如果连接成功打开并且尚未关闭,它只会返回 true。您应该使用简单的 SQL 请求(例如SELECT 1)检查连接。也可能是如果您定期执行此请求,连接将保持活动状态。

另请参阅检测 QSqlDatabase 断开连接

于 2013-06-30T19:37:42.403 回答