• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

pol_g

Пипл, проблема такая
На форме есть компонент 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

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

pol_g

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

????

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

Barmutik

Для: ????

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


Для: pol_g

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

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

pol_g

<!--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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!