请看下列函数,问题在其中:procedure TForm1.Select(const SQL: string);
begin
    adoquery.Close;
    adoquery.SQL.Text:=sql;
    adoquery.Open;
end;
procedure TForm1.Update(const TableName: string;
  const Fields: array of string; const values: array of variant;
  const other: string);
var
i:integer;
v:variant;
begin  self.Select(format('select %s from %s %s',[join(fields,','),tablename,other]));
  for i:=low(fields) to high(fields) do
  begin
    v:=values[i];
    case vartype(v) of
    varstring,varolestr,varstrarg:
    if length(string(v))=0 then
      v:=' ';
    end;
    
    self.ADOQuery.Fieldvalues[fields[i]]:=v; // 为什么出现异常说“dataset not in insert or pdify mode”?
  end;
  self.ADOQuery.post;
  
end;