Russian Qt Forum
Ноябрь 24, 2024, 04:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Разрыв соединения с БД  (Прочитано 6048 раз)
alexandr_ps
Гость
« : Август 10, 2009, 11:01 »

Добрый день.

Ситуация следующая - в связке работает СУБД PostgreSQL 8.3 и клиентское приложение на Qt 4.4.2, OC на обоих - OpenSUSE 10.3. Клиент запрашивает данные с сервера и все хорошо, пока соединение не обрывается тупым выдергиванием сетевого кабеля Улыбающийся, которое приводит к зависанию query->exec('запрос'). Скорее всего проблема возникает из-за настроек TCP/IP(стоят стандартные, ничего не менялось с момента установки систем), но туда залезать не очень хочется. Нет ли стандартного средства, как установить таймлимит на выполнение запроса к БД? Сейчас пришлось делать это все в 2 потоках - в одном выполняется запрос, в другом устанавливается таймер, который следит и в случае таймаута заново запускает поток запросов к БД. Хочется от своего велосипеда избавиться и перейти на велосипед от производителя Улыбающийся Мне кажется должен быть предусмотрен какой-то механизм. Вообще кто как решает проблему с разрывом соединения с БД в своих приложениях?

Заранее, спасибо!
Записан
uriel
Гость
« Ответ #1 : Август 10, 2009, 12:00 »

Было уже совсем недавно. Улыбающийся
http://www.prog.org.ru/topic_9421_0.html
Записан
ритт
Гость
« Ответ #2 : Август 10, 2009, 12:17 »

один раз - случайность; два - уже тенденция; а после пятого - однозначно, постить саггесты троллям...
Записан
alexandr_ps
Гость
« Ответ #3 : Август 10, 2009, 12:27 »

Спасибо за ссылку, теперь я знаю, что я не одинок Улыбающийся
Как оказалось мой путь решения проблемы единственный, так что ничего не поделаешь буду его использовать и дальше.
Записан
CroCIV
Гость
« Ответ #4 : Август 10, 2009, 13:23 »

Нет ли стандартного средства, как установить таймлимит на выполнение запроса к БД?

http://doc.crossplatform.ru/qt/4.5.0/qsqldatabase.html#setConnectOptions
на сколько я отсюда вижу у PostgreSQL есть connect_timeout, почему бы его не попробовать уменьшить секунд до 3 - 5?
Записан
alexandr_ps
Гость
« Ответ #5 : Август 11, 2009, 09:57 »

Сам смотрел на эту функцию, пробовал даже использовать, но ничего не меняется. Все то же зависание на QSqlQuery->exec().
Записан
ритт
Гость
« Ответ #6 : Август 19, 2009, 22:47 »

прикреплю сюда: http://qt.nokia.com/developer/task-tracker/index_html?method=entry&id=130779
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 20.