有可能你在sql表上没有关键字吧。或者你远程视图关键字的勾没有打上。把远程视图的缓冲设置为表缓冲,在退出按钮里做强制更新。
sele viewame
tableupdate(1,.t.)

解决方案 »

  1.   

    我已经这样做了,我将主子表视图都设成表缓冲,SQL表上有主关键字,并在关系图中设好了联结,在VFP远程视图上的关键字和更新字段也打了勾,问题是更新时会把子表中相关记录(如当前人员)的一个字段全改成最后更改的值。还有一个问题是SQL2000支持层叠更新,但是用vfp远程视图进行更新时不能做到这一点。不知道是不是这样的。
    更新代码:
    IF MESSAGEBOX(“数据被另一用户所更改是否用编辑结果更新改写”) = MSGBOX_YES
    *Try to force update
      BEGIN TRANSACTION
    m.lSuccess = TABLEUPDATE(.T.,.T.)
    IF m.lSuccess
       END TRANSACTION
       LOOP
    ELSE
       ROLLBACK
       =MESSAGEBOX(“更新失败。”)
    ENDIF
    ENDIF