`BUFFER-COMPARE` 可以接收字段进行动态比较吗?

Can `BUFFER-COMPARE` receive fields to compare dynamically?

尝试动态设置 BUFFER-COMPARE 的 USING 字段时,出现以下错误。

WARNING: The USING phrase of the BUFFER-COMPARE statement only honors fields in the source buffer. Ignoring 'cFieldsToCompare'. (5379)

这是一个代码示例来澄清,我只想比较buf_targetbuf_origin之间的Field1、Field2、Field4。但是,我不能简单地写下这些字段,因为它们已提供并且不会总是相同的。

DEFINE VARIABLE cChangedFields      AS CHARACTER  NO-UNDO.
DEFINE VARIABLE cFieldsToCompare    AS CHARACTER  NO-UNDO.

cFieldsToCompare = "Field1,Field2,Field4"

BUFFER-COMPARE buf_target 
USING cFieldsToCompare
TO buf_origin 
SAVE RESULT IN cChangedFields NO-ERROR.

是否有语法允许 BUFFER-COMPARE 接收要动态比较的字段?

可以使用Buffer句柄的BUFFER-COMPARE方法:

BUFFER buf_target:BUFFER-COMPARE (BUFFER bug_origin:HANDLE, ?, cExceptFields, cFieldsToCompare) .