anchor.diff:  end;
   
   procedure TmCustomVirtualDataset.SetFieldData(Field: TField;
  -  Buffer: TValueBuffer; NativeFormat: Boolean);
  +  Buffer: {$IFDEF FPC}pointer;{$ELSE}TValueBuffer;{$ENDIF} NativeFormat: Boolean);
   begin
   end;
   
  
positive.code:   inherited DoAfterOpen;
  end;
  
  procedure TmCustomVirtualDataset.InternalSetFieldData(AField: TField;
    ABuffer: Pointer; ANativeFormat: Boolean);
  (*var
    Data  : Variant;
    RecBuf: TRecordBuffer;
    TempValue : Variant;
    *)
  begin
    (*
  //  with AField do
  //  begin
      if not(State in dsWriteModes) then
        DatabaseError(SNotEditing, Self);
      GetActiveRecBuf(RecBuf);
  
      if aField.FieldNo > 0 then
      begin
        if readonly and not(State in [dsSetKey, dsFilter]) then
          DatabaseErrorFmt(SFieldReadOnly, [aField.DisplayName]);
  
        aField.Validate(ABuffer);
  
        if FModifiedFields.IndexOf(AField) = -1 then
        begin
          TempValue := AField.Value;
          if not VarIsEmpty(TempValue) then
          begin
            InjectVariantInBuffer(FOldValueBuffer, TempValue, aField.Index);
  //          PVariantList(FOldValueBuffer + SizeOf(TRecordInfo))[AField.Index] := TempValue; //{$IFDEF FPC}[0]{$ENDIF} := TempValue;
            FModifiedFields.Add(AField);
          end;
        end;
      end;
  
      if ABuffer = nil then
        Data := Null
      else
        BufferToVariant(AField, ABuffer, Data);
  
  
  //    PVariantList(RecBuf + SizeOf(TRecordInfo))[Field.Index] := Value
  //    PVariantList(RecBuf + SizeOf(TRecordInfo))[AField.Index] := Data; //{$IFDEF FPC}[0]{$ENDIF} := Data;
      InjectVariantInBuffer(RecBuf, Data, AField.Index);
  
      if not(State in [dsCalcFields, dsInternalCalc, dsFilter, dsNewValue]) then
        DataEvent(deFieldChange, Longint(AField));
  //  end;
  *)
  end;
  
  function TmCustomVirtualDataset.GetFieldData(Field: TField;
     {$IFNDEF FPC}var{$ENDIF} Buffer: TValueBuffer): Boolean;
  var
    RecBuf: TRecordBuffer;
    Data  : variant;
  
negative.code: procedure TmCustomVirtualDataset.BeforeDestruction;
  begin
    FModifiedFields.Free;
    FSortManager.Free;
    FFilterManager.Free;
    FSummaryManager.Free;
  