Коллеги, добрый день,
Как обработать ошибку ошибочного ввода IP сервера БД?
Довольно стандартная функция подключения к БД:
void SqlQueryExecutor::slotOpenDbConnection(QString address, QString serverName, QString login, QString password)
{
if (QSqlDatabase::database().isOpen())
{
QString connectionName = QSqlDatabase::database().connectionName();
QSqlDatabase::database(connectionName).close();
QSqlDatabase::removeDatabase(connectionName);
}
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
db.setHostName(address);
db.setDatabaseName(dbName);
db.setUserName(login);
db.setPassword(password);
if (!db.open())
{
if (db.lastError().isValid())
emit dbDbErrorAppears(db.lastError().type(), db.lastError().text(), serverName);
return;
}
emit dbConnected(serverName);
}
Когда на сервере развернута БД все ок, соединение устанавливается, либо не устанавливается по каким то причинам.
Но если мы подключаемся по несуществующему IP поток зависает на функции open на довольно продолжительное время.
и в конце концов получаю ответ
could not connect to server: Время ожидания соединения истекло
Is the server running on host "10.248.0.2" and accepting
TCP/IP connections on port 5432?
QPSQL: Unable to connect
Как это время можно сократить?