Класс это категория объектов, обладающих одинаковыми свойствами и поведением. При этом объект


Исключения, возникающие при работе с базами данных



бет16/16
Дата27.01.2023
өлшемі76,6 Kb.
#63245
1   ...   8   9   10   11   12   13   14   15   16
Исключения, возникающие при работе с базами данных
Delphi, обладая прекрасными средствами доступа к данным, основывающимися на интерфейсе IDAPI, реализованной в виде библиотеки Borland Database Engine (BDE), включает ряд обработчиков исключительных ситуаций для регистрации ошибок в компонентах VCL работающим с БД. Дадим краткую характеристику основным из них:

  • EDatabaseError - наследник Exception ; происходит при ошибках доступа к данным в компонентах-наследниках TDataSet. Объявлено в модуле DB. Ниже приведен пример из Delphi On-line Help, посвященный этому исключению:

  • repeat {пока не откроем таблицу или не нажмем кнопку Cancel}

  • try

  • Table1.Active := True; {Пытаемся открыть таблицу}

  • Break; { Если нет ошибки - прерваем цикл}

  • except

  • on EDatabaseError do

  • {Если нажата OK - повторяем попытку открытия Table1}

  • if MessageDlg('Не могу открыть Table1', mtError,

  • [mbOK, mbCancel], 0) <> mrOK

  • then

  • raise;

  • end;

until False;

    • EDBEngineError - наследник EDatabaseError ; вызывается, когда происходят ошибки BDE или на сервере БД. Объявлено в модуле DB:

    • EDBEngineError = class(EDatabaseError)

    • private

    • FErrors: TList;

    • function GetError(Index: Integer): TDBError;

    • function GetErrorCount: Integer;

    • public

    • constructor Create(ErrorCode: DBIResult);

    • destructor Destroy;

    • property ErrorCount: Integer;

    • property Errors[Index: Integer]: TDBError;

end;
Особенно важны два свойства класса EDBEngineError : Errors - список всех ошибок, находящихся в стеке ошибок BDE. Индекс первой ошибки 0;
ErrorCount - количество ошибок в стеке.
Объекты, содержащиеся в Errors, имеют тип TDBError. Доступные свойства класса TDBError:
ErrorCode - код ошибки, возвращаемый Borland Database Engine;
Category - категория ошибки, описанной в ErrorCode;
SubCode - 'субкод' ошибки из ErrorCode;
NativeError - ошибка, возвращаемая сервером БД. Если NativeError 0, то ошибка в ErrorCode не от сервера;
Message - сообщение, переданное сервером, если NativeError не равно 0; сообщение BDE - в противном случае.

  • EDBEditError - наследник Exception ; вызывается, когда данные не совместимы с маской ввода, наложенной на поле. Объявлено в модуле Mask.

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




Design by Andre M. Erofeev


Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   16




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет