anchor.diff:    Data: Pointer);
   begin
   //  Logger.EnterMethod(Self, 'GetBookmarkData');
  -  PInteger(Data)^ := PRecordInfo(Buffer)^.Bookmark;
  +  PLongint(Data)^ := PRecordInfo(Buffer)^.Bookmark;
   //  Logger.ExitMethod(Self, 'GetBookmarkData');
   end;
   
  
positive.code: function TmCustomVirtualDataset.InternalGetRecord(ABuffer: TRecordBuffer;
    AGetMode: TGetMode; ADoCheck: Boolean): TGetResult;
  var
    iRecCount: Integer;
  begin
  //  Logger.EnterMethod(Self, 'InternalGetRecord');
    try
  
negative.code: 
    procedure RefreshBuffers;
    begin
      FLastFieldListCheckSum:= FieldListCheckSum(Self);
      FLastFieldListCheckSumValid:= (FLastFieldListCheckSum <> 0);
      UpdateCursorPos;
      Resync([]);
    end;
  
  begin
  //  Logger.EnterMethod(Self, 'GetFieldData');
    if not FLastFieldListCheckSumValid then
      RefreshBuffers;
    if (State = dsOldValue) and (FModifiedFields.IndexOf(Field) <> -1) then
    // Requesting the old value of a modified field
  