Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как реализовать проверку на разрыв соединения с сервером? / 25 сообщений из 31, страница 1 из 2
24.11.2009, 14:48
    #36328543
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Всем привет!


Я использую: Delphi7, MySQL 5.0.6, ZeosDBO-6.6.3. Компонент для соединения ZConnection библиотеки ZeosDBO.
Никак не получается с try / except... Как только не пробывал делать!!!

form1.Zconnection1.connect;
try
showmessage('server connect');
except
form1.Zconnection1.disconnect;
showmessage('server error connect');
end;

Все равно вылазиет системная ошибка типа: project raised exception class ezsqlexception with message 'can't connect mysql server on 192.168.1.202 (10065). process stoped.'
С try / finally таже самая фигня. Если этот код использовать для открытия обычного файла на диске, то все прекрасно работает. Правда для этого надо будет еще директивы использовать {$I- или +}. А с коннектом никак не хочет.
Может там код ошибки можно как нибудь вручную сбросить, типа error:=0 если программно никак нельзя перехватить системное сообщение?
...
Рейтинг: 0 / 0
24.11.2009, 15:17
    #36328627
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005,

Сдается мне, тебе надо try написать на строчку выше :)
...
Рейтинг: 0 / 0
24.11.2009, 15:38
    #36328697
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
10065 - No route to host (Нет маршрута к хосту).
...
Рейтинг: 0 / 0
24.11.2009, 15:54
    #36328758
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Да я вкурсе что нет маршрута к хосту... я сам шнурок втыкаю! =)))
Как перехватить ошибку эту? кто нибудь пользовался ZEOSDBO вообще?
...
Рейтинг: 0 / 0
24.11.2009, 15:58
    #36328772
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005Как перехватить ошибку эту? кто нибудь пользовался ZEOSDBO вообще?ДжекНепотрошитель ответил тебе уже
...
Рейтинг: 0 / 0
25.11.2009, 09:05
    #36329912
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
не работает, то что он ответил. Поэтому и спрашиваю!
Ерунду в таком случае просьба не предлагать, все глупые варианты уже давно были проверены.
...
Рейтинг: 0 / 0
25.11.2009, 09:32
    #36329960
Lavrenty
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Может надо реализовать проверку наличия сети ?
...
Рейтинг: 0 / 0
25.11.2009, 15:17
    #36331097
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
to Lavrenty идея интересная, сразуже проверил.
Физическое соединение оставил не тронутым(кабель), т.е. коннект всегда есть. Теперь вручную остановил службу MySQL сервера.
при попытке соединиться с сервером программа все равно выдает ошибку соединения. Точно такую же, только код изменился с 10065 на 10061. А так все равно не получается перехватить. ХЕЛП!!! :(
...
Рейтинг: 0 / 0
25.11.2009, 15:25
    #36331133
x77
x77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005project raised exception class ezsqlexception

если Zeos при неудачном коннекте поднимает эксепшн, а не выводит showmessage сам, то этот эксепшн будет обрабатываться в try..except.

может, вы просто из-под дельфей проверяете? со включенным "Stop on Delphi exceptions"? запустите не из среды. не должно там эксепшена быть, если сделать, как говорил ДжекНепотрошитель.
...
Рейтинг: 0 / 0
25.11.2009, 15:27
    #36331143
misha mike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Сдается мне, что топикстартер просто не отличает debug exception от runtime, вот и кажется ему что ничего не отлавливается...
...
Рейтинг: 0 / 0
25.11.2009, 15:28
    #36331147
misha mike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
x77, три секунды :)
...
Рейтинг: 0 / 0
25.11.2009, 15:42
    #36331208
x77
x77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
misha mike,

:)
...
Рейтинг: 0 / 0
25.11.2009, 15:55
    #36331254
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
А как перехватываешь?

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
25.11.2009, 18:39
    #36331898
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005не работает, то что он ответил. Поэтому и спрашиваю!
Ерунду в таком случае просьба не предлагать, все глупые варианты уже давно были проверены.

Работает. Только
а) Пока у тебя в Delphi включена опция Stop on language exceptions, он всегда будет останавливать программу, независимо от твоей обработки
б) Если у тебя произошло исключение на Connect, то делать в блоке except Disconnect - скорее всего приведет ко второму исключению
...
Рейтинг: 0 / 0
26.11.2009, 11:30
    #36332962
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Простите, но даже если запускать приложение не из Делфи, а из самой Винды екзешник, то все
равно выдает ошибку типа Showmessage с выше упомянутым содержимым. Т.е. как говорил товарищ
"х77" недолжно быть... но призапуске не из среды эксепшн все равно есть, причем с
шовмессажем.

Про отключенный флажок "Stop on Delphi exceptions" ничего сказать не могу, т.к. вообще не
могу найти где он находится... В опциях проекта не увидел и в категории меню ТУЛС тоже не
нашел. Подскажите мне глупому где его найти... =) У меня седьмая делфа.

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

