文章目录

  • 第三十三章 Caché 变量大全 $ZMODE 变量
  • 大纲
  • 描述
  • 示例

 

 
第三十三章 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