文章目录
第三十三章 Caché 变量大全 $ZMODE 变量 - 大纲
- 描述
- 示例
包含当前I/O设备打开参数。
大纲$ZMODE $ZM描述
$ZMODE包含使用OPEN或USE命令为当前设备指定的参数。返回的字符串包含用于以规范形式打开当前I/O设备的参数。这些参数值由反斜杠分隔符分隔。TCP/IP IO上的开放参数(如“M”)被规范化为“PSTE”。“Y”和“K”参数值始终放在最后。
不能使用SET命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。
示例以下示例使用$ZMODE返回当前设备的参数:
/// d ##class(PHA.TEST.SpecialVariables).ZMODE() ClassMethod ZMODE() { WRITE !,"当前的开放模式有: ",$PIECE($ZMODE,"\") WRITE !,"NLS集合为: ",$PIECE($ZMODE,"\",2) WRITE !,"网络编码是: ",$PIECE($ZMODE,"\",4) }
- 终端
DHC-APP> d ##class(PHA.TEST.SpecialVariables).ZMODE() 当前的开放模式有: RY NLS集合为: Latin1 网络编码是: GB18030
- 控制台
d ##class(PHA.TEST.SpecialVariables).ZMODE() 当前的开放模式有: SADY NLS集合为: Latin1 网络编码是: RAW
下面的示例使用Use命令设置当前设备的参数。它在USE命令前后使用$ZMODE检查当前参数。为了测试是否设置了特定参数,此示例使用带有反斜杠分隔符的$PIECE函数,并使用CONTAINS运算符([)测试值。
/// d ##class(PHA.TEST.SpecialVariables).ZMODE1() ClassMethod ZMODE1() { Zmodetest WRITE !, $ZMODE IF $PIECE($ZMODE,"\")["S" { WRITE !, "S is set" } ELSE { WRITE !, "S is not set" } USE 0:("":"IS":$CHAR(13,10)) WRITE !, $ZMODE IF $PIECE($ZMODE,"\")["S" { WRITE !, "S is set" } ELSE { WRITE !, "S is not set" } QUIT }
DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZMODE1() RY\Latin1\K\GB18030\ S is not set SIRY\Latin1\K\GB18030\ S is set