当我在Visual foxpro中找到记录时,
对于studentID = 1,LOCALTE 如果发现() 删除 包 ENDIF
在PACK命令中,错误消息"文件必须独占打开"
我是否在PACK之前关闭所有表?
答案 0 :(得分:2)
要获得独家使用,您需要在打开时告诉它......
select YourTable
use YourTable EXCLUSIVE
PACK
use YourTable SHARED
但是,始终打包表格效率不高,并且有一种更简单的方法可以“忽略”标记为删除的记录。
查看
SET DELETED ON
SET DELETED OFF
设置已删除“开”表示隐藏任何标记为删除的记录。所以你不需要每次都打包。 set delete“OFF”表示显示所有记录,甚至是那些标记为删除的记录。
但是,如果其他人也使用该表,那么在多用户环境中使用EXCLUSIVE可能会导致问题。您通常会有一些数据库维护例程,它会尝试检查表的独占使用,并在清理过程中完成所有操作。
答案 1 :(得分:0)
此外,LOCATE / FOUND是一种老式的,一旦你打开桌子就行了:
delete from mytable where studentid=1
pack