ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第十七章 Caché 变量大全 $TEST 变量

2021-07-12 10:02:18  阅读:163  来源: 互联网

标签:变量 命令 test 设置 TEST 定时 超时 Cach


 

文章目录

  • 第十七章 Caché 变量大全 $TEST 变量
  • 大纲
  • 描述
    • Setting $TEST
    • 维护$TEST
  • 示例
  • 注意
    • 未设置`$TEST`的操作
    • 不成功的定时操作

 

 
第十七章 Caché 变量大全 $TEST 变量

包含使用TIMEOUT选项的最后一个命令产生的真值。

大纲
$TEST
$T
描述

$test包含带有超时的最后一个命令产生的真值(1或0)。$TEST由以下命令设置,无论它们是从终端提示符输入还是在例程代码中遇到:

  • 如果在超时之前尝试启动new job成功,则计时作业会将$TEST设置为1。如果超时到期,则$TEST设置为0。
  • 如果在超时到期之前lock成功,则定时LOCK将$TEST设置为1。如果超时到期,则$TEST设置为0。
  • 如果在超时到期之前open成功,则定时打开会将$TEST设置为1。如果超时到期,则$TEST设置为0。
  • 如果read在超时到期前完成,则定时读取会将$TEST设置为1。如果超时到期,则$TEST设置为0。

在没有超时的情况下发出这些命令不会设置$TEST。

注意:$test也是由旧版本的if命令设置的。当前块结构的IF命令既不设置也不检查它。当计算旧式IF命令的测试表达式时,$TEST被设置为等于结果真值。换句话说,如果if表达式测试为真,则$test被设置为1。如果它测试为false,则$test被设置为0(零)。

Setting $TEST

可以使用set命令将$test设置为布尔值。值1或任何非零数值设置$test=1。值0或非数字字符串值设置$test=0。

$test可以由任何可以返回逻辑条件的命令或函数设置。

维护$TEST

未指定超时的成功的JOB,LOCK,OPEN或READ命令不会更改$TEST的现有值。

在调用过程时,DO命令保持$TEST的值,而在调用子例程时,则保持不变。

调用execute_code时,ZBREAK命令将保持$TEST的值。

示例

以下代码执行定时读取,并使用$TEST测试读取是否完成。

/// d ##class(PHA.TEST.SpecialVariables).TEST()
ClassMethod TEST()
{
	READ !,"Type a letter: ",a#1:10
	IF $TEST { 
		DO Success(a) 
	} ELSE { 
		DO TimedOut 
	}
Success(val)
	WRITE !,"Received data: ",val
TimedOut()
	WRITE !,"Timed out"
}

DHC-APP>d ##class(PHA.TEST.SpecialVariables).TEST()
 
Type a letter: 2
Received data: 2
DHC-APP>d ##class(PHA.TEST.SpecialVariables).TEST()
 
Type a letter:
Timed out
注意

未设置$TEST的操作

没有超时的JOB,LOCK,OPEN和READ命令对$TEST无效。后置条件表达式对$TEST也没有影响。

面向块的IF命令(通过将其括在花括号中来定义代码块)绝不使用$TEST。以下对IF遗留命令的调用也不使用$TEST:不带参数的遗留IF和ELSE命令对$TEST无效。

不成功的定时操作

在定时操作不成功后,Caché不会生成错误消息。应用程序必须检查$test,然后生成适当的消息。

 

标签:变量,命令,test,设置,TEST,定时,超时,Cach
来源: https://blog.51cto.com/u_12956943/3038174

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有