Db2 不允许使用CLLE SNDRCVF命令

Db2 不允许使用CLLE SNDRCVF命令,db2,ibm-midrange,control-language,Db2,Ibm Midrange,Control Language,我正试图使用Rational Series编译这段CL代码,但不断出现错误 这是我的CL代码: PGM DCLF FILE(LAB4DF) SNDRCVF RCDFMT(RECORD1) /* send, recieve file */ DOWHILE (&IN03 = '0') SELECT WHEN (&USER

我正试图使用Rational Series编译这段CL代码,但不断出现错误

这是我的CL代码:

         PGM

         DCLF       FILE(LAB4DF)

         SNDRCVF    RCDFMT(RECORD1) /* send, recieve file */
         DOWHILE    (&IN03 = '0')
            SELECT
               WHEN       (&USERINPUT = '1' *OR &USERINPUT = '01') CALLSUBR   OPTION1
               OTHERWISE  DO
                  *IN03      = '1'
               ENDDO
            ENDSELECT
         ENDDO

         SUBR       OPTION1
            DSPLIBL
         ENDSUBR

         ENDPGM
这是我的DSPF代码

 A          R RECORD1
 A                                  1 38'LAB 4'
 A                                  3  3'Please select one of the following-
 A                                       options:'
 A                                  6 11'3.  Maximum Invalid Signon Attempt-
 A                                      s allowed'
 A                                  8 11'5.  Run Instructor''s Insurance Pr-
 A                                      ogram'
 A                                  5 11'2.  Signed on User''s Message Queu-
 A                                      e'
 A                                  1  3'Yathavan Parameshwaran'
 A                                  7 11'4.  Initial number of active jobs -
 A                                      for storage allocation'
 A                                  4 11'1.  Previous sign on by signed on -
 A                                      user'
 A                                 14 11'F3 = Exit'
 A                                 14 31'F21 = Command Line'
 A                                  2 70TIME
 A                                  1 72DATE
 A                                  9 11'Option: '
 A            USERINPUT      2   B  9 19
 A  91                                  DSPATR(RI)
 A  92                                  DSPATR(PC)
 A            MSGTXT1       70   O 11 11
 A            MSGTXT2       70   O 12 11 

我的CL代码或DSPF代码有问题吗?

查看文档,我怀疑您需要将
RCDFMT
添加到
DCLF
规范中,如下所示:

     DCLF       FILE(LAB4DF) RCDFMT(RECORD1)

     SNDRCVF    RCDFMT(RECORD1) /* send, recieve file */
如果显示文件中确实只有一种记录格式,则还可以从两个命令中省略
RCDFMT
,如下所示:

     DCLF       FILE(LAB4DF)

     SNDRCVF    /* send, recieve file */

查看文档,我怀疑您需要将
RCDFMT
添加到
DCLF
规范中,如下所示:

     DCLF       FILE(LAB4DF) RCDFMT(RECORD1)

     SNDRCVF    RCDFMT(RECORD1) /* send, recieve file */
如果显示文件中确实只有一种记录格式,则还可以从两个命令中省略
RCDFMT
,如下所示:

     DCLF       FILE(LAB4DF)

     SNDRCVF    /* send, recieve file */

你忘了说你犯了什么错误。把所有关于错误信息的信息都放进你的问题中总是很重要的

有两个错误

  • &IN03未定义
  • 您分配给*IN03的任务应该是分配给&IN03,但这不是您在CLP中执行任务的方式
如果希望能够按F3键,则必须在记录格式的“函数”中编写类似CA03(03)的代码

要在CL中指定变量,请使用代码

CHGVAR name value

你忘了说你犯了什么错误。把所有关于错误信息的信息都放进你的问题中总是很重要的

有两个错误

  • &IN03未定义
  • 您分配给*IN03的任务应该是分配给&IN03,但这不是您在CLP中执行任务的方式
如果希望能够按F3键,则必须在记录格式的“函数”中编写类似CA03(03)的代码

要在CL中指定变量,请使用代码

CHGVAR name value

我尝试编码,将另一种记录格式添加到文件中。事实证明,只要在SNDRCVF上指定RCDFMT,就不需要在DCLF上指定RCDFMT。事实证明,只要在SNDRCVF上指定RCDFMT,就不需要在DCLF上指定RCDFMT。啊,很抱歉没有错误消息。我得到的主要是&IN03错误。我会试试你的建议。谢谢啊,很抱歉没有错误消息。我得到的主要是&IN03错误。我会试试你的建议。谢谢