Foxpro删除 - 包“文件必须独占打开”

时间:2014-11-30 02:25:04

标签: visual-foxpro

当我在Visual foxpro中找到记录时,

对于studentID = 1,LOCALTE 如果发现()  删除  包 ENDIF

在PACK命令中,错误消息"文件必须独占打开"

我是否在PACK之前关闭所有表?

2 个答案:

答案 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