Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Статьи BDE Перехват ошибок DBEngine

Перехват ошибок DBEngine

Оцените материал
(1 Голосовать)

Перехват ошибок DBEngine

Ошибки общего характера, типа Key Violation или конфликты блокировки лучше всего обрабатывать в обработчике события Application.OnException ...например:

{Секция Interface}
procedure HandleException(Sender: TObject; E: Exception);

{Секция Implementation}
procedure TForm1.HandleException(Sender: TObject; E: Exception);
var err : DBIResult;
begin
if E is EDBEngineError then begin
err := (E as EDBEngineError).errors[(E as EDBEngineError).errorcount-1].errorcode;
if (err = DBIERR_KEYVIOL) then
showMessage('Ошибка Key violation!')
else if (err = DBIERR_LOCKED) then
showmessage('Запись блокирована другим пользователем')
else if (err = DBIERR_FILELOCKED) then
showmessage('Таблица блокирована кем-то еще')
else
showmessage('Другая ошибка DB')
end
else
showmessage('Упс!: '+E.Message);
end;

...'инсталлировать' обработчик исключений можно так:

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.onException:=HandleException;
end;

Для использования предопределенных констант ошибок ('DBIERR_etc.'), вам необходимо включить DBIERRS в список используемых модулей. Полный список кодов ошибок при работе с базами данных вы можете найти в файле DBIERRS.INT, расположенном в каталоге :\DELPHI\DOC.

Прочитано 11834 раз

Авторизация



Счетчики