applyRecUpdate method

  1. @override
void applyRecUpdate(
  1. TUpdateKind updateKind
)
override

Implementation

@override
void applyRecUpdate(TUpdateKind updateKind) {
  // Moved to connection: the SQLConnection always has more
  // information about types etc. than SQLQuery itself. (original comment kept as-is)
  sqlConnection!.applyRecUpdate(this, updateKind);

  TField? lastIDField;
  if (updateKind == TUpdateKind.ukInsert) {
    lastIDField = needLastInsertID();
  } else {
    lastIDField = null;
  }
  final doRefresh = (updateKind == TUpdateKind.ukModify ||
          updateKind == TUpdateKind.ukInsert) &&
      needRefreshRecord(updateKind);
  if (lastIDField != null || doRefresh) {
    // updates fields directly in record buffer of TBufDataSet
    //   TDataSet buffers are resynchronized at end of ApplyUpdates
    //   process (original comment kept as-is)
    final s = setTempState(TDataSetState.dsRefreshFields);
    try {
      if (lastIDField != null) {
        refreshLastInsertID(lastIDField);
      }
      if (doRefresh) {
        refreshRecord(updateKind);
      }
    } finally {
      restoreState(s);
    }
  }
}