使用db.isOpen()检查数据库连接

时间:2013-06-30 19:23:30

标签: c++ sql qt connection

我试图使用:

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

检查我的数据库连接,但它不会重新连接到我的数据库... :(我的连接将在打开我的程序后随机丢弃(20-30秒?)。但是,如果我只是忘记if语句并执行{ {1}}它有效。我确实有db.open();

1 个答案:

答案 0 :(得分:1)

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

另见Detecting QSqlDatabase disconnections