如何基于动态查询删除表中的记录?

问题描述

这个问题是this one的后续。

我目前有以下源代码

    CREATE BUFFER h-Table1 FOR TABLE "Table1" NO-ERROR.
    IF VALID-HANDLE(h-Table1)
    THEN DO:
             L-Found = h-Table1:FIND-FirsT("WHERE ...
             IF L-Found
             THEN h-Table1:BUFFER-DELETE().

当我启动 BUFFER-DELETE() 命令时,出现错误 335 (The Table1 record has NO-LOCK status. DELETE not allowed. (335))。我需要如何更改我的源代码才能使其正常工作? (如何更改 Table1 记录的状态?)

提前致谢

解决方法

h-Table1:FIND-FIRST ("WHERE ....",EXCLUSIVE-LOCK) . 

或在第一次查找之后(应该使用明确的 NO-LOCK 选项完成)

hTable1:FIND-CURRENT (EXCLUSIVE-LOCK) .