Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2015, 09:04   #1
opencloser
Пользователь
 
Регистрация: 04.03.2014
Сообщений: 15
По умолчанию Восстановление соединения

Проблема в бесконечном вызове события ConnectionLost.
код:
Код:
procedure MyConnConnectionLost(Sender: TObject;
  Component: TComponent; ConnLostCause: TConnLostCause;
  var RetryMode: TRetryMode);
begin
  if RetryCount < 2 then
  begin
    Inc(RetryCount);
    RetryMode := rmReconnectExecute;
  end
  
  else begin
    If MessageDlg ('Восстановить соединение?', mtConfirmation, [mbYes, mbNo] ,0) = mrYes then
    begin
      RetryCount:=0;
      RetryMode := rmReconnectExecute;
    end
    else
    begin
      RetryMode := rmRaise;
      ShowMessage('БД  '+MyConn.Server+' не доступна, Программа будет завершена');
      Application.Terminate;
    end;
  end;
end;
Мои действия:
1-запускаю сервер бд (MySQL 5.0)
2-запускаю программу.
3-останавливаю сервер бд
4-появляется окно с вопросом восстановления соединения
5-запускаю сервер бд
6-подтверждаю приостановление соединения, кнопкой ОК.
7-вижу это же окно(цикл бесконечный, соединение имеется, но событие зацикливается).

Почему событие вызывается после восстановления соединения?
Как дать возможность пользователю продолжить работу в программе?

Последний раз редактировалось Stilet; 13.05.2015 в 09:18.
opencloser вне форума Ответить с цитированием
Старый 14.05.2015, 09:34   #2
opencloser
Пользователь
 
Регистрация: 04.03.2014
Сообщений: 15
По умолчанию

Пользователь подключается к серверу по WiFi и соединение раз в день обязательно падает(к примеру пошёл на обед и выключил роутер или захватил с собой ноутбук), важно продолжить работу на том же месте где и прервался... к тому же работа в 3-и смены, профилактика(перезагрузка и обновление) только раз в неделю в остальное время 100% свободный доступ к бд. Как вы решаете проблемы со сбоем в сети, сомневаюсь что все программы написаны "правильно".
opencloser вне форума Ответить с цитированием
Старый 14.05.2015, 10:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как вы решаете проблемы со сбоем в сети
1) Настраиваю коммутатор на удержание подключения
2) пишу прогу таким образом, что она подключается-работает-отключается.
Это добавляет проблем серверу, но не настолько серьезно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифрование соединения hiho Работа с сетью в Delphi 23 23.09.2014 13:34
Таймаут соединения. deromik C# (си шарп) 0 19.06.2013 17:39
Ошибка соединения kilogram PHP 4 22.06.2012 16:57
C#: Создание соединения с БД Veiron Общие вопросы .NET 3 03.06.2009 23:56
Потдержка соединения с БД Crucian БД в Delphi 3 18.01.2008 18:56