Russian Qt Forum

Qt => Базы данных => Тема начата: SeverusSnape от Апрель 29, 2011, 11:30



Название: [Решено] Проверка состояния соединения с бд ORACLE и переподключение
Отправлено: SeverusSnape от Апрель 29, 2011, 11:30
Всем здравствуйте! Недавно только начал работать с базой данных Oracle из Qt. Вопрос в следующем - при запуске программы подключаюсь к базе данных. Через определенное время пользователь выполняет определенные действия (нажимает кнопку), в результате чего получаются данные из БД. Периодически происходит обрыв связи с сервером - вследствие чего это происходит не известно, но и не важно. Вопрос в том, как проверить есть ли соединение с БД и, если нет, как правильнее переподключиться.

Код:
void SQL::setupConnection()
{
db = QSqlDatabase::addDatabase("QOCI");
db.setDatabaseName("ORCL");
db.setHostName("192.168.17.203");
db.setPort(1521);
db.setUserName("1111");
db.setPassword("1");

при нажатии пользователем кнопки:

Код:
bool SQL::connectDatabase()
{
  return db.open();
}

Заранее благодарен за любой совет.


Название: Re: Проверка состояния соединения с бд ORACLE и переподключение
Отправлено: VozaMFC от Апрель 29, 2011, 11:36
Читай доку...


Название: Re: Проверка состояния соединения с бд ORACLE и переподключение
Отправлено: SeverusSnape от Апрель 29, 2011, 12:21
Читай доку...

Спасибо за совет, конечно... Но на это у меня мозгов и у самого хватило. Интересовало кто как на практике решал поставленную задачу.
То есть, правильно ли я понимаю, что в очередной раз, когда пользователь нажмет на кнопку достаточно будет проверить

Код:
if (db.isOpen())
{
    ...
}
else
{
   db.open();
}

или сразу не заморачиваясь делать db.open();


Название: Re: Проверка состояния соединения с бд ORACLE и переподключение
Отправлено: SeverusSnape от Апрель 29, 2011, 12:49
Оставил все как есть - работает и ладно. Всем спасибо!