if not (qrysoft.state=dsedit) then

解决方案 »

  1.   

    qrySoftListMaxSN.AsInteger:=SerialNumber; //这一句本身我觉得你写的有问题,希望不是引起错误的原因根据你的描述,如果连续scroll两次,代码就会执行两次。如果MaxSN不是主键的话,应该不会提示错误信息;现在错误信息标记是another user changed the record,则错误可能发生的地方包括:
       1.query的updatemode选择为upwhereall,应该修改为upwherekey
       2.整条记录中包含浮点数字段,而在upwhereall情况下,多半会发生这种情况,因为对浮点数的处理容易出问题
      

  2.   

    首先谢谢小新,
    不过代码执行 与 scroll动作无关,我可以分别通过button控制
    我的错误是发生在连续对同一记录进行
    edit
    post
       ------
    edit
    这时就会出错
    而在 -----处有scroll操作就不出错
      

  3.   

    另外,我试了保UpdateMode改成upwherekeyonly错误依旧
      
      

  4.   

    建议:
    在这段程序之后做一个Scroll的动作,比如Next,然后再定位在这条记录上。
      

  5.   

    我遇到过的,问题好象有表中的索引有关,将表的IndexFieldNames加上试试。
      

  6.   

    要是同时有sql语句的话也有这样的错
      

  7.   

    我把TQuery换成TTable后问题解决了,不过还是不知道具体原因,谢谢大家的指点,加分
      

  8.   

    第一次执行 你的SQL语句
    有没有重复执行或SQL内容有什么不同?