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
("CSPAppSec") 1 1 64
("CacheTempDir") 1 1 "c:\intersystems\iris\mgr\iristemp\"
("DBRefByName"

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

被折叠的 条评论
为什么被折叠?



