如果要删除部分记录,通常要先逻辑删除,然后再物理删除。
逻辑删除就是给记录打上删除标记,用命令:
dele <范围> for <条件>
举例:
要将3、4、5、6、7条记录中性别为“男”的记录逻辑删除
go 3
dele next 5 for 性别="男"
如果想把已经逻辑删除的记录,物理删除,也就是真正从磁盘中删掉,用命令:
pack
要想把所有记录删掉有两个方法:
方法1:
dele all (把所有记录先逻辑删除)
pack (把带删除标记的记录物理删除)
方法2: (不用逻辑删除就可把记录一次删除掉)
zap (系统会警告:真的要全部删除吗?y/n)
如果是系统中的临时表,关闭后会自动删除;
如果在中间过程中用于存放临时数据而自己创建的非临时表,则需在退出时用delete语句删除。
不知道你这个 _cur0 表是用哪种方式创建的
DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它
更多
Visual FoxPro常用命令分类表
数据库文件及记录命令
ADD TABLE 在当前数据库中添加一个自由表
APPEND 在表的末尾添加一个或多个新记录
APPEND FROM ARRAY 由数组添加记录到表中
APPEND FROM 从一个文件中读入记录,追加到当前表的尾部
APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中
APPEND MEMO 将文本文件的内容复制到备注字段中
APPEND PROCEDURES 将文本文件中的存储过程追加到当前数据库中
AVERAGE 计算数值表达式或字段的算术平均值
BLANK 清除当前记录中所有字段的数据
BROWSE 打开浏览窗口,显示当前或选定表的记录
CALCULATE 对表中的字段或包含字段的表达式进行财务和统计 *** 作
CHANGE 显示要编辑的字段
CLOSE 关闭各种类型的文件
CLOSE MEMO 关闭一个或多个备注编辑窗口
COMPILE DATABASE 编译数据库中的存储过程
CONTINUE 继续执行先前的LOCATE命令
COPY MEMO 复制当前记录中的指定备注字段的内容到文本文件
COPY PROCEDURES 将当前数据库中’的存储过程复制到文本文件
COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表
COPY STRUCTURE EXTENDED 创建新表,它的字段包含当前选定表的结构信息
COPY TO ARRAY 将当前选定表中的数据复制到数组
COPY TO 用当前选定表的内容创建新文件
COUNT 统计表中记录数目
CREATE 生成一个新的VisualFoxPro表
CREATE CONNECTION 创建一个命名连接并把它存储在当前数据库中
CREATE DATABASE 创建并打开一个数据库
CREATE TRIGGER 创建表的删除、插入或更新触发器
CREATE VIEW 从VisualFoxPro环境创建视图文件
DELETE 给要删除的记录做标记
DELETE CONNECTION 从当前数据库中删除一个命名连接
DELETE DATABASE 从磁盘上删除数据库
DELETE TRIGGER 从当前数据库的表中删除“删除”、“插入”或“更新”触发器│
DELETE VIEW 从当前数据库中删除一个SQL视图
DISPLAY 在VisualFoxPro主窗口或用户自定义窗口中显示与当前表有关的信息
DISPLAY CONNECTIONS 显示当前数据库中与命名连接有关的信息
DISPLAY DATABASE 显示有关当前数据库的信息,或当前数据库中的字段、命名连接、表或视图的信息
DISPLAY MEMORY 显示内存变量和数组的当前内容
DISPLAY PROCEDURES 显示当前数据库中存储过程的名称
DISPLAY STRUCTURE 显示一个表文件的结构
DISPLAY TABLES 显示包含在当前数据库中所有的表和表的信息
DISPLAY VIEWS 显示当前数据库中关于SQL视图的信息以及SQL视图是否基于本地或远程表的信息
DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它
DROP VIEW 从当前数据库中删除指定的SQL视图
EDIT 显示要编辑的字段
查找到以后,加上删除标记,然后再物理删除。
如程序:
use
学生档案
accept
"输入要查询的姓名:"
to
name
locate
for
姓名=name
&&查询
do
while
found()
&&如果有满足条件的记录就循环
delete
&&给找到的记录加上删除标记
continue()
&&继续查询
enddo
pack
&&将找到的记录彻底删除
use
1、定位那一行:直接输入记录号即可,如要定位到第10号记录,输入:10
2、把定位记录号后的所有记录加删除标志:delete
rest,这要注意,表中有没有打开索引,如果索引打开,那么有删除标志的记录不一定是记录号都是≥10的,最好查看一下再继续
3、如果要彻底删除,还要加一句pack,但要注意,这一命令下去了,所有有删除标志的记录都没有了,包括以前你加了删除标志上去的记录
ZAP &&物理删除当前选定的记录
或者是
DELETE &&逻辑删除选定的记录,可以恢复
PACK &&物理删除已经逻辑删除过的记录
比如:
use tabledbf excl &&以独占方式打开要 *** 作的表
go top &&移动指针到第一行
locate for name="王八" &&定位记录
if found() &&判断条件
zap &&彻底删除记录
endif
它与下面的程序是等价的:
use tabledbf excl &&以独占方式打开要 *** 作的表
go top &&移动指针到第一行
locate for name="王八" &&定位记录
if found() &&判断条件
delete &&给记录标注删除符号
pack &&物理删除有删除标记的记录
endif
以上就是关于vfp中如何删记录全部的内容,包括:vfp中如何删记录、如何删除VFP程序中的临时表、在VFP环境下,如何用命令删除整张表等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)