ninestar,
 看到两条记录是因为一条是提交后的,一条是原来缓冲区里的。
 
 Table1.ApplyUpdates;// 提交
 Table1.CommitUpdates;//清空缓冲区这样就好了。

解决方案 »

  1.   

    这个问题我在用Query时曾碰到过,你试一下在SQL Explore中加一条纪录,看一下是出来一条纪录还是两条.如在sql explore中是两条,证明你的表结构有问题.
      

  2.   

    Table1.CommitUpdates;必死机;
    用Table1.CancelUpdates;
    Delphi 的 DBGrid 有问题,有时,开始是好的,上下移动几下,就会有大量
    重复纪录,这时,你把滚动条拉到最后,在拉到顶,一切又好了。
      

  3.   

    to hellen2000:
    Table1.CommitUpdates;必死机;
    真的吗?不会吧,不过我没用过。
      

  4.   

    to ninestar:
    最好将你的源代码贴出来让大家看一下
    to hellen2000
    DBGrid没有问题,你说的是Delphi数据访问速度比较慢,DBGrid来不及更新
      

  5.   

    调试通过,没有问题!!
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      try        
        Table1.ApplyUpdates;// 提交
        Table1.CommitUpdates;// 提交成功,清空缓冲区
      except
        Table1.CancelUpdates;//提交失败,恢复原来数据集内容
        Table1.CommitUpdates;//清空缓冲区
      end;
      Table1.DisableControls;
      Table1.Close;
      Table1.Open;
      Table1.EnableControls;
    end;
      

  6.   

    如果没有给TAble.indexfieldname指定索引,会出现这种情况。