pack 命令可否定位
pack 命令可否定位 问题点数:20、回复次数:8Top
1 楼yzhjisji(知识就是力量)回复于 2003-11-01 21:27:13 得分 0
是用find,seek ,locate for 定位吧,pack 就是删除吗~Top
2 楼gkrong(gkrong)回复于 2003-11-02 00:47:01 得分 0
pack命令把全部逻辑删除的记录彻底删除,为何要定位?可能吗?Top
3 楼ywbinger(冰中玉)回复于 2003-11-02 10:02:01 得分 15
pack命令,不需要定位,也不能定位。
从当前表中永久删除标有删除标记的记录,减少与该表相关的备注文件所占用的空间。
语法
PACK [MEMO] [DBF]
参数
MEMO
从备注文件中删除未使用空间,但不从表中删除标有删除标记的记录。备注字段的信息保存在一个相关的备注文件内。备注件文件的文件名与表相同,扩展名为 .FPT。
DBF
从表中删除标有删除标记的记录,但不影响备注文件。
Top
4 楼ywbinger(冰中玉)回复于 2003-11-02 10:04:31 得分 0
说明
当使用 pack 命令时,Visual FoxPro 把所有没做删除标记的记录复制到一个临时表(temporary table)中。执行完 pack 命令后,Visual FoxPro 把原表从磁盘上删除,同时用原表名命名临时表。如果按 ESC 键中止 PACK,就会删除临时表,原表保持不变。运行 pack 命令时,如果磁盘空间不够,原表也将保持不变。
如果不带 MEMO 和 DBF 子句发出 pack 命令,pack 命令将同时作用于表和备注文件。
pack 命令需要以独占方式使用表,有关在网络上以独占方式打开一个表的详细内容,请参阅 SET EXCLUSIVE。
如果当前表有一个或更多打开的索引,pack 命令将重建索引文件。
注意
应仅在不再使用的记录上作标记。使用 pack 命令之后,不可能再恢复已删除的记录。Top
5 楼zhaohy(zhaohy)回复于 2003-11-02 19:15:53 得分 0
如果需要彻底删除某个指定记录用何命令?Top
6 楼fengyeng(在城里飘~~~~)回复于 2003-11-03 15:38:17 得分 0
pack命令把全部逻辑删除的记录彻底删除Top
7 楼FishOfThink(旅者)回复于 2003-11-03 19:19:22 得分 5
pack命令将当前表中所有带删除标记的记录删除,不可能实现你所要求的,只物理删除指定的记录,要想实现,只能用编码的方法,下面的例子仅物理年龄大于30的记录
----------------------------------------------------------------------------------
use TableName
dele all
copy to TempTable for Age<=30 //转移不删除的记录
pack //彻底删除
appe from TempTable.dbf //恢复被转移的记录
dele file TempTable.dbf //删除临时表
Top
8 楼xymsgw(想在广阔的草原飙车,痛快)回复于 2003-11-03 19:21:28 得分 0
go 指定记录号
dele
packTop




