我将 qt 与 qml 和 c++ 结合使用。在我的应用程序中,我使用了一个数据库。 如果数据库可访问,一切正常。
我的问题是,我想检查数据库是否可访问(如 ping)。
我试过了
db.setDatabaseName(dsn);
if(db.isValid())
{
if(db.open())
{
//std::cout <<"Offene Datenbank";
connected=true;
}
else
{
connected=false;
}
}
else
{
connected=false;
}
并给出连接值作为结果。但如果没有连接,这需要很长时间(可能 30 秒)。如果我有数据库连接,我如何快速检查?
有没有办法在 5 秒未连接后中断命令 .open?
最佳答案
我认为一个简单的解决方案是只检查数据库服务器的 ping。您可以使用特定于平台的方式进行 ping。
这会在 Linux 上运行:
int exitCode = QProcess::execute("ping", QStringList() << "-c 2" << serverIp);
if (exitCode==0)
{
// is reachable
} else
{
// is not reachable
}
关于c++ - 如果数据库可达,如何快速检查? (Qt, QML, C++)- Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183417/