因此,我听说,当您不需要数据库连接时立即关闭数据库连接,并在需要时重新打开它,这是一种很好的编程方法。所以,每当我不需要它的时候,我就会关闭我的连接,但是我注意到它大大减慢了我的程序的速度(每个窗口需要大约2秒才能打开)。有什么办法可以解决这个问题吗?
我已经将QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");定义为全局变量,并在需要的时候执行db.open();或db.close();。此外,如果我一直保持连接打开,我的窗口会立即加载。
编辑:人们说这是因为在使用程序的过程中,连接可能会丢失/断开,这可能导致未保存的数据/大问题等
发布于 2013-06-30 00:29:28
正如其他人评论的那样,让数据库连接保持打开状态。如果您担心连接会被丢弃,那么可以在尝试执行查询之前使用QSqlDatabase::isOpen()对其进行测试。
如果您使用的是预准备查询(QSqlQuery::prepare),那么让连接保持打开更有意义。只要连接打开,准备好的查询就可以使用。
编辑
您可以更改非交互式会话的非活动超时(请参见sysvar_wait_timeout)。我不是MySQL专家,但是this might help。
https://stackoverflow.com/questions/17375988
复制相似问题