crossplatform.ru

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

> Проблемы с mysql, Проблемы с mysql
Гость_Tigr_*
сообщение 8.8.2011, 8:29
Сообщение #1





Гости








    


Имеется сервер, который слушает определенный порт. Когда приходит пакет, происходит проверка данных при которой происходит обращение к базе данных на мускле. запрос простой
QSqlQuery query;
   query.exec("Select id from kls_pribori where id="+QString::number(id_prib)+" limit 1"

проблема:сразу после соединения с базой все работает замечательно, но если обращение к базе долго отсутствовало (несколько часов), то он возвращает пустой запрос. хотя запись с таким id существует. переконнект с базой решает проблему. Но может существует решение, чтобы такой глюк просто не возникал?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 12.8.2011, 6:20
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Гость_Tigr_*

должна быть функция пинга, поищи. Когда пинг говорит, что связь потеряна, нужно сделать реконнект с последними параметрами подключения

в принципе, за пинг можно посчитать и некий запрос, который гарантированно должен вернуть что-то определённое. Если не вернул - переподключиться

А можно и просто вот эту функцию вызывать - она сразу и пинг, и переподключение, судя по описанию )
Цитата
bool QSqlDatabase::open ()
Opens the database connection using the current connection values. Returns true on success; otherwise returns false. Error information can be retrieved using lastError().


Сообщение отредактировал Алексей1153 - 12.8.2011, 6:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


7 чел. читают эту тему (гостей: 7, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 5.12.2024, 0:57