crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Переподключение к БД
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 15.12.2015, 8:01
  SibBear, про сбой не знаю (сбой - это серьёзно :lol: ), а при разрыве связи можно посмотреть

https://dev.mysql.com/doc/refman/5.7/en/auto-reconnect.html

метод QSqlDatabase::setConnectOptions , параметр MYSQL_OPT_RECONNECT

ну и проверяем, что база открыта isOpen

Переподключаться можно точно так же, как подключался

db.close();
db.open();


процесс подключения может быть заметный по времени (скажем так, не мгновенный), так что учитывай это. Я у себя выделил отдельный поток, который заведует открытием базы, а также скидыванием из очереди потока новых сообщений. Ну, и в случае многопоточности также не забывай про синхронизацию
SibBear Дата 14.12.2015, 8:47
  Добрый день. Моя программа работает с удаленной базой MySQL. В main.cpp создается подключение к БД:

    QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("XXX.XXX.XXX.XXX");
    db.setDatabaseName("mydb");
    db.setUserName("dbuser");
    db.setPassword("password");
    bool ok=db.open();
........


Далее в MainWindow и других классах производятся действия с БД.
Вопрос такой: как организовать попытки автоматического переподключения к БД в случаях, когда произошел сбой на сервере?

Спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:12