Как отловить ошибку подключения к бд?

  • Автор темы pol_g
  • Дата начала
Статус
Закрыто для дальнейших ответов.
P

pol_g

Гость
#1
Пипл, проблема такая
На форме есть компонент TIBDatabase
в коде я устанавливаю для него значения параметров
как отловить ошибку, появляющуюся в случае неправильно введённых логина и пароля?
Если ввести неверный лог и пасс то выскакивает окно ошибки с сообщением:

"Project raised exception class EIBInterBaseError with message "User name and password are not defined" process stopped
(Пишу на Дельфи 5) Приведённый ниже код не срабатывает.

try
ibDBforUpdate.Params.Values['user_name']:=GetLogin;
ibDBforUpdate.Params.Values['password']:=GetPassword;
ibDBforUpdate.Connected:= true;
except
on EIBInterBaseError do
stUpdateResult.Caption:= Неправильные данные!';
end;
 
B

Barmutik

Гость
#2
А если ловить все эксэпшины то окошко не показывается ?
 
P

pol_g

Гость
#3
подскажите плиз как отловить тогда все эксэпшины?
 
?

????

Гость
#4
Для: pol_g
А может проблема в том, что данное исключение обрабатывается и вышей программой и Delphi???? Посмотрите Caption и если он изменяется, т.е. except срабатывает, отключите обработку EIBInterBaseError в Delphi (Tools -> Debugger Options -> Language Exceptions -> Add и добавь EIBInterBaseError - это Delphi сообщение для данного исключения создаваться не будет).
 
B

Barmutik

Гость
#5
Для: ????

Насколько мне не изменяет памсять то добавление эксепшина в этот список всего лиш говорит Дельфи не останаваливаться на этом эксепшине в режиме отладки, а обработка его всё равно идёт.


Для: pol_g

А насчёт обработки всех эксепшинов просто пишите, не указывания класс эксэпшина который Вы хотите обрабатывать:

Код:
try
ibDBforUpdate.Params.Values['user_name']:=GetLogin;
ibDBforUpdate.Params.Values['password']:=GetPassword;
ibDBforUpdate.Connected:= true;
except
stUpdateResult.Caption:= Неправильные данные!';
end;
 
P

pol_g

Гость
#6
<!--QuoteBegin-Barmutik+26:08:2005, 08:57 -->
<span class="vbquote">(Barmutik @ 26:08:2005, 08:57 )</span><!--QuoteEBegin-->Для: ????

Насколько мне не изменяет памсять то добавление эксепшина в этот список всего лиш говорит Дельфи не останаваливаться на этом эксепшине в режиме отладки, а обработка его всё равно идёт.
Для: pol_g

А насчёт обработки всех эксепшинов просто пишите, не указывания класс эксэпшина который Вы хотите обрабатывать:

Код:
try
 ibDBforUpdate.Params.Values['user_name']:=GetLogin;
 ibDBforUpdate.Params.Values['password']:=GetPassword;
 ibDBforUpdate.Connected:= true;
except
 stUpdateResult.Caption:= Неправильные данные!';
end;
[snapback]24096" rel="nofollow" target="_blank[/snapback]​
[/quote]

а подскажите пожалуйста как мне тогда вывести код ошибки или сообщение ошибки?
 
B

Barmutik

Гость
#7
Код:
try
....
except
on E: Exception do
 ShowMessage(E.Message);
else
 ShowMessage('External error!');
end;
 
Статус
Закрыто для дальнейших ответов.