我用:
        
        sql:='Select * from table'
        M_ADOQuery.SQL.Clear;
        M_ADOQuery.SQL.Add(sql);
        M_ADOQuery.Open;
打开了一张表,然后想修改表中字段的值,可以继续这样吗:
  
         (-----接上面-------)  
        M_ADOQuery.First;
        while not M_ADOQuery.Eof  do
        begin
            MaxValue:=M_ADOQuery.FieldByName('Max').AsString;
            M_ADOQuery.Edit;
            M_ADOQuery.FieldByName('Max').Value:= MaxValue + AlarmValue;
            M_ADOQuery.Post;
            M_ADOQuery.Next;
        end;
会提示错误说Max字段不能修改.....求指教,在线等SQLDelphiADOQuery

解决方案 »

  1.   

    M_ADOQuery.FieldByName('Max').readonly := Fasle;
    M_ADOQuery.Readonly := False;
    确认这两个属性值 为False
      

  2.   

    如果是表中的实际字段,可以修改。如果是用MAX、MIN、SUM等语句计算出来的,是不能修改的。
      

  3.   

    我用了Select Max(*) as Max ,加了楼上的readonly之后可以修改了,,,有没有什么属性让这些字段都可以修改的呢????
      

  4.   

    从理论上说,“Select Max(*) as Max”这种结果是不可修改的吧,因为返回的结果是计算出来的。
      

  5.   

    我用了Select Max(*) as Max ,加了楼上的readonly之后可以修改了,,,有没有什么属性让这些字段都可以修改的呢????
    真的 假的 , 不是真实的字段也可以修改
      

  6.   

    你字段的名字与系统关键字重复了吧。
    统计和联合查询字段是ADO不能改的。
      

  7.   

    你怎么可能有字段名字叫max呢,这个是保留字啊,你尝试下:
      

  8.   

    M_ADOQuery.FieldByName('[Max]').Value:= MaxValue + AlarmValue;