CALL


Синтаксис

CALL(ProgramName: IDENT; 
     ProgramMODE: SCAL[1000]);

CALL(ProgramName.ProcedureName( { Param: ANYTYPE } )) [ : ANYTYPE ];

Описание

Оператор выполняет программу ProgramName. Существует в двух вариантах: модульном (первый) и процедурном (второй). Текст программы берется из файла с именем ProgramName и расширением DBS, если оператор вызван из DBS-программы, либо с расширением ASL в прочих случаях. В модульном варианте параметр ProgramMODE задает начальное значение переменной MODE для выполнения тела модуля. В процедурном варианте тело модуля ProgramName выполняется с MODE, равной 999, после чего вызывается процедура или функция ProgramName.ProcedureName с заданными параметрами. Если ProgramName.ProcedureName является функцией, оператор CALL возвращает результат функции.

До версии 14.170.090 все процедуры модуля были доступны для процедурного варианта оператора CALL, вне зависимости от модификаторов доступа PUBLIC и PRIVATE. Начиная с версии 14.170.110 модификаторы доступа учитываются при наличии в модуле атрибута DEFAULTACCESSFORPROCEDURE, для приватной процедуры будет предупреждение CallPrivateProc.