|
Компьютер - это электронное устройство,
которое не заменит человека до тех пор, пока не научится
смеяться над шутками босса и сваливать свои собственные ошибки
на соседний компьютер. |
Ошибки общего характера, типа 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. |