我正在尝试在 CL 程序中使用 OPNQRYF 从给定文件中选择一些记录。查询选择字符串在 OPNQRYF 语句中定义。但在执行过程中,由于 QRYSLT 为空,抛出了 CPF9899 消息。我已经重新编译了几次程序,问题仍然存在。然后我尝试先在字符变量中定义查询选择,然后将其分配给 QRYSLT。这次它奏效了。这怎么发生的?我在同一个程序中定义了 QRYSLT 的其他一些 OPNQRYF 语句,它们运行良好。还有其他可能干扰 OPNQRYF 的东西吗?
这个不起作用:
OPNQRYF FILE(&SLIB/CKFESCP) QRYSLT('DWSYST *EQ "' *CAT &KVAL *TCAT '"')
而这个确实:
DCL VAR(&QRYSLT) TYPE(*CHAR) LEN(200)
.
.
.
CHGVAR VAR(&QRYSLT) VALUE('DWSYST *EQ "' *CAT &KVAL *TCAT '"')
OPNQRYF FILE(&SLIB/CKFESCP) QRYSLT(&QRYSLT)