Почему опция QRYSLT в OPNQRYF становится пустой во время выполнения, когда она определена в программе?
Я пытаюсь использовать OPNQRYF в программе CL, чтобы выбрать некоторые записи из данного файла. Строка выбора запроса определяется в операторе OPNQRYF. Но во время выполнения было выдано сообщение CPF9899 с причиной того, что QRYSLT пуст. Я перекомпилировал программы несколько раз, и проблема все еще была. Затем я попытался сначала определить выбор запроса в символьной переменной, а затем присвоить его QRYSLT. На этот раз это сработало. Как это случилось? У меня есть некоторые другие операторы OPNQRYF в той же программе с определенным QRYSLT, и они работали нормально. Есть ли что-нибудь еще, что может помешать 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)