将ADOTable的CursorLocation属性改成clUseServer(默认是clUseClient)。

解决方案 »

  1.   

    有没有搞错?根据我的经验并不是CursorLocation的问题。
    在Access中,字段有默认值(默认情况下“数字型字段”都有默认值0),这才是问题的关键。初次加入某个字段时没有赋值,Access就使用了默认值;当你在没有refresh,就要修改该字段
    的值的时候,就会出现"The specified row could not be located for updating: Some
    values may have been changed since it was last read."的错误。使用支持bde的TTable,可以自动的解决该问题,TTable的属性AutoRefresh就是干这个用的;
    同时配合TField的属性AutoGenerateValue就可让问题迎刃而解。对于TADOTable可能只有自己想办法了。我也是才用ADO的控件,今后还有大量问题需要和大家
    探讨。还望多多指教。