Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как обновить TQuery не потеряв при этом текущей записи?

01.01.2007
procedure RefreshQuery(AQuery : TQuery; const FieldsForSearch: String); 
var
 
AList : TList;
 
AVarArray : Variant;
  i
: Byte;
begin
 
AList := TList.Create;
 
try
   
AQuery.GetFieldList(AList, FieldsForSearch);
   
AVarArray := VarArrayCreate([0, AList.Count - 1], varVariant);
   
for i := 0 to Pred(AList.Count) do
     
AVarArray[i] := TField(AList.Items[i]).AsVariant;
   
AQuery.Close;
   
AQuery.Open;
   
AQuery.Locate(FieldsForSearch, AVarArray, []);
 
finally
   
AList.Free;
   
AVarArray.Free;p
 
end;
end;

Взято из https://forum.sources.ru