delete method

void delete()

Implementation

void delete() {
  if (!canModify) {
    databaseError(SDatasetReadOnly, this);
  }
  if (isEmpty) {
    databaseError(SDatasetEmpty, this);
  }
  if (_state == TDataSetState.dsInsert) {
    cancel();
  } else {
    dataEvent(TDataEvent.deCheckBrowseMode, 0);
    doBeforeDelete();
    doBeforeScroll();
    if (!tryDoing(internalDelete, onDeleteError)) return;
    freeFieldBuffers();
    setState(TDataSetState.dsBrowse);
    setCurrentRecord(_activeRecord);
    resync(<TResyncModeItem>{});
    doAfterDelete();
    doAfterScroll();
  }
}