第三十三章 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
网友评论