|
Вопрос # 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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|