更新时报下面的错误:
无法为更新定位行。一些值可能已在最后一次读取后已更改。

解决方案 »

  1.   

    我在对一个TADODataSet的某条记录执行了EDIT,然后修改了一个值,POST提交。
    当我对下一条记录在修改时,发现第一条记录的某个值输错了,再回去修改那个值,也用了EDIT,再POST。可当我要继续下一条记录录入时,就会报上面的错。这是怎么回事呀?
      

  2.   

    表中有非法字符,如integer 应该是 0 不是 null 等这样的问题
      

  3.   

    不是的。我试过了,把这个表中的所有字段都带重新赋值进去,
    跟踪发现程序执行到POST时就报这个错。而我上面的EDIT和赋值都没有报错
      

  4.   

    在你POST第一条记录后,重新刷新下数据集。
      

  5.   

    如果数据集状态不在edit 或是insert状态时,不能post
      

  6.   

    mdejtod(稻草人)
    我知道呀,如果不在edit状态去POST这肯定会报错的。
    但我在POST前先用了EDIT,我查看过了,此时数据库的状态是dsEdit,说明是可以POST的呀。
      

  7.   

    你是不是在POST之前的哪个语句中也执行POST这个动作啊?跟踪下数据集的状态,看看在你执行POST时,是不是dsEdit啊?
      

  8.   

    gulf1234(小顾)
    我在执行POST的时候,是dsEdit的。我那个表有个主键ID,是自增型的。
    会不会是因为这个的缘故呢?