Výraz typu Int - maximálny čas behu programu v sekundách.
_toExec
in
Identifikátor typu text.
Popis
Akcia RUN odštartuje program daný textovým reťazcom "meno programu". Akcia RUNEX odštartuje program daný hodnotou identifikátora typu text
_toExec.
Pri prvom variante je možné špecifikovať, či bude
program spustený synchrónne (SYNC) alebo asynchrónne (ASYNC). Druhý variant je vždy synchrónny. Po skončení
programu je jeho návratový kód priradený do identifikátora intIdent_Int.
Ak je maximálny čas behu programu ohraničený kľúčovým slovom TIMEOUT a program neskončí v časovom limite, bude násilne
ukončený a návratová hodnota (v prvom prípade) nadobudne hodnotu _ERR_TIME_OUT.
V niektorých prípadoch je potrebné, aby meno programu vzniklo na
základe textových operácií.
Tu je vhodné použiť akciu RUNEX, ktorá štartuje program daný hodnotou textového identifikátora
_toExec.
Rovnaký efekt dosiahneme
akciou RUN, ak ako meno programu bude prázdny textový reťazec a celý príkaz sa uvedie ako parameter pomocou výrazu
paramExpr_Str (viď. príklad).
Ak je akcia použitá vo variante s návratovým kódom a nepodarilo sa
spustiť program, návratový kód (intIdent_Int) bude nastavený na
neplatnú hodnotu.
Poznámka:
Pre OpenVMS len asynchrónne - bez parametrov.
Príklad
Nasledujúci príklad kopíruje súbor d:\d2000.v70\prefix\sqlback\syscfg.db do adresára
c:\archiv pomocou štandardných prostriedkov operačného systému (shell spustí príkaz copy).
; Kopírovanie súboru
; Zdrojový súbor
TEXT _copySrc := "d:\d2000.v70\prefix\sqlback\syscfg.db"
; Cieľový adresár
TEXT _copyDst := " c:\archiv"
; Parametre pre príkaz copy
TEXT _switch := "/Y "
; Návratový kód
INT _ret
_ret := RUN "cmd /C copy" SYNC _switch + _copySrc + _copyDst
; alebo celý príkaz zadaný ako výraz
; _ret := RUN "" SYNC "cmd /C copy " + _switch + _copySrc + _copyDst
IF _ret # _ERR_NO_ERROR THEN
; chyba
ENDIF
END