因为只能修改一条如果要修改多条可有循环:
FOR I:=0 TO DM。KFYD_TABLE.RECORDCOUNT-1 DO
BEGIN
dm.kfyd_table.Edit;
dm.kfyd_table.FieldByName('ffbz').AsInteger := 1;
///dm.kfyd_table.Post;
DM.KFYD_TABLE.NEXT;
END;
或者用SQL语句写也可以的
  

解决方案 »

  1.   

    dm.kfyd_table.Edit;
    While Not dm.kfyd_table.Eof Do
    Begin
         dm.kfyd_table.FieldByName('ffbz').AsInteger := 1;
         dm.kfyd_table.Next;
    End;
    dm.kfyd_table.Post;
      

  2.   

    你的原因可能是因为你DBGRID对应的TABLE不是dm.kfyd_table。所以只能改第一条,你检查一下,不可能出现像你说的情况。
      

  3.   

    post 之后就须重新调用 edit了
    用导航条连一个表,试一下就知道了