Я пытаюсь передать несколько входных параметров, используя prowin32. Но я не могу найти правильный способ передачи нескольких параметров.
Это код моего *.p файла
define input parameter param1 as character no-undo.
define input parameter param2 as character no-undo.
message param1 param2
view-as alert-box.
и я пытаюсь выполнить команду ниже в proenv
prowin32.exe -p D:\proj\myfolder\sample.p -param "1stValue","SecondValue" -clientlog D:\proj\myfolder\pf\lg.log
Я попытался удалить кавычки входных параметров, но все равно получаю сообщение об ошибке.
mismatched parameters passed to the routine
Используйте -param «1stValue,2ndValue».
Затем в своем коде вы используете:
P1 = entry( 1, session:parameter ).
P2 = entry( 2, session:parameter ).
Вместо операторов «определить входной параметр…».
вы не можете проанализировать несколько параметров в процессе всего один СЕССИЯ:ПАРАМЕТР мы сделали это с собственным файлом .p который вызывает .p из сеанса: параметр
запуск prowin32.exe
prowin32.exe -p D:\proj\myfolder\startpgm.p -param "D:\proj\myfolder\sample.p,1stValue,SecondValue" -clientlog D:\proj\myfolder\pf\lg.lo
startpgm.p
DEFINE VARIABLE hCall AS HANDLE NO-UNDO.
DEFINE VARIABLE i AS INTEGER NO-UNDO.
CREATE CALL hCall.
hCall:CALL-NAME = ENTRY(1,SESSION:PARAMETER). // path
hCall:NUM-PARAMETERS = NUM-ENTRIES(SESSION:PARAMETER) - 1. // Num-Parameter
IF NUM-ENTRIES(SESSION:PARAMETER) > 1 THEN DO:
DO i = 2 TO NUM-ENTRIES(SESSION:PARAMETER):
// Parameter
hCall:SET-PARAMETER(i - 1, "CHARACTER", "INPUT", ENTRY(i,SESSION:PARAMETER)).
END.
END.
hCall:INVOKE. // Start