文章目录
第二十六章 Caché 变量大全 $ZCHILD 变量 - 大纲
- 描述
- 注意
-
- `$ZCHILD`与`JOB`的成功启动
- MSM语言模式下的$ZC
当前进程的包含最后一个子进程的ID。
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB() DHC-APP>w $zchild 16636 DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB() DHC-APP>w $zchild 5412大纲
$ZCHILD $ZC描述
$ZCHILD包含当前进程使用JOB命令创建的最后一个子进程的ID。如果进程没有使用JOB创建子进程,则$ZCHILD返回0(零)。
在MSM语言模式中,$ZC特殊变量(拼写如下)有不同的用途。用于确定顺序文件读取中的文件结尾。
不能使用SET命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。
注意$ZCHILD与JOB的成功启动
设置$ZCHILD并不意味着JOB已成功启动。它只表示进程已创建,参数已成功传递。
例如,如果使用JOB生成一个不存在的例程,则$TEST和$ZCHILD都会报告作业命令成功,尽管JOB会立即终止并显示<NOROUTINE>错误。
MSM语言模式下的$ZC
MSM语言模式支持$ZC特殊变量的特殊使用。
如果使用%SYSTEM.Process类的LanguageMode(8)方法将当前语言模式设置为MSM,则$ZC特殊变量将在顺序文件读取期间设置。这提供了与MSM $ZC变量的兼容性。(在所有其他语言模式中,$ZC不是在文件读取过程中设置的;$ZC是$ZCHILD的缩写,具有完全不同的功能。)
在MSM语言模式下,成功的顺序文件读取将设置$ZC=0。
在MSM语言模式下,文件结束条件设置$ZC=-1(负1)。未出现<ENDOFFILE>错误。
但是,Caché $ZC与MSM $ZC不同:
如果文件的最后一行没有以分隔符结束,则MSM设置其$ZC=-1(负1)。Caché不检查分隔符;在本例中,它设置$ZC=0而不是-1。
如果读取过程中发生I/O错误,MSM会将其$ZC设置为1。Caché不支持此功能;相反,Caché会发出<read>错误。