2013-06-30 52 views
0

我试着使用:检查使用db.isOpen()数据库连接

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

检查我的数据库连接,但它不会重新连接到我的数据库... :(我连接将开后随机掉落我程序(20-30seconds?)。但是,如果我只是忘了if语句,做db.open();它的作品。我确实有#include <QSqlDatabase>

回答

1

我觉得isOpen不检查连接是否还活着。它只是返回true如果连接成功打开并且尚未关闭,则应使用简单的SQL请求检查连接(例如SELECT 1)。也可能是如果您定期执行此请求,连接将保持活动状态。请参阅Detecting QSqlDatabase disconnections