我正在开发一个使用MySQL数据库的应用程序。用户可能会让应用程序运行好几天,但大部分时间应用程序未使用数据库。无论如何,连接应该保持活跃。我想知道什么是合适的方法来验证连接实际上是否还活着?QSqlDatabase断开连接检测
我应该每5秒钟做一次简单的查询来验证它吗?
我正在开发一个使用MySQL数据库的应用程序。用户可能会让应用程序运行好几天,但大部分时间应用程序未使用数据库。无论如何,连接应该保持活跃。我想知道什么是合适的方法来验证连接实际上是否还活着?QSqlDatabase断开连接检测
我应该每5秒钟做一次简单的查询来验证它吗?
不是真的,你应该使用方法bool QSqlDatabase::isOpen
检查数据库连接是开放的。如果连接处于打开状态,则返回true,否则返回false。
也许不是每个* 5 *秒,但听起来像一个明智的做法。 (结合检查实际开放状态)。如果DB连接被切断(而QSqlDatabase不是QObject),则不会从QSqlDriver中获取信号。 – peppe
知道为什么没有这样的信号会很有趣。 – KcFnMi
那么,数据库的本地(C)API是否会通知您丢失的连接?也许只是没有人打扰... – peppe