VFP怎么删除null 值
1个回答
展开全部
给要删除的记录做标记。
DELETE FROM [DatabaseName!]TableName
[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
参数
FROM [DatabaseName!]TableName
指定要给其中的记录加删除标记的表。
DatabaseName! 指定包含该表的非当前数据库名。如果数据库不是当前的数据库,必须加上包含有该表的数据库名。在数据库名的后面、表名的前面包含感叹号 (!) 分隔符。
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
指定 Visual FoxPro 只给某些记录做删除标记。
FilterCondition 指定要做删除标记的记录必须满足的条件。可以包含许多筛选条件,它们用 AND 或 OR 操作符连接。也可以使用 NOT 操作符给一个逻辑表达式的值取反,或使用 EMPTY( ) 检查一个空的字段。
备注
带有删除标记的记录在执行 PACK 前并不从表中做物理删除。可以用 RECALL 命令恢复(清除标记)带有删除标记的记录。
如果 SET DELETED 设置为 ON,则所有命令都忽略带有删除标记的记录。
你可以在运行 DELETE - SQL 命令后立即检查 _tally 系统内存变量的值来确定被命令标记为删除的记录的个数。
与 DELETE 不同,DELETE-SQL 在为以共享方式打开的表中的多个记录做删除标记时,会使用记录锁定技术。这会在多用户的情况下减少对记录的竞争,但可能会降低性能。要获得最佳性能,可以独占方式打开表,或使用 FLOCK( ) 锁定该表。
示例
下面的示例打开 testdata 数据库中的 customer 表。delete-sql 为字段 country 内容为 usa 的所有记录做删除标记。所有带有删除标记的记录都显示出来。recall all 用来清除所有删除标记。
CLOSE DATABASES
CLEAR
OPEN DATABASE HOME(2)+"Data\testdata"
USE customer && 打开 customer 表
DELETE FROM customer WHERE country = "USA" && 删除标记
CLEAR
LIST FIELDS company, country FOR DELETED() && 列出标记了的记录
* 如果文件在此时被 pack 记录将被删除
WAIT WINDOW "当前被标记为删除的记录"+CHR(13) + ;
"按一键恢复..."
* 去掉记录的删除标记
RECALL ALL
CLEAR
* 检查恢复的记录
COUNT FOR DELETED()=.T. TO nDeleted
* 转换 nDeleted 到一个字符串并显示信息
WAIT WINDOW ALLTRIM(STR(nDeleted)) + " 记录标记为删除。"
DELETE FROM [DatabaseName!]TableName
[WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]
参数
FROM [DatabaseName!]TableName
指定要给其中的记录加删除标记的表。
DatabaseName! 指定包含该表的非当前数据库名。如果数据库不是当前的数据库,必须加上包含有该表的数据库名。在数据库名的后面、表名的前面包含感叹号 (!) 分隔符。
WHERE FilterCondition1 [AND | OR FilterCondition2 ...]
指定 Visual FoxPro 只给某些记录做删除标记。
FilterCondition 指定要做删除标记的记录必须满足的条件。可以包含许多筛选条件,它们用 AND 或 OR 操作符连接。也可以使用 NOT 操作符给一个逻辑表达式的值取反,或使用 EMPTY( ) 检查一个空的字段。
备注
带有删除标记的记录在执行 PACK 前并不从表中做物理删除。可以用 RECALL 命令恢复(清除标记)带有删除标记的记录。
如果 SET DELETED 设置为 ON,则所有命令都忽略带有删除标记的记录。
你可以在运行 DELETE - SQL 命令后立即检查 _tally 系统内存变量的值来确定被命令标记为删除的记录的个数。
与 DELETE 不同,DELETE-SQL 在为以共享方式打开的表中的多个记录做删除标记时,会使用记录锁定技术。这会在多用户的情况下减少对记录的竞争,但可能会降低性能。要获得最佳性能,可以独占方式打开表,或使用 FLOCK( ) 锁定该表。
示例
下面的示例打开 testdata 数据库中的 customer 表。delete-sql 为字段 country 内容为 usa 的所有记录做删除标记。所有带有删除标记的记录都显示出来。recall all 用来清除所有删除标记。
CLOSE DATABASES
CLEAR
OPEN DATABASE HOME(2)+"Data\testdata"
USE customer && 打开 customer 表
DELETE FROM customer WHERE country = "USA" && 删除标记
CLEAR
LIST FIELDS company, country FOR DELETED() && 列出标记了的记录
* 如果文件在此时被 pack 记录将被删除
WAIT WINDOW "当前被标记为删除的记录"+CHR(13) + ;
"按一键恢复..."
* 去掉记录的删除标记
RECALL ALL
CLEAR
* 检查恢复的记录
COUNT FOR DELETED()=.T. TO nDeleted
* 转换 nDeleted 到一个字符串并显示信息
WAIT WINDOW ALLTRIM(STR(nDeleted)) + " 记录标记为删除。"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询