Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36OnDeleteError.shtml

Глава 36. TDataSet.OnDeleteError

Событие OnDeleteError

Затрагиваемые объекты TDataSet
Назначение Событие OnDeleteError ссылается на процедуру обработчика событий, которая выполняется всегда, когда обнаруживается ошибка удаления записи.
Объявление type TDataAction = (daFail,daAbort,daRetry);
TDataSetErrorEvent = procedure(DataSet: TDataSet; E: EDatabaseError; var Action: TDataAction) of object;
property OnDeleteError: TDataSetErrorEvent;
Пример синтаксиса
procedure TTDataSetTestForm.OnDeleteErrorCheckBoxClick(Sender: TObject);
begin
   if OnDeleteErrorCheckBox.Checked
      then CustomerTable.OnDeleteError := CustomerTableDeleteError
      else CustomerTable.OnDeleteError := Nil;

end;
 
procedure TTDataSetTestForm.CustomerTableDeleteError(Dataset: TDataSet; E: EDatabaseError; var Action: TDataAction);
var
   I: Integer;

begin
// если ошибка является ошибкой механизма базы данных, сканировать стек
// ошибок машины, начиная с вершины стека и вниз ко дну.
   if (E is EDBEngineError) then with (E as EDBEngineError) do
      for I := Pred(ErrorCount) downto 0 do with Errors[I] do
// проверить, является ли текущий вход стека требуемым. Обратите
// внимание на то, что константа DBIERR_DETAILRECORDSEXIST объявлена в
// модуле BDE.
        if Errorcode = DBIERR_DETAILRECORDSEXIST then begin
// Если так, выдать сообщение, установить действие по ошибке и
// разорвать цикл 
        MessageBeep($FFFF);
        MessageDlg('Custeener has orders. Cannot delete.', mtWarning,
                    [mbOK],0);
        Action := daAbort;
        break;
   end;

end;
Описание        Событие OnDeleteError включается, когда обращение к методу Delete TDataSet не было успешным из-за возникновения какой-либо ошибки. Если процедура обработчика событий для OnDeleteError определена, она имеет три параметра. Первый параметр идентифицирует TDataSet, второй параметр является объектом исключения EDatabaseError, описывающим ошибку, и третий параметр является управляющим параметром Action, передаваемым по ссылке. Параметр Action определяет, намерены ли вы выполнить пользовательскую обработку ошибки и каким образом это будет достигаться. Параметру Action можно присвоить одно из трех значений: daFail, daAbort и daRetry. Действие daFail повторно возбуждает исходное исключение и передает его обычной системе обработки исключений. Значение параметра Action по умолчанию — daFail. Действие daAbort возбуждает "молчаливое" исключение EAbort. Действие daRetry будет пытаться еще раз выполнить операцию удаления. Обратите внимание, что если во время повтора встречается любая ошибка, обработчик событий OnDeleteError вызывается повторно.

[Свойство Active] [Метод ActiveBuffer] [Событие AfterCancel] [Событие AfterClose] [Событие AfterDelete] [Событие AfterEdit] [Событие AfterInsert] [Событие AfterOpen] [Событие AfterPost] [Метод Append] [Метод AppendRecord] [Метод ApplyUpdates] [Свойство AutoCalcFields] [Свойство BOF] [Событие BeforeCancel] [Событие BeforeClose] [Событие BeforeDelete] [Событие BeforeEdit] [Событие BeforeInsert] [Событие BeforeOpen] [Событие BeforePost] [Свойство Bookmark] [Свойство CachedUpdates] [Свойство CanModify] [Метод Cancel] [Метод CancelUpdates] [Метод CheckBrowseMode] [Метод ClearFields] [Метод Close] [Метод CommitUpdates] [Метод ControlsDisabled] [Метод CursorPosChanged] [Свойство DataSource] [Свойство DefaultFields] [Метод Delete] [Метод DisableControls] [Метод Edit] [Метод EnableControls] [Свойство EOF] [Свойство ExpIndex] [Метод FetchAll] [Метод FieldByName] [Свойство FieldCount] [Свойство FieldDefs] [Свойство FieldValues] [Свойство Fields] [Свойство Filter] [Свойство FilterOptions] [Свойство Filtered] [Метод FindField] [Методы FindFirst] [Методы FindLast] [Методы FindNext] [Методы FindPrior] [Метод First] [Свойство Found] [Метод FreeBookmark] [Метод GetBookmark] [Метод GetCurrentRecord] [Метод GetFieldList] [Метод GetFieldNames] [Метод GotoBookmark] [Свойство Handle] [Метод Insert] [Метод InsertRecord] [Метод IsLinkedTo] [Свойство KeySize] [Метод Last] [Свойство Locale] [Метод Locate] [Метод Lookup] [Свойство Modified] [Метод MoveBy] [Метод Next] [Событие OnCalcFields] [Событие OnDeleteError] [Событие OnEditError] [Событие OnFilterRecord] [Событие OnNewRecord] [Событие OnPostError] [Событие OnServerYield] [Событие OnUpdateError] [Событие OnUpdateRecord] [Метод Open] [Метод Post] [Метод Prior] [Свойство RecNo] [Свойство RecordCount] [Свойство RecordSize] [Метод Refresh] [Метод Resync] [Метод RevertRecord] [Метод SetDetailFields] [Метод SetFields] [Свойство State] [Метод UpdateCursorPos] [Свойство UpdateObject] [Метод UpdateRecord] [Свойство UpdateRecordTypes] [Метод UpdateStatus] [Свойство UpdatesPending]


<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:56 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB36OnDeleteError.shtml