【发布时间】:2013-08-30 22:41:53
【问题描述】:
当我需要检查记录是否存在时,我想针对频繁出现的情况实施解决方案,如果不存在则创建它。
PROCE CreateIfNotFound:
DEF INPUT PARAM bBuf AS HANDLE NO-UNDO.
DEF INPUT PARAM chPred AS CHAR NO-UNDO.
DEF INPUT PARAM iLockMode AS INT NO-UNDO:
DEF VAR hQry AS HANDLE NO-UNDO.
CREATE QUERY hQry.
hQry:SET-BUFFERS(bBuf).
hQry:QUERY-PREPARE("FOR EACH " + bBuf:NAME + " WHERE " + chPred).
hQry:QUERY-OPEN.
IF NOT hQry:GET-FIRST(LockMode) THEN DO:
bBuf:BUFFER-CREATE.
???
END.
END PROCE.
chPred 应该是:
field1 = value1 AND field2 = value2 AND [...]
其中 field1、field2 和 [...] 是唯一索引字段。我应该如何在没有chPred 解析的情况下使用给定值初始化创建记录的给定字段?
分隔符也无济于事,因为值可能包含AND、= 以及通常我可以选择的任何分隔符。如果是_!^@_MY_DELIM!@^__,当然不太可能,但我不太喜欢这个解决方案。
【问题讨论】:
标签: progress-4gl openedge