то "ДжекНепотрошитель" ... Связку try\exception не использую, т.к. вы правильно сказали про
второе исключение. Использую try\finally.

Спасибо всем за бурные обсуждения в топике, уповаю на вашу помощь! ;)
...
Рейтинг: 0 / 0
26.11.2009, 11:52
    #36333053
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
С каким именно и как вылавливаешь?
Думаешь мы будем гадать о твоем коде?

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
26.11.2009, 13:22
    #36333425
blackapple
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
У меня работает на Delphi2007, MySQL 5.1.37, ZeosDBO-6.6.5.
Проблем не замечено, ezsqlexception не появляется.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 procedure  TForm1.N5Click(Sender: TObject);
 var  s:  string ;
 begin 
  s:= InputBox('Подключение к Серверу MySQL', 'Введите адрес или имя сервера', 'localhost');
  ZCon.HostName:= Trim(s);
  s:= InputBox('Подключение к Серверу MySQL', 'Введите имя пользователя сервера', 'mysql');
  ZCon.User:= Trim(s);
  s:= InputBox('Подключение к Серверу MySQL', 'Введите пароль пользователя '+ZCon.User, 'mysql');
  zcon.Password:= Trim(s);
  s:= InputBox('Подключение к Серверу MySQL', 'Введите имя Базы данных', 'aist');
  ZCon.Database:= Trim(s);
   try 
    ZCon.Connected:= True;
   except 
    showMessage('Не удалось подключиться к серверу MySQL');
   end ;
 end ;
...
Рейтинг: 0 / 0
26.11.2009, 13:40
    #36333512
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
blackapple, спасибо попробую!
...
Рейтинг: 0 / 0
26.11.2009, 14:23
    #36333696
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
to BLACKAPPLE... Не смешно!!! :( Код точно такойже как и твой. За тем исключением, что
настройки сервера уже установлены в свойствах компонента Zconnection.
Код такой:

procedure TForm1.Button1Click(Sender: TObject);
begin
try
ZConnection1.Connect;
ShowMessage('Соединение установлено!');
except
showMessage('Ошибка!');
end;
end;

В результате выполнения вылазиет злосчастная ошибка эксепшн, а из своих сообщений из кода
ничего не появляется. Она сразу все стопорит. Если не секрет, ты сам пробовал этот код в
случаях: 1-когда нет физического соединения (выдернули шнур сетки); 2- остановлена вручную
служба MySQL сервера (типа сервер сбоит, но при этом соединение аппаратное все равно есть)?
Просто интересно...

Я уже даже переустановил компоненты ZEOSDBO до версии 6.6.5. Вдруг там жуки есть, мало ли
что. И все равно таже фигня. К сожалению версии MySQL 5.1. и Delphi2007 у меня нет.
...
Рейтинг: 0 / 0
26.11.2009, 14:35
    #36333737
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Кроме исключение, что еще на экран выскакивает?

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
26.11.2009, 14:36
    #36333742
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
И проверка должна делаться не из Дельфи

--
http://www.podgoretsky.com
...
Рейтинг: 0 / 0
26.11.2009, 15:10
    #36333853
Dean-2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Anatoly PodgoretskyКроме исключение, что еще на экран выскакивает?


вылазиет системная ошибка типа: project raised exception class ezsqlexception with message 'can't connect mysql server on 192.168.1.202 (10065). process stoped.'. Ошибка в виде окна типа - DialogMessage. Программа делает аварийное завершение работы с нажатием CTRL+F2 для возврата в нормальный режим.

На форме расположен только один компонент ZEOSDBO ZConnection. Нужно убрать всплывающую ошибку данного типа, если сеть повреждена или сервер MySQL остановлен.
При рабочем сервере и сетке все прекрасно работает!!! Но задача отловить ошибку в случае разрыва соединения или сбоя на сервере. Тупо один try\except или try\finally не помогает.
...
Рейтинг: 0 / 0
26.11.2009, 15:27
    #36333902
blackapple
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005,
Да проверял во всех перечисленных тобой случаях.
1. При подключении указывал не существующий хост
2. Подключал на localhost Служба MySql остановлена.

Переустанови компонент ZeosDBO.
...
Рейтинг: 0 / 0
26.11.2009, 15:32
    #36333921
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Dean-2005Программа делает аварийное завершение работы с нажатием CTRL+F2 для возврата в нормальный режим.Вы вообще не читаете что вам пишут?ДжекНепотрошительРаботает. Только
а) Пока у тебя в Delphi включена опция Stop on language exceptions, он всегда будет останавливать программу, независимо от твоей обработки
б) Если у тебя произошло исключение на Connect, то делать в блоке except Disconnect - скорее всего приведет ко второму исключению
...
Рейтинг: 0 / 0
26.11.2009, 15:33
    #36333926
blackapple
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как реализовать проверку на разрыв соединения с сервером?
Протокол посмотри какой у тебя стоит.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / как реализовать проверку на разрыв соединения с сервером? / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]