Russian Qt Forum

Qt => Базы данных => Тема начата: Andrew12 от Ноябрь 01, 2011, 18:31



Название: Рвется соединение с БД
Отправлено: Andrew12 от Ноябрь 01, 2011, 18:31
Здравтсвуй многоуважаемый All.

Есть приложение на QT+ODBC+MSSQL. При длительном таймауте (около пол часа), насколько я понимаю, происходит разрыв соединения с БД, так как все TableView на базе QSqlQuery становятся пустыми. Подскажите кто может инициировать этот разрыв и может ли это быть со стороны MS SQL Express 2010? Это проблемма №1.

Проблемма №2. Все тоже самое, только в случае ухода ноутбука в сон и обратного его пробуждения - рвется соединение. Как установить более стабильное соединение?


Название: Re: Рвется соединение с БД
Отправлено: LisandreL от Ноябрь 01, 2011, 19:56
может ли это быть со стороны MS SQL Express 2010?
Вполне. Если TCP сокет закрывается аварийно (например падение программы или ОС) то вторая сторона об этом не узнает.
Выхода тут 2:
1) гонять время от времени служебные пакеты
2) рвать соединение, если некоторое время не передаётся данных

Как установить более стабильное соединение?
Может просто пересоединять его, если порвалось?


Название: Re: Рвется соединение с БД
Отправлено: Andrew12 от Ноябрь 01, 2011, 23:07
Так можно делать, соединение подымается, запросы начинают выполняться. Но что делать с пустыми гридами? Как вернуть туда данные?