为什么我在进度 4GL 上得到 "record not on file (138)"
Why am I getting "record not on file (138)" on progress4GL
我正在尝试检查记录是否存在,否则我想创建它。
例如
我有一个 <table>
没有 tab-code
等于 2
,所以 it is not available
,然后我再做一个 find
只是为了 "call" table 创建一个新项目,但由于某种原因它没有 "call" table 我得到一个漂亮的标准错误:record <table> is not on file (138).
我对 progress4GL 还是个新手,所以如果它很愚蠢,我深表歉意。
find <table> where tab-code = 2.
if not avail <table>
then do:
find last <table> no-lock no-error.
create <table>.
assign <table>.tab-code = 2.
end.
find <table> where tab-code = 2 NO-ERROR.
在查找记录时始终使用 NO-LOCK NO-ERROR。如果不使用 NO-ERROR 那么它会在编译后给出错误(意味着如果记录不可用)。
FIND FIRST <table> NO-LOCK WHERE <table.id> = 2 NO-ERROR.
IF NOT AVAILABLE <table> THEN DO:
CREATE <table>.
ASSIGN <table>.<table_id> = 2 NO-ERROR.
END.
/*always use FIND FIRST to get record from the particular table. FIND case will fail some time */
我正在尝试检查记录是否存在,否则我想创建它。
例如
我有一个 <table>
没有 tab-code
等于 2
,所以 it is not available
,然后我再做一个 find
只是为了 "call" table 创建一个新项目,但由于某种原因它没有 "call" table 我得到一个漂亮的标准错误:record <table> is not on file (138).
我对 progress4GL 还是个新手,所以如果它很愚蠢,我深表歉意。
find <table> where tab-code = 2.
if not avail <table>
then do:
find last <table> no-lock no-error.
create <table>.
assign <table>.tab-code = 2.
end.
find <table> where tab-code = 2 NO-ERROR.
在查找记录时始终使用 NO-LOCK NO-ERROR。如果不使用 NO-ERROR 那么它会在编译后给出错误(意味着如果记录不可用)。
FIND FIRST <table> NO-LOCK WHERE <table.id> = 2 NO-ERROR.
IF NOT AVAILABLE <table> THEN DO:
CREATE <table>.
ASSIGN <table>.<table_id> = 2 NO-ERROR.
END.
/*always use FIND FIRST to get record from the particular table. FIND case will fail some time */