为什么在执行查找后创建时会出现错误 138?
Why do i get error 138 when doing a find followed by a create?
我有以下代码块,当 运行 出现错误 138 并且创建实际上失败了。任何帮助将不胜感激。
FIND PSESCDel EXCLUSIVE-LOCK
WHERE PSESCDel.EmployeeCode = PSESC.EmployeeCode
AND PSESCDel.ServiceCoverRef = PSESC.ServiceCoverRef NO-ERROR.
IF NOT AVAILABLE PSESCDel THEN
DO:
IF PSESC.EmployeeCode = "0358" THEN
MESSAGE "RM NOT AV" PSESC.ServiceCoverRef.
CREATE PSESCDel.
ASSIGN PSESCDel.EmployeeCode = PSESC.EmployeeCode
PSESCDel.ServiceCoverRef = PSESC.ServiceCoverRef
PSESCDel.DeletedDate = TODAY.
IF PSESC.EmployeeCode = "0350" THEN
DO:
MESSAGE "RM IT CAME TO CREATE".
IF ERROR-STATUS:ERROR OR ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
MESSAGE "RM ERROR NUMBER" STRING(ERROR-STATUS:GET-NUMBER(1)).
MESSAGE "RM ERROR MESSAGE" ERROR-STATUS:GET-MESSAGE(1).
END.
END.
END.
错误 138 的描述是:"The record you were looking for does not exist or cannot pass the selection given by your combination of WHERE, OF, and USING phrases."数据库中不存在与 FIND 语句中的 EmployeeCode 和 ServiceCoverRef 相匹配的记录。
我猜您在代码段底部的 "RM ERROR NUMBER" 消息中看到了这一点。 Progress 产生的错误被 FIND 语句中的 NO-ERROR 短语抑制了。您可能希望显示 PSESC 记录中的这两个值,并确保它们符合您的预期。
我有以下代码块,当 运行 出现错误 138 并且创建实际上失败了。任何帮助将不胜感激。
FIND PSESCDel EXCLUSIVE-LOCK
WHERE PSESCDel.EmployeeCode = PSESC.EmployeeCode
AND PSESCDel.ServiceCoverRef = PSESC.ServiceCoverRef NO-ERROR.
IF NOT AVAILABLE PSESCDel THEN
DO:
IF PSESC.EmployeeCode = "0358" THEN
MESSAGE "RM NOT AV" PSESC.ServiceCoverRef.
CREATE PSESCDel.
ASSIGN PSESCDel.EmployeeCode = PSESC.EmployeeCode
PSESCDel.ServiceCoverRef = PSESC.ServiceCoverRef
PSESCDel.DeletedDate = TODAY.
IF PSESC.EmployeeCode = "0350" THEN
DO:
MESSAGE "RM IT CAME TO CREATE".
IF ERROR-STATUS:ERROR OR ERROR-STATUS:NUM-MESSAGES > 0 THEN DO:
MESSAGE "RM ERROR NUMBER" STRING(ERROR-STATUS:GET-NUMBER(1)).
MESSAGE "RM ERROR MESSAGE" ERROR-STATUS:GET-MESSAGE(1).
END.
END.
END.
错误 138 的描述是:"The record you were looking for does not exist or cannot pass the selection given by your combination of WHERE, OF, and USING phrases."数据库中不存在与 FIND 语句中的 EmployeeCode 和 ServiceCoverRef 相匹配的记录。
我猜您在代码段底部的 "RM ERROR NUMBER" 消息中看到了这一点。 Progress 产生的错误被 FIND 语句中的 NO-ERROR 短语抑制了。您可能希望显示 PSESC 记录中的这两个值,并确保它们符合您的预期。