| 
Вопрос # 5 302/ вопрос решён /  | 
 
 | 
 
 
Приветствую, уважаемые эксперты! Нужна ваша помощь! 
 
Подключаюсь к БД Postgres через ADOConnection 
Проблем с добавлением, удалением записей итд нет 
 
НО в процессе работы рвется связь с Базой данных 
Как можно отследить это событие? 
 
Спасибо. 
  | 
 
Вопрос задал: neon (статус: Посетитель) 
Вопрос отправлен: 21 мая 2011, 11:32 
Состояние вопроса: решён, ответов: 0. 
 |  
 
 
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 31 мая 2011, 11:13; участников в обсуждении: 3. 
 
 | 
 6ruse (статус: 1-ый класс), 25 мая 2011, 13:20 [#1]: 
каким методом добавляете данные? с чего такая уверенность что рвется соединение?
 |   
 
 | 
 neon (статус: Посетитель), 26 мая 2011, 06:21 [#2]: 
Нет... суть не в записях. 
Интересует ситуация например, когда физически сеть пропала. 
То есть соединения уже нет, но и ошибки нет. 
Ошибка появляется, когда я пытаюсь добавить запись в Таблицу, что собственно очевидно. 
 
Вот и вопрос в том, как отследить событие у AdoConnection, когда пропадает подключение к Базе данных?
 |   
 
 | 
 Вадим К (статус: Академик), 31 мая 2011, 10:44 [#3]: 
могу написать, как это делают в продакш коде. 
procedude sendsql(sql:string);
var i,j:integer;
begin
 i := 0;
  while i < 5 do begin
    try
      execsql(sql); // собственно выполнение запроса.
      exit;
    except
      //а вот сюда попадем, если что то не так
      log('не получилось отправить');
      inc(i);
    end;
    j := 0;
    while j > 5 do // сделаем 5 попыток переподлючиться
    try
      // тут правильно вставить sleep(5); - дать 5 секунд паузу, а то если сервер перегружается,
      // можно быстро свои попытки протратить. Но то в этом случае код лучше в поток вынести.
      disconnect_from_server;
      connect_to_server;
      break;
    except
      log('не удалось переподключиться');
      inc(j);
    end;
    exit;
  end;
end;
log - это процедура записи в лог. Названия остальных процедур понятно с названия. 
 
Это схематический код! оригинала на делфи нет, переводил с плюсов.
Галочка "подтверждения прочтения" - вселенское зло. 
 |   
 
 | 
 neon (статус: Посетитель), 31 мая 2011, 11:13 [#4]: 
Вадим К спасибо! 
сейчас попробую реализовать
 |   
31 мая 2011, 11:13: Статус вопроса изменён на решённый (изменил автор вопроса — neon) 
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. 
 |