在后台修改表內容,出現 "Row cannot be located for updating. Some values may have been changed since it was last read." 信息,不能修改,怎么處理????
由于這個問題,前台打不開!

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1124/1124168.xml?temp=.5568811
      

  2.   

    因为日期值、数值型都为实型,通过ado或bde的数据引擎转换之后,再更新回数据库时,数据会改变,如100.999999会变成101.000000,所以应该把把更新模式改为upWhereChanged,upWhereKeyOnly,不能用upWhereAll更新模式
    就是只能用主键定位记录,不能用所有字段定位记录
      

  3.   

    me too
    你看了http://expert.csdn.net/Expert/topic/1124/1124168.xml?temp=.5568811
    我实在没法了,解决了告我一声,谢谢
      

  4.   

    http://www.delphibbs.com/delphibbs/dispq.asp?lid=413332
      

  5.   

    直接在查询分析器中用SQL语句进行删除!!不是使用企业管理器,我以前也遇到过同样的问题
      

  6.   

    你是用ADO还是用什么操作数据库的?如果是ado中的rs,那看看你的数据库是否支持你所用的光标锁定。或者cursorlocation是否是adUseClient等等。或者,你的sql server数据库本身配置就有限制问题。
      

  7.   

    相似的问题,请看
    http://expert.csdn.net/Expert/topic/1318/1318286.xml?temp=.9080622
    http://expert.csdn.net/Expert/topic/1323/1323255.xml?temp=.6935846
    急,急
      

  8.   

    to xiufengy:
    这个问题好象是表里出现了两条完全相同的记录所引起的,把这些完全相同的记录删除就可解决问题。
      

  9.   

    to  lzf1010(深宇) 使用企业管理器两条完全相同的记录直接在sql server是删不掉的(有时可以有时不行),为社么?
    程序中Row cannot be located for updating.Som values may have been changed since it was last read又如何解决呢?
    我已经在大富问以及microsoft等都看过了,有一点点理解意思,可就是解决
    不了,救命啊!
      

  10.   

    Row cannot be located for updating.Som values may have been changed since it was last read
    这个错误提示不单单只是在SQL SERVER里出现,其它的数据库也可能会出现,如果你连续地进行adoquery.post,就可能出现这个情况,避免这个错误的方法是post后执行requery来刷新数据,或者直接使用SQL语句来进行数据的更新,而不是进行POST。另外,为何使用企业管理器两条完全相同的记录直接在sql server是删不掉的(有时可以有时不行),这个我就不太清楚了,我猜,可能和企业管理器删除时使用的方法有关,企业管理器不是使用一条语句进行删除,而是逐条删除。这只是我的猜测而已。
      

  11.   

    to xiufengy(石破天):
    这个帖子是我以前回答别人的,你参考参考。
    http://expert.csdn.net/Expert/topic/1124/1124168.xml?temp=.6032221
      

  12.   

    谢谢 lzf1010(深宇) ,暂时还没有出现错误。观察先
      

  13.   

    我也同意lzf1010(深宇) 的解决方法
      

  14.   

    完全相同删除用select distinct into 再delete 再insert回来就可以了
      

  15.   

    加一个主键id 用 uniqueidentifier 类型, 然后默认值为newid()然后把记录删除,应该可以
      

  16.   

    delete table 
    可以删除相同的记录
      

  17.   

    是因为确少主键。如果数据不多,你先TRUNCATE TABLE清空,然后给此表加一条自动增1的主键(哪怕你不用它),就好了。