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

Тема в разделе "Delphi - Базы данных", создана пользователем pol_g, 25 авг 2005.

Статус темы:
Закрыта.
  1. pol_g

    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;
     
  2. Barmutik

    Barmutik Гость

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

    pol_g Гость

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

    ???? Гость

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

    Barmutik Гость

    Для: ????

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


    Для: pol_g

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

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

    pol_g Гость

    <!--QuoteBegin-Barmutik+26:08:2005, 08:57 -->
    <span class="vbquote">(Barmutik @ 26:08:2005, 08:57 )</span><!--QuoteEBegin-->Для: ????

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

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

    Код (Text):
    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]

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

    Barmutik Гость

    Код (Text):
    try
    ....
    except
    on E: Exception do
     ShowMessage(E.Message);
    else
     ShowMessage('External error!');
    end;
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей