crossplatform.ru

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


  Ответ в Проблемы с mysql
Введите ваше имя
Подтвердите код

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

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


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 12.8.2011, 6:20
  Гость_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().
Tigr Дата 11.8.2011, 8:59
 
Цитата(Litkevich Yuriy @ 8.8.2011, 16:20) *
Цитата(Гость_Tigr_* @ 8.8.2011, 11:29) *
о если обращение к базе долго отсутствовало (несколько часов), то он возвращает пустой запрос
что при этом возвращает:
bool QSqlQuery::exec ()
bool QSqlDatabase::isOpen () const
???

И то и другое true!
сделал таймер, который раз в час делает простой запрос. Пока работает стабильно. Но это называется делать через ж....
Litkevich Yuriy Дата 8.8.2011, 16:20
 
Цитата(Гость_Tigr_* @ 8.8.2011, 11:29) *
о если обращение к базе долго отсутствовало (несколько часов), то он возвращает пустой запрос
что при этом возвращает:
bool QSqlQuery::exec ()
bool QSqlDatabase::isOpen () const
???
ViGOur Дата 8.8.2011, 10:53
  У mysql есть внутренний timeout в течении которого если не происходит обращение к бд, то соединение рвется. Просто нужно в my.cfg добавить или поправить параметр (кажется connect-timeout).
Tigr Дата 8.8.2011, 8:29
  Имеется сервер, который слушает определенный порт. Когда приходит пакет, происходит проверка данных при которой происходит обращение к базе данных на мускле. запрос простой
QSqlQuery query;
   query.exec("Select id from kls_pribori where id="+QString::number(id_prib)+" limit 1"

проблема:сразу после соединения с базой все работает замечательно, но если обращение к базе долго отсутствовало (несколько часов), то он возвращает пустой запрос. хотя запись с таким id существует. переконнект с базой решает проблему. Но может существует решение, чтобы такой глюк просто не возникал?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 15:57