第三十六章 Caché 变量大全 $ZORDER 变量

文章目录

第三十六章 Caché 变量大全 $ZORDER 变量

包含下一个全局节点的值。

大纲

$ZORDER
$ZO

描述

$ZORDER包含当前全局引用之后的下一个全局节点的值(在$QUERY序列中,而不是$ORDER序列中)。如果没有下一个全局节点,访问$ZORDER将导致<unfined>错误,指示$ZORDER成功访问的最后一个全局节点。

不能使用SET命令修改此特殊变量。尝试这样做会导致<SYNTAX>错误。

示例

下面的示例使用WHILE循环重复调用$ZORDER以遍历一系列下标节点:

/// d ##class(PHA.TEST.SpecialVariables).ZORDER()
ClassMethod ZORDER()
{
	SET ^||a="groceries"
	SET ^||a(1)="fruit"
	SET ^||a(1,1)="apples"
	SET ^||a(1,2)="oranges"
	SET ^||a(3)="nuts"
	SET ^||a(3,1)="peanuts"
	SET ^||a(2)="vegetables"
	SET ^||a(2,1)="lettuce"
	SET ^||a(2,2)="tomatoes"
	SET ^||a(2,1,1)="iceberg"
	SET ^||a(2,1,2)="romaine"
	SET $ZERROR="unset"
	WRITE !,"last referenced: ",^||a(1,1)
	WHILE $ZERROR="unset" {
		WRITE !,$ZORDER 
	}
	QUIT
}
DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZORDER()
 
last referenced: apples
oranges
vegetables
lettuce
iceberg
romaine
tomatoes
nuts
peanuts
 
  WRITE !,$ZORDER
          ^
<UNDEFINED>zZORDER+15^PHA.TEST.SpecialVariables.1 ^||a(3,1)

上面的示例从最后引用的全局变量(在本例中是进程私有全局变量)开始:^||a(1,1)$ZORDER不包含^||a(1,1)的值,但从该点开始向前工作。对$ZORDER的调用按以下顺序遍历下标树节点:(1,2),(2),(2,1),(2,1,1),(2,1,2),(2,2),(3),(3,1)。每次写入$ZORDER都会显示每个后续节点中的数据值。然后,它会耗尽节点并生成以下错误:^||a(3,1)。请注意,^||a(3,1)不是未定义的;之所以指定它,是因为$ZORDER在这个全局变量之后找不到另一个全局变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yaoxin521123

谢谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值