首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何注意Qt中MySql服务器的关闭

如何注意Qt中MySql服务器的关闭
EN

Stack Overflow用户
提问于 2010-10-14 13:39:34
回答 4查看 3.6K关注 0票数 5

当我关闭MySql服务器时,我如何理解mysql服务器已经离开了我的Qt程序?

编辑:

在这里,我的审判:

当我关闭MySql时,我得到了这些结果,但我无法捕捉到MySql是关闭的。

我的代码片段是

代码语言:javascript
复制
QSqlQuery query(db);
query.exec("SELECT * From RequestIds");
qDebug()<<query.lastError();
qDebug()<<db.lastError()<<QTime::currentTime();
qDebug()<<db.isOpen();
qDebug()<<db.isValid();

产出如下:

代码语言:javascript
复制
QSqlError(2006, "QMYSQL: Unable to execute query", "MySQL server has gone away") 
QSqlError(-1, "", "") QTime("14:22:58") 
true 
true

我不明白为什么db.isOpen()返回true。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-10 08:28:17

Qt中有一个与QSqlDatabase相关的bug::isOpen()。

https://bugreports.qt.io/browse/QTBUG-223

票数 3
EN

Stack Overflow用户

发布于 2010-10-14 15:30:12

你的节目对周围的环境一无所知。如果有什么变化,您可以让操作系统通知您的程序,否则您将不得不测试自己。

如果数据库连接在程序之前关闭,则来自连接的状态应返回某种错误代码。您正在从连接函数检查状态吗?

编写一个打开窗口的简单程序,单击按钮,将其写入数据库。写入数据库后,程序应在窗口中显示状态。运行你的程序。按下按钮可以得到“受控”的响应。关闭数据库,然后再次单击按钮。

根据调试器和OS排队消息的能力,您可以通过调试器完成这一任务。

票数 1
EN

Stack Overflow用户

发布于 2010-10-14 15:56:49

如果您通过QSqlQuery::lastError()查询失败,则QSqlQuery::lastError()会给出一个错误。另外,QSqlDatabase::isOpen()应该报告连接的状态,QSqlDatabase::lastError()也是可用的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3933744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档