这个问题在网络上讨论很久了,似乎一直没有完美的解决方法,这里再次提出,请大家讨论一下。
在程序中先连接一个数据库QSqlDatabase对象mysql连接服务器上的数据库,然后与之绑定一个QSqlQuery对象query,在网络及数据库正常的情况下,用query执行exec查询很正常,然而当网络从通变为不通时,正在执行的exec就会阻塞线程。qt中提供的QSqlQuery::isActive()函数,或者是QSqlDatabase::isValid()函数,不能得到当前服务器数据库的实际状态。如果每次查询之前都重新连接数据库也比较浪费时间和资源。如何用一个简便的方法能实时判断数据库的连接状态,在qt中似乎也找不到很好的解决方法,还请高人指点。