第四十八章 Caché 函数大全 $PARAMETER 函数

第四十八章 Caché 函数大全 $PARAMETER 函数

返回指定的类参数的值。

大纲

$PARAMETER(class,parameter)

参数

  • class 可选-类名或对类实例的对象引用(OREF)。如果省略,则使用当前类实例的对象引用。如果省略,则必须指定占位符逗号。
  • parameter 参数的名称。计算结果为字符串的表达式。字符串的值必须与由class标识的类的现有参数的名称匹配。

描述

$PARAMETER返回指定的类参数的值。 $PARAMETER可以在当前类上下文或指定的类上下文中查找此参数。可以将类名指定为带引号的字符串,指定OREF或忽略类参数,并默认使用当前实例(请参见$THIS)。指定类是可选的;必须指定逗号分隔符。

DHC-APP> WRITE $PARAMETER("%Library.Boolean","XSDTYPE")
boolean

有多种使用对象语法返回参数值的方法,如以下示例所示:

/// d ##class(PHA.TEST.Function).PARAMETER()
ClassMethod PARAMETER()
{
    ZNSPACE "Samples"
    WRITE "ObjectScript function:",!
    WRITE $PARAMETER("Sample.Person","EXTENTQUERYSPEC")
    WRITE !,"class parameter:",!
    WRITE ##class(Sample.Person).#EXTENTQUERYSPEC
    WRITE !,"instance parameter:",!
    SET myinst=##class(Sample.Person).%New()
    WRITE myinst.%GetParameter("EXTENTQUERYSPEC")
    WRITE !,"instance parameter:",!
    WRITE myinst.#EXTENTQUERYSPEC
}
DHC-APP>d ##class(PHA.TEST.Function).PARAMETER()
ObjectScript function:
Name,SSN,Home.City,Home.State
class parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State
instance parameter:
Name,SSN,Home.City,Home.State

无效值

  • $PARAMETER("","XMLTYPE"):尝试调用无效的OREF(例如空字符串,整数或小数)将导致<INVALID OREF>错误。
  • $PARAMETER("bogus","XMLTYPE"):尝试调用不存在的类会导致<CLASS DOES NOT EXIST>错误,后跟指定的类名。如果未指定软件包名称,则Caché将采用默认名称。例如,尝试调用不存在的类“bogus”将导致 <CLASS DOES NOT EXIST>错误 * User.bogus
  • $PARAMETER(,"XMLTYPE"):尝试在未建立任何对象实例时默认使用默认对象导致 <NO CURRENT OBJECT>错误。
  • $PARAMETER("%SYSTEM.Task",""):尝试引用无效的参数名称(例如,空字符串)或通过数字引用参数会生成<ILLEGAL VALUE>错误。
  • $PARAMETER("%SYSTEM.Task","MakeCoffee"):尝试引用不存在的参数名称将返回空字符串(“”)。

示例

以下示例指定类名,并返回XMLTYPE和XSDTYPE参数的类默认值:

SAMPLES>WRITE $PARAMETER("%SYSTEM.Task","XMLTYPE")
SYSTEMTask
SAMPLES>WRITE $PARAMETER("%Date","XSDTYPE")
date

下面的示例指定一个OREF并为此实例返回XMLTYPE参数的值:

SAMPLES>SET oref=##class(%SYSTEM.Task).%New()
 
SAMPLES>WRITE $PARAMETER(oref,"XMLTYPE")
SYSTEMTask

以下示例使用$PARAMETER语法和类语法返回系统参数:

SAMPLES>WRITE $PARAMETER("%SYSTEM.SQL","%RandomSig")
N74U7m1MbDMBIA
SAMPLES>WRITE ##class(%SYSTEM.SQL).#%RandomSig
N74U7m1MbDMBIA
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354