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

Материал из DRKB

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

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;
  end;
end;


Source: Взято из http://forum.sources.ru
ID: 02548