Global 扫描和切片

本文探讨了在处理Global(全局变量)时遇到的多级下标问题,特别是那些与类或表无关的Global,如^SPOOL、^ERRORS和^%SYS。分析这类不一致的Global结构具有挑战性,而直接导出内容可能无法揭示依赖关系。作者提出了一种逐级显示Global结构的方法,通过SQL语句可以查看任意Global的详细层级,包括下标、节点数据、子节点数量以及存储的内容,帮助理解其内在结构。举例说明了如何使用该方法查询^%SYS和^ERRORS。
摘要由CSDN通过智能技术生成

Global 扫描和切片

这是一个在 IRIS 2020.1 和 Caché 2018.1.3 上工作的代码示例
不会与新版本保持同步
也不会获得 InterSystems 提供的支持服务!

大多数情况下,默认存储使用的 global 只有 1 个表示 IDKEY 的下标级别。 对于索引 global,可能有 2 个或更多下标级别。

数组、父子关系或扩展了基础数据类的持久化类 是具有更多下标级别的示例。 但所有这些 global 都非常统一。 我们还能看到与类或表无关的 global,例如 ^SPOOL、^ERRORS 或 ^%SYS 其中的结构取决于各个级别的具有特殊含义的下标。

分析这些不一致的 global 是一个挑战,而只是把它的内容导出来不一定有助于理解依赖关系。

本示例的原理就像那个古老的笑话:“如何吃一头大象?” ==>“切成片吃!”

以下是实现的功能:

通过一条 SQL 语句,您可以逐级显示任意 global 的结构。

您提供 global 名称和要显示的最大级别,即可获得相关下标、节点的 $Data、后面的子节点数量以及在该级别存储的内容(如果有的话)。

示例:**SELECT * FROM rcc\_G.scan where rcc\_G.Scan('^%SYS',1)=1**

Reference       Level $D SubN  Value
^%SYS               0   10 25    
("CSP")             1   10       
(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值