代码就不给你写了,给思路吧:原理其实很简单,delete操作,只是在数据库记录的开头写一个标志,标识它已被删除,那么其余命令就知道回避,而所谓的recall,不过是把这个标志抹去,就恢复非删除的身份了。那么,我们的操作就是,对数据库循环一次,每遇到deleted()为真的记录,先把这条记录的记录号recno()抄到一个数组(或临时数据表)中,然后recall它,循环完了就是recall all完毕。当要反悔的时候,按照记下来的那些记录号,重新delete它,就可以恢复原状。
但是注意:delete之后,凡是执行过pack操作的,没有后悔的余地,那是彻底真的从物理上消失了。其实,我看到个别人爱用pack,似乎不知道这东西的本质是什么。