.png)
第四十七章 Caché 变量大全 ^$JOB 变量
提供系统间IRIS进程(JOB)信息。
大纲
^$JOB(job_number)
^$J(job_number)
参数
job_number输入ObjectScript命令时创建的系统特定OBJ编号。每个活动的InterSystems IRIS进程都有一个唯一的作业号。登录到系统会启动一个作业。在UNIX®系统上,作业号是调用InterSystems IRIS时启动的子进程的PID。JOB_NUMBER必须指定为整数;不支持十六进制值。
描述
可以将^$JOB结构化系统变量用作、$ORDER和函数的参数,以获取有关本地InterSystems IRIS系统上是否存在InterSystems IRIS作业的信息。
示例
以下示例显示如何将用作、和函数的参数。
作为$DATA的参数
作为的参数返回一个整数值,该值指示指定的作业是否作为节点存在于中。下表显示了可以返回的整数值。
| Value | Meaning |
|---|---|
| 0 | JOB不存在 |
| 1 | JOB存在 |
以下示例测试系统间IRIS进程是否存在。
DHC-APP>SET x=$JOB
DHC-APP>WRITE !,$DATA(^$JOB(x))
1
变量设置为当前进程的作业号(例如:4294219937)。写入操作返回布尔值1,表示此进程存在。
第四十六章 Caché 变量大全 ^$GLOBAL 变量
提供有关全局变量和进程私有全局变量的信息。
大纲
^$|nspace|GLOBAL(global_name)
^$|nspace|G(global_name)
^$||GLOBAL(global_name)
^$||G(global_name)
参数
|nspace|或[nspace]- 可选-扩展SSVN引用,可以是显式名称空间名称,也可以是隐含名称空间。必须计算为带引号的字符串,该字符串括在方括号([“nspace”])或竖线()中。命名空间名称不区分大小写;它们以大写字母存储和显示。- global_name 计算结果为包含无下标全局名称的字符串的表达式。全局名称区分大小写。使用语法时,与进程专用全局名称相对应的无下标全局名称:表示
^||a。
描述
可以将^$GLOBAL用作、$ORDER和函数的参数,以返回有关当前名称空间(默认名称空间)或指定名称空间中是否存在全局变量的信息。还可以使用返回有关存在进程私有全局变量的信息。
进程私有全局变量
可以使用获取有关所有命名空间中是否存在进程私有全局变量的信息。可以将进程专用全局的查找指定为或。
例如,要获取有关进程私有全局及其后代的信息,可以指定
第四十五章 Caché 变量大全 $ZVERSION 变量
包含一个字符串,描述do命令后面的InterSystems IRIS.line的当前版本。
大纲
$ZVERSION
$ZV
描述
$ZVERSION包含一个字符串,该字符串显示当前运行的InterSystems IRIS®Data Platform实例的版本。
以下示例返回$ZVERSION字符串:
DHC-APP>WRITE $ZVERSION
Cache for Windows (x86-64) 2016.2 (Build 736U) Fri Sep 30 2016 11:46:02 EDT
此字符串包括InterSystems IRIS安装的类型(产品和平台,包括CPU类型)、版本号(2018.1)、该版本中的内部版本号(内部版本号中的“U”表示UNICODE以及创建此版本的InterSystems IRIS的日期和时间。是东部标准时间(美国东部的时区),“EDT”是东部夏令时
通过调用类方法可以返回相同的信息,如下所示:
DHC-APP>WRITE $SYSTEM.Version.GetVersion()
Cache for Windows (x86-64) 2016.2 (Build 736U) Fri Sep 30 2016 11:46:02 EDT
以通过调用其他
大家好!
InterSystems开发者社区中文版正在招募版主,以更好地推动中文社区建设,期待每一位开发者的积极参与,共同打造一个高效沟通的技术社区!
欢迎点击报名(或扫描下方二维码),审核通过后,我们会与您详细沟通版主权益及义务。
.png)
第四十四章 Caché 变量大全 $ZTRAP 变量
包含当前错误陷阱处理程序的名称。
大纲
$ZTRAP
$ZT
描述
$ZTRAP包含当前错误陷阱处理程序的行标签名和/或例程名。有三种方法可以设置$ZTRAP:
SET $ZTRAP=“location”SET $ZTRAP=“*location”SET $ZTRAP=“^%ET” or “^%ETN”
在这里,位置可以指定为标签(当前例程中的行标签)、(指定外部例程的开始)或(指定外部例程中的指定标签)。
然而,不能用于程序块。过程块中的不能用于转到过程体之外的位置;过程块中的$ZTRAP只能引用该过程块中的一个位置。
Location
使用设置命令,可以将位置指定为带引号的字符串。
- 在例程中,可以将位置指定为标签(当前例程中的行标签)、(指定外部例程的开始)或(指定外部例程中的指定标签)。不要在引用过程或过程中的标签的例程中指定位置。这是一个无效位置;当InterSystems IRIS试图执行时,会导致运行时错误。
- 在过程中,可以将位置指定为标签;过程块中私有标签。过程块中的不能用于转到过程体之外的位置;过程块中的只能引用该过程块中的一个位置。因此,在过程中,不能将
$ZTRAP设置为或.尝试这样做将导致错误。
在过程中,将设置为私有标签名,但是
第四十三章 Caché 变量大全 $ZTIMEZONE 变量
包含格林威治子午线的时区偏移量。
大纲
$ZTIMEZONE
$ZTZ
描述
$ZTIMEZONE可以通过两种方式使用:
- 返回计算机的本地时区偏移量。
- 为当前进程设置本地时区偏移量。
$ZTIMEZONE包含从格林威治子午线偏移的时区(以分钟为单位)。 (格林威治子午线包括整个英国和爱尔兰。)此偏移量表示为-1440到1440范围内的有符号整数。格林威治以西的时区指定为正数;格林威治东部的时区指定为负数。 (时区必须以分钟为单位,因为并非所有时区都以小时为单位。)默认情况下,$ZTIMEZONE初始化为计算机操作系统设置的时区。
注意:$ZTIMEZONE将本地时间调整为固定的偏移量。它不适应夏令时或其他当地时间的变化。 InterSystems IRIS从基础操作系统获取本地时间,该操作系统将本地时间变体应用于为该计算机配置的位置。因此,使用调整的本地时间将从配置的语言环境中获取其本地时间变化,而不是在$ZTIMEZONE中指定的时区。
使用格林威治子午线()的时区计数来计算UTC时间。它与当地格林威治时间不同。格林威治标准时间(GMT)一词可能令人困惑;格林威治的当地时间与冬季的UTC相同。在夏季,它与UTC的差异为一小时。这是因为应用了称为英国夏令时的本地时间变体。
对于使用
第四十二章 Caché 变量大全 $ZTIMESTAMP 变量
包含协调世界时间格式的当前日期和时间。
大纲
$ZTIMESTAMP
$ZTS
描述
$ZTIMESTAMP包含协调的通用时间值形式的当前日期和时间。这是世界范围内的时间和日期标准;此值很可能与当地的时间(和日期)值不同。
$ZTIMESTAMP将日期和时间表示为以下格式的字符串:
ddddd,sssss.fff
其中ddddd是一个整数,指定自1840年12月31日起的天数;是一个整数,指定自当天午夜以来的秒数,fff是一个可变的数字,指定小数秒。这种格式类似于,只是不包含分数秒。
假设当前日期和时间(世界协调时)如下:
2018-02-22 15:17:27.984
当时,的值为:
64701,55047.984
$ZTIMESTAMP报告协调世界时(UTC),它独立于时区。因此,提供了一个跨时区的统一时间戳。这可能不同于本地时间值和本地日期值。
时间值是一个十进制数值,以秒及其分数为单位计算时间。分数秒的位数可能从零到九不等,具体取决于计算机时钟的精度。在视窗系统上,小数精度是三位小数;在UNIX系统上,它是六位十进制数字。在此小数部分中抑制尾随零或尾随小数点。请注意,在午夜后的第一秒内,秒表示为(例如,);这个数字不是ObjectScript规范形式(例如,),这会影响这些值的字符串排序顺序。
第四十一章 Caché 变量大全 $ZSTORAGE 变量
包含进程的最大可用内存。
大纲
$ZSTORAGE
$ZS
描述
$ZSTORAGE包含JOB的进程私有内存的最大内存量(以为单位)。此内存可用于局部变量、堆栈和其他表。此内存限制不包括例程目标代码的空间。此内存根据需要分配给进程,例如在分配数组时。
一旦将此内存分配给进程,通常在该进程退出之前不会释放它。但是,当大量内存被使用(例如,大于32MB)然后被释放时,系统间IRIS会尝试在可能的情况下将释放的内存释放回操作系统。
还可以使用设置最大内存大小。例如,以下语句将作业的最大进程专用内存设置为:
SET $ZSTORAGE=524288
更改会更改$STORAGE特殊变量的初始值,该变量包含进程的当前可用内存(以字节为单位)。
的最大值为。默认值为。的最小值为。值大于最大值或小于最小值会自动默认为最大值或最小值。设置为整数值;InterSystems IRIS截断任何小数部分(如果指定)。
可以通过更改最大每进程内存(KB)系统配置设置来更改默认值。在管理门户中,依次选择System Administration、Configuration、Systtem Configuration、Memory和Startup。
大家好!
以下是 InterSystems编程大奖赛 的技术奖励,这些奖励会让您在投票中获得加分。
大家可能已经听说过,我们近期推出了InterSystems API管理器 (以下简称IAM)。InterSystems IRIS数据平台™新增了一项功能,支持用户监视、控制和管理IT基础架构中基于Web的API间通信。
在本文中,我将向大家展示如何设置IAM,并重点介绍IAM中可用的一些功能。InterSystems API管理器可提供你所需的一切功能。
第四十章 Caché 变量大全 $ZREFERENCE 变量
包含当前全局变量global引用。
大纲
$ZREFERENCE
$ZR
描述
$ZREFERENCE包含上次全局引用的名称和下标。这就是所谓裸指针。
注意:最后一个全局引用是最近访问的全局节点。通常,这是对全局的最新显式引用。但是,某些命令可能在内部使用$ORDER函数遍历全局下标(命令就是一个例子),或者它们可能在内部引用其他全局脚本。发生这种情况时,$ZREFERENCE包含上次访问的全局节点,该节点可能不是为命令指定的全局节点。
最后一个全局引用可以是全局()或进程专用全局()。$ZREFERENCE以最初用于该变量的形式返回进程专用全局前缀,而不管随后对该变量使用哪个进程专用全局前缀。在接下来的描述中,单词指的是这两种类型的变量。
最后一个全局引用是命令或函数最近引用的全局。由于ObjectScript按从左到右的顺序执行操作,因此最后一个全局引用始终是最右侧的全局引用。当命令或函数使用多个参数时,最右侧参数中指定的全局参数是最后一个全局引用。当参数包含多个全局引用时,最右侧指定的全局引用是最后一个全局引用。即使使用圆括号来定义操作顺序,从左到右的严格顺序也是正确的。
当发出显式全局引用时,InterSystems IRIS会更新
第三十七章 Caché 变量大全 $ZPARENT 变量
包含当前进程的父进程的ID。
大纲
$ZPARENT
$ZP
描述
$ZPARENT包含使用JOB命令创建当前进程的父进程的。如果当前进程不是使用命令创建的,则包含0(零)。
不能使用SET命令修改此特殊变量。尝试这样做会导致错误。
第三十八章 Caché 变量大全 $ZPI 变量
包含的值。
大纲
$ZPI
描述
$zpi包含数值常量到小数点后18位的值()。
该值经常用于三角函数,例如正弦函数。
第三十九章 Caché 变量大全 $ZPOS 变量
包含读取顺序文件期间的当前文件位置。
大纲
描述
包含顺序文件读取期间的当前文件位置。如果没有正在进行的顺序文件读取,则包含0(零)。
当打开文件进行顺序读取时,每次从该设备读取都会将设置为文件中下一次读取的位置。值是读取、读取或读取结束时的实际文件偏移量(以字节为单位)。用户在读取多字节字符集时必须适当小心。
可以使用函数设置当前文件位置。不能使用命令修改此特殊变量。尝试这样做会导致错误。
第三十六章 Caché 变量大全 $ZORDER 变量
包含下一个全局节点的值。
大纲
$ZORDER
$ZO
描述
$ZORDER包含当前全局引用之后的下一个全局节点的值(在$QUERY序列中,而不是序列中)。如果没有下一个全局节点,访问将导致错误,指示成功访问的最后一个全局节点。
不能使用命令修改此特殊变量。尝试这样做会导致错误。
示例
下面的示例使用WHILE循环重复调用以遍历一系列下标节点:
/// d ##class(PHA.TEST.SpecialVariables).ZORDER()
ClassMethod ZORDER()
{
SET ^||a="groceries"
SET ^||a(1)="fruit"
SET ^||a(1,1)="apples"
SET ^||a(1,2)="oranges"
SET ^||a(3)="nuts"
SET ^||a(3,1)="peanuts"
SET ^||a(2)="vegetables"
SET ^||a(2,1)="lettuce"
SET ^||a(2,2)="tomatoes"
SET ^||a(2,1,1)="iceberg"
SET ^||a(2,1,2)="romaine"
SET $ZERROR="unset"
WRITE !,"last referenced: ",^||a(1,1)
WHILE $ZERROR="unset" {
WRITE !,$ZORDER
}
QUIT
}
第三十五章 Caché 变量大全 $ZNSPACE 变量
包含当前命名空间名称。
大纲
$ZNSPACE
描述
$ZNSPACE包含当前命名空间的名称。通过设置$ZNSPACE,可以更改当前名称空间。
要获取当前命名空间名称,请执行以下操作:
DHC-APP>SET ns=$ZNSPACE
DHC-APP>WRITE ns
DHC-APP
还可以通过调用类的方法来获取当前命名空间的名称,如下所示:
DHC-APP>SET ns=$SYSTEM.SYS.NameSpace()
DHC-APP>WRITE ns
DHC-APP
可以使用类的Existes()方法测试命名空间是否已定义,如下所示:
DHC-APP>WRITE ##class(%SYS.Namespace).Exists("USER")
1
DHC-APP>WRITE ##class(%SYS.Namespace).Exists("LOSER")
0
对于UNIX®系统,默认命名空间建立为系统配置选项。对于Windows系统,它是使用命令行启动选项设置的。
命名空间名称不区分大小写。InterSystems IRIS始终以全大写字母显示显式名称空间名称,以全小写字母显示隐含的名称空间名称。
要获取指定进程的命名空间名称,请使用类的方法,如下例所示:
设置当前命名空间
可以使用命令、SET $NAMESPACE、
第三十四章 Caché 变量大全 $ZNAME 变量
包含当前例程名称。
大纲
$ZNAME
$ZN
描述
$ZNAME包含在当前进程上执行的例程的名称。通常,这是ZLOAD加载的当前例程。如果当前没有执行任何例程,则$ZNAME包含空字符串。
当ZLOAD加载一个例程时,它将成为所有名称空间中当前进程的当前加载例程。因此,可以使用$ZNAME显示任何名称空间中当前加载的例程的名称,而不仅仅是加载该例程的名称空间。
例程名称区分大小写。
请注意,尝试ZLOAD例程失败会删除当前加载的例程,并将$ZNAME设置为空字符串。
不能使用SET命令修改此特殊变量。尝试这样做会导致
$ZNAME值可以通过以下任何命令设置:
- ZLOAD command
- ZSAVE command
- 无参数ZREMOVE命令(设置为空字符串)
- DO command
- GOTO command with ^routine
第三十三章 Caché 变量大全 $ZMODE 变量
包含当前I/O设备打开参数。
大纲
$ZMODE
$ZM
描述
$ZMODE包含使用OPEN或命令为当前设备指定的参数。返回的字符串包含用于以规范形式打开当前I/O设备的参数。这些参数值由反斜杠分隔符分隔。TCP/IP IO上的开放参数(如)被规范化为。和参数值始终放在最后。
不能使用命令修改此特殊变量。尝试这样做会导致错误。
示例
以下示例使用$ZMODE返回当前设备的参数:
/// d ##class(PHA.TEST.SpecialVariables).ZMODE()
ClassMethod ZMODE()
{
WRITE !,"当前的开放模式有: ",$PIECE($ZMODE,"\")
WRITE !,"NLS集合为: ",$PIECE($ZMODE,"\",2)
WRITE !,"网络编码是: ",$PIECE($ZMODE,"\",4)
}
- 终端
DHC-APP> d ##class(PHA.TEST.SpecialVariables).ZMODE()
当前的开放模式有: RY
NLS集合为: Latin1
网络编码是: GB18030
- 控制台
d ##class(PHA.TEST.SpecialVariables).ZMODE()
当前的开放模式有: SADY
NLS集合为: Latin1
网络编码是: RAW
第三十二章 Caché 变量大全 $ZJOB 变量
包含JOB状态信息。
大纲
$ZJOB
$ZJ
描述
$ZJOB包含一个数字,其中每个位代表作业状态的一个特定方面。 $ZJOB返回一个整数,该整数由设置的状态位的总和组成。例如,如果,则表示设置了1位和4位。
要测试单个位设置,可以使用整数除()和模(#)运算符。例如,,其中x是位号。下表显示了位的布局(按位的位置值)、其设置和含义:
| Bit | Set to | Meaning |
|---|---|---|
| 1 | 1 | Job 从终端提示符启动。 |
| 1 | 0 | Job 从routine开始. |
| 2 | 1 | Job 由命令启动. |
| 2 | 0 | Job 通过在终端提示下登录或从例程登录开始。 |
| 4 | 1 | 已启用。 CTRL-C可以中断正在运行的程序。 |
| 4 | 0 | 被禁用,但已通过或命令显式启用了的终端行除外。 |
| 8 | 1 | 已收到并挂起。 |
| 8 | 0 | 未收到。值8由和命令以及引起的错误陷阱清除。 |
| 1024 | 1 | 无论其他条件如何,日志记录都会被禁用。 |
| 1024 | 0 | 如果其他条件指示日志记录,则为此作业启用日志记录。 |
不能使用SET命令修改此特殊变量。尝试执行此操作会导致错误。
示例
以下示例以整数形式返回:
DHC-APP>WRITE $ZJOB
5
以下示例返回每个位值:
第三十一章 Caché 变量大全 $ZIO 变量
包含有关当前终端I / O设备的信息。
$ZIO
$ZI
描述
$ZIO包含有关当前I / O设备的信息。
对于作为终端的终端设备,$ZIO包含字符串。如果当前终端设备是远程连接的,则$ZIO包含有关远程连接的信息。
对于通过TELNET连接的终端设备,包含以下内容::
| 参数 | 描述 |
|---|---|
| host | 远程主机IP地址,格式为IPv4:nnn.nnn.nnn.nnn(其中nnn是十进制数字)或IPv6格式:h:h:h:h:h:h:h:h,其中h为十六进制数。 |
| por | 远程IP端口号。 |
这两个值由竖线字符分隔。例如。
如果当前设备不是终端:
- 如果是文件,则
$ZIO包含文件的完整规范路径名。 - 如果不是文件,则
$ZIO包含空字符串。
以下示例返回当前设备信息:
/// d ##class(PHA.TEST.SpecialVariables).ZIO()
ClassMethod ZIO()
{
SET x = $CASE($ZIO,
"TRM:":"终端",
"CON:":"控制台",
"":"既不是终端也不是文件")
WRITE "当前设备是 ",x
}
第三十章 Caché 变量大全 $ZHOROLOG 变量
包含自Caché启动以来经过的秒数。
大纲
$ZHOROLOG
$ZH
描述
$ZHOROLOG包含自最近的Caché启动以来经过的秒数。这是一个计数,与时钟变化和日期范围无关。该值表示为浮点数,表示秒和秒的分数。小数位数与平台有关。 $ZHOROLOG在此小数部分截断尾随零。
不能使用命令修改此特殊变量。尝试这样做会导致错误。
注意:由于Windows操作系统的限制,使Windows系统进入休眠或待机模式可能会导致$ZHOROLOG返回不可预测的值。此问题不会影响或$ZTIMESTAMP值。
示例
本示例输出当前的值。
DHC-APP>WRITE $ZHOROLOG
94657.76444
以下示例说明如何使用计时事件并进行基准测试。本示例通过100次执行对应用程序进行计时,然后找到平均运行时间。
/// d ##class(PHA.TEST.SpecialVariables).ZHOROLOG()
ClassMethod ZHOROLOG()
{
Cycletime
SET start=$ZHOROLOG
FOR i=1:1:100 { DO Myapp }
SET end=$ZHOROLOG
WRITE !,"平均运行时间是 ",(end-start)/100," 秒"
QUIT
Myapp
WRITE !,"执行我的申请"
; 应用程序代码在这里
QUIT
}
第二十九章 Caché 变量大全 $ZERROR 变量
包含上一个错误的名称和位置。
大纲
$ZERROR
$ZE
描述
$ZERROR包含最新错误的名称,最新错误的位置(在适用的情况下)以及(对于某些错误代码而言)有关导致错误的原因的其他信息。 $ZERROR始终包含相应语言模式的最新错误。
值旨在错误后立即使用。由于值可能不会在例程调用中保留,因此希望保留$ZERROR值以供以后使用的用户应将其复制到变量中。强烈建议用户在使用后立即将$ZERROR设置为空字符串(“”)。
$ZERROR中包含的字符串可以是以下任何一种形式:
<error>
<error>entryref
<error> info
<error>entryref info
- 错误名称。错误名称始终以全部大写字母返回,并用尖括号括起来。它可能包含空格。
- 对发生错误的代码行的引用。它由标签名称和距该标签的行偏移量组成,后跟
^和程序名称。此f紧跟在错误名称的右尖括号之后。从终端调用时,此信息没有意义,因此不会返回。对最近使用加载到例程缓冲区中的例程的引用。 - 特定于某些错误类型的附加信息(见下表)。此信息与或
之间用空格分隔。如果有多个组件要提供信息,则用逗号分隔。entryref
例如,一个程序(名为zerrortest)包含以下例程(名为),该例程试图写入fred
第二十八章 Caché 变量大全 $ZEOS 变量
读取压缩流时包含流结束状态。
大纲
$ZEOS
大纲
$Zeos包含一个布尔值,该值指示是否已接收并处理传入(压缩)流的末尾。如果$Zeos=1,则已接收到压缩数据流的流结束。仅当流压缩/解压缩处于活动状态()时,值才有意义。可以通过从或命令发出命令关键字来激活流压缩/解压缩。
在通过将设置更改为来禁用流压缩/解压缩之前,必须检查值。如果在处理压缩传入流的末尾之前发出/GZIP=0的命令,则使用会生成错误。如果尚未到达压缩传入流的末尾(),则必须发出块读取命令,直到。
不能使用命令修改此特殊变量。尝试这样做会导致错误。
示例
以下示例以/GZIP=1(启用压缩)开头。它执行一个循环,测试,并发出读取命令,直到。然后,它可以设置(禁用压缩):
OPEN dev:/GZIP=1
READ block#length
FOR {QUIT:$ZEOS
READ x:10 }
USE dev:/GZIP=0
第二十七章 Caché 变量大全 $ZEOF 变量
包含指示是否已到达文件末尾的标志。
大纲
$ZEOF
描述
在每次顺序文件读取之后,Caché设置$ZEOF特殊变量以指示是否已到达文件末尾。提供此特殊变量是为了与使用$ZC设备状态检查的MSM例程兼容。
Caché将$ZEOF设置为上次使用的设备的文件状态。例如,如果从顺序文件读取,然后写入主设备,则Caché会将从顺序文件的文件结束状态重置为主设备状态。因此,应该在顺序文件读取之后立即检查$ZEOF值(如果需要,将其复制到变量)。
Caché将设置为下列值:
- –1 文件结束
- 0 不在文件末尾
要使用此功能,必须对顺序文件禁用错误。
- 要对当前进程禁用此功能,请调用
%SYSTEM.Process类的SetZEOF()方法。 - 若要在系统范围内禁用此功能,请设置类的属性,或者转到管理门户并选择“系统管理”、“配置”、“附加设置”、“兼容性(系统、配置、兼容性设置)”。查看和编辑的当前设置。此选项控制在读取顺序文件时Caché遇到意外文件结尾时的行为。当设置为“true”时,Caché设置特殊变量以指示已到达文件末尾。当设置为“false”时,Caché会发出错误。默认值为“false”。
当到达文件末尾时,读取将返回空字符串,设置和设置,而不是发出错误。
不支持MSM
在本文中,我们将讨论一个我每天都会使用的应用程序,当监控 InterSystems IRIS 平台上的应用程序和集成解决方案并查找所发生的错误时,我就会用到它。
在查找用来记录 InterSystems IRIS、Ensemble 和 Caché DBMS 中对象变化的解决方案时,我发现了一篇关于使用宏进行日志记录的好文章。 受到该文章的启发,我对其介绍的项目进行了分叉,并做了相应调整以满足一些特定需求。 生成的解决方案以面板子类 %CSP.Util.Pane 的形式实现,它具有主命令窗口、“Run”(运行)按钮和已启用的命令配置。
该应用程序允许查看和编辑 global 数组、执行查询(包括 JDBC 和 ODBC)、通过电子邮件发送搜索结果(压缩的 XLS 文件)、查看和编辑对象,以及用几个简单图表来表示系统协议。
该 apptools-admin 应用程序基于 jQuery-UI、UiKit、chart.js 和 jsgrid.js。 欢迎查看源代码。
安装
仓库中详细介绍了所有安装方法。
第二十六章 Caché 变量大全 $ZCHILD 变量
当前进程的包含最后一个子进程的ID。
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()
DHC-APP>w $zchild
16636
DHC-APP>job ##class(PHA.TEST.SpecialVariables).ZB()
DHC-APP>w $zchild
5412

大纲
$ZCHILD
$ZC
描述
包含当前进程使用JOB命令创建的最后一个子进程的ID。如果进程没有使用创建子进程,则返回0(零)。
在MSM语言模式中,特殊变量(拼写如下)有不同的用途。用于确定顺序文件读取中的文件结尾。
不能使用命令修改此特殊变量。尝试这样做会导致错误。
注意
$ZCHILD与的成功启动
设置$ZCHILD并不意味着已成功启动。它只表示进程已创建,参数已成功传递。
例如,如果使用生成一个不存在的例程,则和$ZCHILD都会报告作业命令成功,尽管会立即终止并显示错误。
MSM语言模式下的$ZC
MSM语言模式支持特殊变量的特殊使用。
如果使用类的方法将当前语言模式设置为MSM,则特殊变量将在顺序文件读取期间设置。这提供了与MSM 变量的兼容性。(在所有其他语言模式中,不是在文件读取过程中设置的;是的缩写,具有完全不同的功能。)
第二十五章 Caché 变量大全 $ZB 变量
包含当前I / O设备的状态信息。
大纲
$ZB
描述
$ZB包含读取操作后特定于当前I / O设备的状态信息
- 从终端,顺序文件或其他基于字符的I / O设备读取时,
$ZB包含读取操作的终止字符。它可以是终止符(例如),如果读取操作不需要终止符,则可以是输入数据的最后一个字符;如果需要终止符但未收到终止符,则可以是空字符串(例如,如果读取操作超时)。 - 从磁带等基于块的I / O设备读取数据时,$ZB包含I / O缓冲区中剩余的字节数。写入磁带时,
$ZB还包含I / O缓冲区中的字节数。
不能使用SET命令修改此特殊变量。尝试这样做会导致错误。
从基于字符的设备或文件中读取时,$ZB和都可以用于返回READ终止字符。对于基于字符的读取,这两个特殊变量非常相似,但不完全相同。对于基于块的读写(例如磁带),请使用; 不支持基于块的读取和写入操作。
文件结束行为
默认情况下,Caché通过发出错误来处理顺序文件的文件结尾;它不会设置。可以以与MSM兼容的方式配置文件结束行为。在这种情况下,遇到文件结尾时,Caché不会发出错误,而是将设置为(空字符串),并将设置为-1。
要配置文件结束处理,请转到管理门户,依次选择“系统”,“配置”,“兼容性设置”。查看和编辑SetZEOF的当前设置。设置为“true”时,Caché将
ClassMethod TestArr()
{
s arrRow = [1,2,3,4,5,6,7]
s size = arrRow.%Size() - 1
for i = 0 : 1 : size {
s ii = (size / size) * i // 有size运算, 就报错
w arrRow.%Get(ii), !
}
q ""
}
如上,cache循环中有 size 就报错, iris不报😂
# <center> 第二十四章 Caché 变量大全 $ZA 变量
包含当前设备上最后一次读取的状态。
# 大纲
```java
$ZA
```
# 描述
`$ZA`包含当前设备上最后一次读取的状态。
不能使用`SET`命令修改此特殊变量。尝试这样做会导致`<SYNTAX>`错误。
# 注意
## `$ZA`,带终端I / O
`$ZA`被实现为一系列位标志,每个位表示一条特定的信息。下表显示了可能的值、它们的含义,以及如何使用模(`#`)和整数除(`\`)运算符测试它们:
位 | 测试| 含义
---|---|---
0 |`$ZA#2`| `<CTRL-C>`已到达,无论是否启用中断。
1 |`$ZA\2#2`| 读取超时。
2 |`$ZA\4#2`| I/O错误。
8 |`$ZA\256#2`| Caché检测到无效的转义序列。
9 |`$ZA\512#2`| 硬件检测到奇偶校验或成帧错误。
11 |`$ZA\2048#2`| 进程已与其主设备断开连接。
12 |`$ZA\4096#2`|对于COM端口:CTS(清除发送)。从调制解调器发送到其计算机的信号,表示传输可以进行。对于TCP设备:设备在服务器模式下运行。
13 |`$ZA\8192#2`|对于COM端口:DSR(数据集就绪)。
第二十三章 Caché 变量大全 $Y 变量
包含光标的当前垂直位置。
大纲
$Y
描述
$Y包含光标的当前垂直位置。当字符写入设备时,Caché会更新$Y以反映垂直光标位置。
输出的每个换行符(换行符)()将递增1。换页符(ASCII 12)将重置为0。
是16位无符号整数。当其值达到65536时,换行为0。换句话说,如果$Y为65535,则下一个输出字符将其重置为0。
可以使用命令为和$Y赋值。例如,可以使用特殊的转义序列来改变物理游标位置,而不更新和的值。在这种情况下,在使用转义序列之后,使用将正确的值分配给和。
注意
NLS字符映射
国家语言支持(NLS)实用程序选项卡定义当前区域设置的和光标移动字符。
带终端I/O的
下表显示了不同字符对的影响。
| Echoed Character | ASCII Code | Effect on $X |
|---|---|---|
| 12 | $Y=0 |
|
| 13 | $Y=$Y |
|
| 10 | $Y=$Y+1 |
|
| 8 | ||
| 9 | ||
| 任何可打印的ASCII字符 | 32-126 |
和命令的S(ECRET)协议关闭回显。它还可以防止$Y在输入过程中被更改,因此它指示真实的光标位置。
更改垂直位置的也会更改。更改垂直位置的WRITE*不会更改。例如,执行换行并递增。相比之下,执行换行符,但不会递增。
因为不会改变,所以可以向终端发送一个控制序列,而仍将反映真实的光标位置。
下一篇: 案例: 建立只能使用SQL的用户
IRIS通过认证(Authentication)与授权(Authorization)两项机制控制外部用户对系统及应用、数据资源的可访问性。因此。如需要进行权限控制,则需要通过配置认证和授权进行。
IRIS中的认证 {#2}
认证可以验证任何试图连接到InterSystems IRIS®的用户的身份。一旦通过认证,用户就与IRIS建立了通信,从而可以使用其数据和工具。有许多不同的方法可以验证用户的身份;每种方法都称为验证机制。IRIS 通常被配置为只使用其中一种方式。 支持的认证方式
- 实例认证:通过用户名/密码对登录平台,即密码认证
- LDAP:通过第三方LDAP服务器(如Windows Active Directory )完成认证
- 操作系统认证:建立操作系统用户-平台用户映射,使用操作系统用户登录平台
- Kerberos:使用Kerberos协议进行认证
- 代理认证:使用自定义的代码实现认证过程
系统服务与认证 {#2.1}
在安装时,IRIS会启动一系列系统级的服务用与控制与外部用户或系统的交互,这些服务都绑定了默认的认证机制
图中红框标出的即为系统安装后会自动启用并需经认证才可使用的系统服务,认证手段可配置。
例如,如果变更%Service_Console的身份验证方法,取消密码方法,用户就不能通过输入用户名密码登入Terminal。
