Ну, это внутренняя кухня компонента. Не уверен, что можно это поведение изменить. С другой стороны, можно заблокировать сообщения об обновлении DataSet, сделать свои мзменения, переоткрыть DataSet и потом обратно разрещить сообщения. Тогда это будет выглядеть для пользователя точно так, как ты описал, т.е. грид не будет пропадать. Только часики не забывай "вешать" на всякий случай:
Код:
FDQuery1.DisableControls;
Screen.Cursor := crHourGlass;
FDQuery1.Close;
Try
FDQuery1.SQL.Text := 'select new_fields from here';
FDQuery1.Open;
Finally
Screen.Cursor := crDefault;
FDQuery1.EnableControls;
End;