我在dbgrid 中修改数据时,其中有几个出现了coudn't perform the edit becouse another user changed the record的提示。

解决方案 »

  1.   

    我是用ms sqlserver,我在同一个表里改数据,大部分可以,只是有几个出现了错误。而且都是这几个出错。
      

  2.   

    table1.Exclusive:= True;试一试
    是不是你的表的这几条数据在前面又过修改,且还没有post,正在调用
    没有遇到过
      

  3.   

    我是在dbgrid中修改的,用query从表中取出来
      

  4.   

    取得的数据在读取后被更新,在默认情况下,DELPHI会搜与原来读取的记录一样的记录,换句话说是每个字段都要与读取时的相同,当别人更改过相同记录时,DELPHI会找不到对应的记录。
    方法有两个,一个是调用ADO的原生类,设定UpdateMode为UpdateWhereKey。
    另外一个比较简单:在Fields Editor...中选中表的主键,设定ProviderFlags中的pfInKey为True(你可以设定几个字段的这个属性为True)来告诉DELPHI以什么字段做依据来更新记录。
    你可以用Profiler来查看修改前后,SQLServer后端执行的更新语句有什么不同。^&^