InterSystems IRIS 命名空间可以引用我们拥有代码和数据的一个数据库。但在生产部署的情况下,最佳实践是拥有一个用于代码的数据库和一个用于数据的数据库。有什么方法可以知道当前命名空间中数据的数据库名称?
问问题
54 次
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 回答