Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
15-1203077170
Olegator-88
2008-02-15 15:06
2008.03.30
численное дифференцирование


15-1203336490
Andy BitOff
2008-02-18 15:08
2008.03.30
Новый тип потокового видео


2-1203488436
vegarulez
2008-02-20 09:20
2008.03.30
Вопрос про alignment у TEdit.


15-1202996674
Ломброзо
2008-02-14 16:44
2008.03.30
Пошла волна :)


4-1185978968
tio
2007-08-01 18:36
2008.03.30
Полигоны





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский