前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Caché 变量大全 $ZNSPACE 变量

Caché 变量大全 $ZNSPACE 变量

作者头像
用户7741497
发布2022-06-02 10:40:11
2720
发布2022-06-02 10:40:11
举报
文章被收录于专栏:hml_知识记录

Caché 变量大全 $ZNSPACE 变量

包含当前命名空间名称。

大纲

代码语言:javascript
复制
$ZNSPACE

描述

$ZNSPACE包含当前命名空间的名称。通过设置$ZNSPACE,可以更改当前名称空间。

要获取当前命名空间名称,请执行以下操作:

代码语言:javascript
复制
DHC-APP>SET ns=$ZNSPACE
 
DHC-APP>WRITE ns
DHC-APP

还可以通过调用%SYSTEM.SYS类的Namespace()方法来获取当前命名空间的名称,如下所示:

代码语言:javascript
复制
DHC-APP>SET ns=$SYSTEM.SYS.NameSpace()
 
DHC-APP>WRITE ns
DHC-APP

可以使用%SYS.Namespace类的Existes()方法测试命名空间是否已定义,如下所示:

代码语言:javascript
复制
DHC-APP>WRITE ##class(%SYS.Namespace).Exists("USER")
1
DHC-APP>WRITE ##class(%SYS.Namespace).Exists("LOSER")
0

对于UNIX®系统,默认命名空间建立为系统配置选项。对于Windows系统,它是使用命令行启动选项设置的。

命名空间名称不区分大小写。InterSystems IRIS始终以全大写字母显示显式名称空间名称,以全小写字母显示隐含的名称空间名称。

要获取指定进程的命名空间名称,请使用%SYS.ProcessQuery类的方法,如下例所示:

代码语言:javascript
复制
DHC-APP>WRITE ##CLASS(%SYS.ProcessQuery).%OpenId($JOB).NameSpaceGet()
DHC-APP

设置当前命名空间

可以使用ZNSPACE命令、SET $NAMESPACESET $ZNSPACE%cd实用程序更改当前名称空间。

  • 在终端命令提示符下,ZNSPACE命令是更改名称空间的首选方式。SET $ZNSPACE在功能上与ZNSPACE命令相同。
  • 在代码例程中,新建$NAMESPACE,然后设置$NAMESPACE = NAMESPACE是更改当前名称空间的首选方式。通过使用new $NAMESPACESET $NAMESPACE,可以建立一个名称空间上下文,该上下文在方法结束或发生意外错误时自动恢复到前一个名称空间。

可以使用SET $ZNSPACE更改进程的当前命名空间。将新命名空间指定为字符串文字或计算结果为带引号的字符串的变量或表达式。可以指定显式名称空间(“NAMESPACE”)或隐式名称空间(“^SYSTEM^DIR”或“^^DIR”)。

如果指定当前命名空间,则SET $ZNSPACE不执行任何操作,也不返回任何错误。如果指定了一个未定义的名称空间,则SET $ZNSPACE会生成一个<NAMESPACE>错误。

不能new $ZNSPACE特殊变量。

示例

在以下示例中,如果当前命名空间不是USER,则SET $ZNSPACE命令会将当前命名空间更改为USER。请注意,由于if测试,命名空间必须全部用大写字母指定。

代码语言:javascript
复制
/// d ##class(PHA.TEST.SpecialVariables).ZNSPACE()
ClassMethod ZNSPACE()
{
    SET ns="USER"
    IF $ZNSPACE=ns {
        WRITE !,"命名空间已经 ",$ZNSPACE 
    } ELSEIF 1=##class(%SYS.Namespace).Exists(ns) {
        WRITE !,"命名空间是 ",$ZNSPACE
        SET $ZNSPACE=ns
        WRITE !,"将命名空间设置为 ",$ZNSPACE 
    } ELSE { 
        WRITE !,ns," 不是定义的命名空间" 
    }
    QUIT
}
代码语言:javascript
复制
DHC-APP>d ##class(PHA.TEST.SpecialVariables).ZNSPACE()
 
命名空间是 DHC-APP
将命名空间设置为 USER

此示例要求UnnownUser已分配%DB_IRISSYS%DB_USER角色。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Caché 变量大全 $ZNSPACE 变量
  • 大纲
  • 描述
  • 设置当前命名空间
  • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档