【发布时间】:2014-03-04 01:18:19
【问题描述】:
DO ON ENDKEY UNDO, LEAVE:
FIND FIRST STUDENT NO-LOCK WHERE ST-ID = "TEST" NO-ERROR.
IF AVAILABLE STUDENT THEN
DO:
CREATE SCHOOL no-error.
BUFFER-COPY STUDENT EXCEPT STUDENT.Location
SCHOOL ASSIGN SCHOOL.Location = "MY LOCATION" NO-ERROR.
IF ERROR-STATUS:ERROR THEN
DO:
DO i = 1 TO ERROR-STATUS:NUM-MESSAGES:
MESSAGE
" Error no " ERROR-STATUS:GET-NUMBER(i)
" txt: " ERROR-STATUS:GET-MESSAGE(i) VIEW-AS ALERT-BOX.
STOP.
END.
END.
END.
结束。
此查询运行良好,但有时它正在创建空记录。通过一些错误进行缓冲区复制,为什么它会创建空记录,但我无法验证错误,因为代码是在 LIVE 中发生的。请帮我解决这个问题。将通过什么类型的错误缓冲区复制。 1000 次工作正常 1 次它会失败。我知道这是数据缺陷,但如何修复。否则BUFFER-COPY通过什么类型的错误。
【问题讨论】:
-
确切的错误会有很大帮助,也许你可以在一些日志中找到它?另外:这是确切的代码吗?似乎有一些语法错误,可能应该是
FIND FIRST STUDENT NO-LOCK WHERE ST-ID = "TEST" NO-ERROR. -
这不是我刚刚为示例编写的确切代码
-
要查找代码中的错误,实际代码非常有用...
-
如果没有确切的错误和确切的代码,很难说。可能与 UNIQUE 索引冲突(试图创建基本上已经存在的记录)。
-
NO-ERROR 仅抑制某些操作——例如错误消息和引发错误条件。错误仍然发生,仍然可以检测和处理——其中包括 Jensd 为您发布的代码。
标签: progress-4gl openedge