Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






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.

 

Заключение

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



Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.005 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал