gpt4 book ai didi

openedge - 4gl 中定义变量的 NO-UNDO 是什么意思?

转载 作者:行者123 更新时间:2023-12-04 05:11:30 25 4
gpt4 key购买 nike

我是progress 4GL 语言的初学者,我想知道NO-UNDO 和NO-ERROR in progress 4gl 语言之间的区别。

最佳答案

无错误

没有错误会抑制运行时中的错误,并将这些错误的责任交给您,即开发人员。

/* 
In this example we do basically the same thing twice, once with no-error and once without.
Without no-error the program will exit and the last message box will not be shown.
*/
DEFINE TEMP-TABLE tt NO-UNDO
FIELD a AS INTEGER.

CREATE tt.
ASSIGN tt.a = INTEGER("HELLO") NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
MESSAGE "There was an error" VIEW-AS ALERT-BOX ERROR.
/* You will be left with a tt-record with 0 as field value */
END.


MESSAGE "After no-error" VIEW-AS ALERT-BOX.

CREATE tt.
ASSIGN tt.a = INTEGER("GOODBYE").

MESSAGE "After error" VIEW-AS ALERT-BOX.

NO-UNDO

无撤消删除撤消处理。这通常是默认的首选行为,除非您需要临时表、变量等来利用撤消处理。下面是一个非常基本的例子。

除非你真的需要撤销处理,否则最好避免。它可能会影响性能、本地磁盘写入等。它还会限制字符变量的长度等。

注意:从“默认”更改为“首选行为”,因为这是一个更好的描述
DEFINE VARIABLE cTxt1 AS CHARACTER NO-UNDO.
DEFINE VARIABLE cTxt2 AS CHARACTER.

DO TRANSACTION:

ASSIGN
cTxt1 = "HELLO"
cTxt2 = "GOODBYE".

MESSAGE "Do you want to undo?"
VIEW-AS ALERT-BOX
BUTTONS YES-NO
UPDATE lAnswer AS LOGICAL.

IF lAnswer THEN
UNDO, RETRY.

END.

DISPLAY cTxt1 cTxt2.

关于openedge - 4gl 中定义变量的 NO-UNDO 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com