1
我想從CLLE調用RPGLE過程。由於RPGLE過程存在,我不能將其更改爲extproc(* CL)類型。我目前在V7R1。我已經使用了下面的代碼。如果我通過* BYVAL參數沒有通過。如果我通過* BYREF它正在工作。我已經在RPGLE服務中將參數定義爲CONST。請讓我知道,如果我必須做任何額外的更改通過價值傳遞。* BYVAL和* BYREF CLLE
PGM
DCLPRCOPT USRPRF(*OWNER) DFTACTGRP(*NO) ACTGRP(*NEW) +
BNDDIR(SAMSRV)
DCL VAR(&CLNBR) TYPE(*CHAR) LEN(9)
DCL VAR(&USER) TYPE(*CHAR) LEN(10)
DCL VAR(&IS_VLD) TYPE(*LGL)
CHGVAR VAR(&CLNBR) VALUE('01112201T')
CHGVAR VAR(&USER) VALUE('UUUUU ')
CALLPRC PRC('IsValidClient') PARM((&CLNBR *BYREF) +
(&USER *BYREF)) RTNVAL(&IS_VLD)
ENDPGM
我總是覺得CONST等於按價值傳遞。所以CONST是通過引用傳遞的,但是隻讀引用。謝謝你的回答 – Sekar
正確。 'CONST'和'VALUE'都允許你傳遞文字......'callp myproc('Hi');'但他們使用不同的機制來這樣做。 – Charles