DbServer.Delete 方法 (__Usual, __Usual, __Usual) | |
删除当前记录或指定范围内的记录。
命名空间:
VO
程序集:
VORDDClasses (在 VORDDClasses.dll 中) 版本:2.22 GA
语法 VIRTUAL METHOD Delete(
cbForBlock,
cbWhileBlock,
uScope
) AS USUAL CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public virtual __Usual Delete(
__Usual cbForBlock = default,
__Usual cbWhileBlock = default,
__Usual uScope = default
)
查看代码参数
- cbForBlock (Optional)
- 类型:__Usual
对范围内每条记录进行评估的条件;如果为 TRUE,则包括该记录。它提供与记录处理命令的 FOR 子句相同的功能。 - cbWhileBlock (Optional)
- 类型:__Usual
从第一条记录开始评估每条记录的条件,直到条件返回 FALSE。它提供与记录处理命令的 WHILE 子句相同的功能。 - uScope (Optional)
- 类型:__Usual
要处理的记录范围,提供与记录处理命令的 ALL、REST 和 NEXT 子句相同的功能。
常量 | 描述 |
---|
DBSCOPEALL | 作用域是表中的所有记录。这是 默认,尽管如果指定 WHILE 条件,作用域将变为 DBSCOPEREST。 |
DBSCOPEREST | 作用域是从当前位置开始的表中剩余的记录。 |
返回值
类型:
__Usual
如果成功则返回 TRUE;否则,返回 FALSE(尽管某些记录可能仍已处理)。
备注
如果使用范围调用或如果服务范围处于活动状态,Delete() 在操作之前发送 NotifyIntentToMove 消息,
并在完成后发送 NotifyFileChange 消息(无论实际删除的记录数量如何)。
如果未使用范围并且 Delete() 仅适用于当前记录,则在成功时发送 NotifyRecordChange 消息。
如果指定了范围,则成功完成后,当前记录将是最后一条文件记录,并且 DBServer:EOF 将为 TRUE。
重要提示!由于范围是持久的,从处理方法(如 CopyDB() 或 Average())留下的范围可能会导致 Delete() 处理过多的记录。请记住在使用范围后重置范围。
即使记录被标记为删除,它仍然保留在文件中并且可以被恢复(SetDeleted() 函数的当前设置会影响是否可见已删除的记录)。
如果对字段进行了更改,则在标记为删除之前,这些更改会记录在记录中;因此,如果字段被恢复,它将正确反映删除操作之前所做的任何更改。
提示: |
---|
DBServer:Delete() 在删除发生后不会前进到下一条记录,不同于 DataWindow:Delete()(如果SetDeleted()为TRUE)。
|
参见