1

InterSystems IRIS 命名空间可以引用我们拥有代码和数据的一个数据库。但在生产部署的情况下,最佳实践是拥有一个用于代码的数据库和一个用于数据的数据库。有什么方法可以知道当前命名空间中数据的数据库名称?

4

1 回答 1

1

########## 由 Yaron Munz 输入 · 2018 年 11 月 14 日。

要获取有关命名空间的信息,您可以使用以下代码(仅在 %sys" 命名空间中运行它):

属性变量通过引用传递(即,它必须指向开头):

%SYS> S Status=##Class(Config.Namespaces).Get("user", .Properties)

%SYS> zw Properties

Properties("Globals")="USER"
Properties("Library")="CACHELIB"
Properties("Routines")="USER"
Properties("SysGlobals")="CACHESYS"
Properties("SysRoutines")="CACHESYS"
Properties("TempGlobals")="CACHETEMP"

########## 由 John Murray · 2018 年 11 月 14 日输入。

%SYS.Namespace 的 GetGlobalDest 方法在回答您的问题时很有用,它不需要切换到 %SYS。

对于 #1,询问 ^ROUTINE 映射到的位置。
对于 #2,不要指定任何全局名称。
对于#3,将您的全局结果与#2 的结果进行比较。

我以前在这里写过这个方法

于 2021-08-31T16:59:12.403 回答