关于删除命令的一点心得
VFP中,删除分为物理删除和标记删除 。物理删除的命令为PACK和ZAP.PACK命令是在标记删除的基础上进行的,是对部分记录进行物理删除。PACK命令运行后。被删除的记录无法恢复。ZAP 则是把整个表的记录全部物理删除,不需要先进行标记删除。值得注意的是,这两个命令的运行前提是:表需要独占打开。而且PACK命令是在标记删除(delete)命令的基础上进行的。
而标记删除则是对部分记录打上一个删除标记,生效否需要用SET DELETE对表进行设置。.当设置为ON时,又删除标记的记录就不会显示,也不会被其它命令访问,操作上等同于删除了。删除标记可以取消,取消后表记录等同于正常记录。但是如果用PACK命令的时候,不管SET DELETE 的设置如何,又删除标记的记录均会被物理删除,而且无法恢复。
说真心话,我对独占方式打开表的问题一直没有搞得太清楚。所以对用PACK命令一直时心存畏惧。只有用笨办法,在表单操作的时候,只用DELETE命令。补救办法是在程序打开或者运行后,再用独占方式打开表进行物理删除。再表单中用PACK命令,表格会呈空白状,当然也可以恢复,但是如果此时是在缓冲得条件下,马上就会面临无法找到表的囧况。(表已经被独占了,SELE命令无法把表装入当前工作区)