Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Как восстановить утерянный Connect   Найти похожие ветки 

 
Andrushk   (2003-10-07 18:21) [0]

У пользователей плохая связь,переодически обрывается.Ситуация такая,пользователь залогинился,поработал,потом минут десять курит,и когда снова хочет продолжить работу программа выдает: not connected to Oracle. Хотелось бы сделать так: если связь порвалась, то при попытке пользователя сделать select, update ... выдавалось сообщение: "типа были проблемы со связью,но я сейчас законнекчусь, подожди 5 сек и все будет ок",и пыталась бы закконектиться.
Может кто так делал? Я ни у SQLConnection, ни у TSQLDataSet, ни у провайдера не нашел события на которое можно было бы повесить этот переконнект.
Помогите плиз, пожалейте пользователей:-)


 
Sandman25   (2003-10-07 18:23) [1]

Все операции производить в try except, и при возникновении указанной ошибки коннектиться заново.


 
Andrushk   (2003-10-07 18:28) [2]

Ну а всетаки, при попытке сделать скажем select при отсутствии связи возникает ошибка, неужели у цепочки компонентов Connection->DataSet->Provider->ClientDataSet не срабатывает какое-нибудь событие???
Мне try...except не очень нравиться, он в данном случае что-то фигово работает


 
Andrushk   (2003-10-07 18:31) [3]

ну если просто Close/Open барть в try...except то конечно работает...но вот почему-то когда ошибка на ApplyUpdates происходит try...except вообще пролетает как ничего не было


 
Sandman25   (2003-10-07 18:32) [4]

Посмотрите TConnectChangeEvent, только что нашел. Даже не знаю, у кого он есть.


 
Sandman25   (2003-10-07 18:34) [5]

Посмотрите еще AfterDisconnect.

3] Andrushk (07.10.03 18:31)

Наверное, там вызывается ShowMessage без генерации исключения.


 
Andrushk   (2003-10-07 18:34) [6]

и потом, у меня в приложении столько действий, причем прописанных в куче разных форм - это рихнешься везде try...except ставить, а вот датасеты все в датамодуле и их относительно немного, да и один обработчик им можно повесить...как бы всетаки их событиями обойтись?


 
Sandman25   (2003-10-07 18:39) [7]

Напишите своего потомка TDataset, у которого перекройте ApplyUpdates.


 
Andrushk   (2003-10-07 18:46) [8]

AfterDisconnect - не подходит я его (ну и Before) - первым делом попробовал...
Подождем...может еще кто идею подкинет
А TConnectChangeEvent - я посмотрю сейчас


 
Andrushk   (2003-10-08 09:00) [9]

2 Sandman25
Мда,похоже ты единственный специалист в этой области:-)


 
Sergey13   (2003-10-08 09:59) [10]

2Andrushk (07.10.03 18:21)
>Помогите плиз, пожалейте пользователей:-)
На самом деле ты просишь пожалеть программиста, т.е. себя любимого. Единственно возможный правильный совет от Sandman25 © (07.10.03 18:23) [1] тебя не устроил, потому что

>это рихнешься везде try...except ставить

Чего же ты ждешь?
Ну запрашивай по таймеру каждые N секунд
select 1 from dual
например и обрабатывай исключение. Это хоть как то поможет. Хотя скорее всего спрячет проблему подальше, но не решит ее.


 
Alexey Dubovsky   (2003-10-08 16:35) [11]

Вообщето проблема, как я понимаю, проблема не в плохой связи, а с тем, что человек попадает на конечный сервер Оракл через Фаервол. Если это так, то могу подсказать, как решается эта проблема.


 
Arm79   (2003-10-08 17:51) [12]

На форму ApplicationEvent и перехватывай ошибку в одном месте. Таж же и заново соединяйся.


 
Виталий   (2003-10-25 23:08) [13]

Ну есть такое предложение по данной проблеме:

1. Создать стек состояний всех таблиц БД (Акт/Не акт)
2. Создать универсальную процедуру коннекта и активизации таблиц,
которая будет выполняться после обрыва.


 
sniknik   (2003-10-26 00:43) [14]

еще одно предложение,
переделать все используя мидас, трехзвенку, там через TSimpleObjectBroker можно целый список серверов задать, нет коннекта к одному береш данные со следующего.

правда "себе любимому" придется поработать, ;о)) но пользователь выиграет.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.05 c
1-41418
axx
2003-10-29 14:15
2003.11.13
DLL version info


3-40787
grifon-nn
2003-10-21 22:27
2003.11.13
Индексы Paradox


14-41874
Думкин
2003-10-24 04:51
2003.11.13
С днем рождения! 24 октября.


1-41712
Cranium
2003-11-03 18:56
2003.11.13
Как в обработчике события запретить его?


14-42112
Jih
2003-10-22 23:36
2003.11.13
Нужна база на Interbase !!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский