docs: public FieldList move(int iRelPosition) throws DBException
      {
          if (this.getRecord() != this.getCurrentTable().getRecord())
          {
          	if (this.getRecord().getEditMode() == DBConstants.EDIT_CURRENT)
          	{
  	        	this.getRecord().getKeyArea(DBConstants.MAIN_KEY_AREA).reverseKeyBuffer(null, DBConstants.TEMP_KEY_AREA);
  	        	this.getRecord().getKeyArea().reverseKeyBuffer(null, DBConstants.TEMP_KEY_AREA);	// Restore key (since this is current, it is guaranteed not to be next)
          	}
          }
      	Record recLastCurrent = this.getCurrentTable().getRecord();
          FieldList record = this.moveThruMultipleTables(iRelPosition);
      	if (this.getRecord() != record)
          {
              if (this.getRecord() == recLastCurrent)
              {
              	this.getRecord().getKeyArea().setupKeyBuffer(null, DBConstants.TEMP_KEY_AREA);	// Save this for compare later
  	        	this.getRecord().getKeyArea(DBConstants.MAIN_KEY_AREA).reverseKeyBuffer(null, DBConstants.TEMP_KEY_AREA);
              }
              this.syncRecordToBase(this.getRecord(), (Record)record, false);
          }
      	else
      	{
              if (this.getRecord() != recLastCurrent)
              {	// The record was lost when I synced it
              	Object bookmark = this.getRecord().getHandle(DBConstants.BOOKMARK_HANDLE);
              	this.getRecord().setHandle(bookmark, DBConstants.BOOKMARK_HANDLE);
              }
      	}
          return (record == null) ? null : this.getRecord();
      }