Форум: "Базы";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизКорректное отключение (подключение) TIBDatabase Найти похожие ветки
← →
zorik (2007-11-08 11:56) [0]Пишу компонент. Хотелось бы наиболее коррекно сделать процедуры подключения и отключения к базе данных Firebird.
Итак отключение
procedure Disconnect;
begin
//может имеет смысл сделать через try. не возникнет ли
// исключение если разрыв случился извне
if not FIBDatabase.Connected then Exit;
//закрить
try
FIBDatabase.Close;
except
raise Exception.Create("Error on Disconnect");
//вопрос что делать здесь дальше, если соеденение не закрылось
end;
end;
Подключение
procedure Connect;
begin
Disconnect;
try
FIBDatabase.Open;
except
on E:Exception do
raise Exception.Create("Error on Connect: " + E.Message);
end;
end;
Откуда возник такой вопрос? При разрыве связи извне не удавалось нормально продолжить работу переподключением. Вот и хочу все сделать с максимальным количеством проверок.
← →
Johnmen © (2007-11-08 12:44) [1]
> не удавалось нормально продолжить работу переподключением.
Это о чем?
← →
DrPass © (2007-11-08 12:44) [2]
> При разрыве связи извне не удавалось нормально продолжить
> работу переподключением
Вряд ли это тебе поможет. IBDatabase во всех известных мне версиях некорректно обрабатывала обрыв связи, и сомневаюсь, что что-либо изменилось сейчас.
← →
Правильный_Вася (2007-11-08 13:44) [3]какой смысл в переподключении, если все активные на даный момент транзакции и датасеты становятся инвалидными
все надо начинать заново, т.е. самый простой и логичный путь - перезайти в программу
← →
zorik (2007-11-08 15:35) [4]
> Правильный_Вася
Наверное ты прав :)
← →
DrPass © (2007-11-08 15:37) [5]
> какой смысл в переподключении, если все активные на даный
> момент транзакции и датасеты становятся инвалидными
Смысл в том, чтобы не заставлять клиента перезапускать программу, а мягко восстановить все это добро
← →
Sergey13 © (2007-11-08 15:53) [6]> [5] DrPass © (08.11.07 15:37)
Может еще и кнопки все програмно нажимать, что бы юзер не напрягался? 8-)
Мое ИМХО по этому поводу - подобной заботой о пользователе ты берешь на себя ответственность за чужой сбой (в данном случае за работу сети). Где гарантия, что "мягко" восстанавливая ты восстановишь именно то что нужно?
← →
DrPass © (2007-11-08 15:59) [7]
> Где гарантия, что "мягко" восстанавливая ты восстановишь
> именно то что нужно?
Это зависит целиком и полностью от архитектуры приложения. Если я знаю, что могу в той или иной ситуации корректно восстановить работу после обрыва сети - почему бы мне это не сделать? Если не знаю - тогда не буду, естественно.
← →
Sergey13 © (2007-11-08 16:06) [8]> [7] DrPass © (08.11.07 15:59)
В принципе согласен, но четко знать ситуацию можно только в относительно простом приложении, которое и перезапустить за три-четыре клика можно. Т.е. смысл помощи теряется. А ответственность остается.
← →
zorik (2007-11-08 17:24) [9]Смысл в том чтоб не выскакивал Exception при последовательном закрытии модальных окон, если их будет несколько. Например: окно1 -> окно2 -> окно3 -> окно4 -> окно5. Хотя может и недоработки в программе были.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.054 c