指定是否将此属性投影到Java
客户机。
要指定属性是否被投影到Java
客户端,请使用以下语法:
Property name As classname [ ServerOnly = n ];
其中n
是下列之一:
0
表示此属性是投影的。1
表示不投影该属性。此关键字指定属性是否被投影到Java
客户端。
如果省略此关键字,属性将被投影。
指定此属性的SQL列号。仅适用于持久类。
要指定属性的SQL列号,请使用以下语法:
Property name As classname [ SqlColumnNumber = 4 ];
其中n是正整数。
此关键字允许显式设置此属性的SQL
列号。这是为了支持传统应用程序而提供的。
默认值为空字符串。
指定设置此属性值的代码。
要指定属性的计算方式,请使用以下语法:
Property name As classname [ SqlComputeCode = { Set {FieldName} = Expression }, SqlComputed ];
FieldName
—正在定义的属性的SQL字段名称。Expression
—对象指定属性值的脚本表达式。如果指定了这个关键字(如果SqlComputed
为真),那么这个属性就是一个计算属性。
对于此关键字的值,请根据以下规则指定(在大括号中)一行设置属性值的对象脚本代码:
{*}
或者,如果没有为属性指定SqlFieldName
关键字,请使用{propertyname}
,其中propertyname
是属性名称。如果为属性指定了SqlFieldName
关键字,请使用{sqlfieldnamevalue}
,其中sqlfieldnamevalue
是该关键字的值。
请注意,SqlFieldName
对所有对象类都可用,尽管它只对持久类有用。
SqlFieldName
关键字,请使用{propertyname}
,其中propertyname
是属性名称。如果为属性指定了SqlFieldName
关键字,请使用{sqlfieldnamevalue}
,其中sqlfieldnamevalue
是该关键字的值。Set
命令。等号前后允许有空格,尽管每个完整的Set
语句必须出现在一行中。{%%CLASSNAME}
和 {%%CLASSNAMEQ}
都转换为投影了SQL表定义的类的名称。{%%CLASSNAME}
返回不带引号的字符串, {%%CLASSNAMEQ}
返回带引号的字符串。{%%TABLENAME}
转换为表的完全限定名,以带引号的字符串形式返回。{%%ID}
转换为RowID
名称。当不知道RowID
字段的名称时,此引用非常有用。..propertyname
或..methodname()
例如:
Property TestProp As %String [ SqlComputeCode = {set {*} = {OtherField}}, SqlComputed ];
再举一个例子:
Property FullName As %String [ SqlComputeCode = {set {*}={FirstName}_" "_{LastName}}, SqlComputed ];
代码是用Do命令调用的。
重要提示:
h`是在函数控制之外修改的。)
SqlComputeCode
中使用的任何用户变量在使用前都应该是新的。这防止了与相关代码中其他地方同名变量的任何冲突。默认值为空字符串。
指定这是否是计算属性。
要指定计算此属性,请使用以下语法:
Property name As classname [ SqlComputeCode = sqlcomputecode, SqlComputed ];
其中sqlcomputecode
在SqlComputeCode
中描述。
否则,省略此关键字或将单词Not放在关键字的前面。
如果此关键字为真(并且属性还指定了SqlComputeCode
),则此属性是计算属性。
如果一个属性具有SqlComputed
关键字的值, IRIS将使用该值来计算该属性。具体来说,从SqlComputeCode
生成了一个新的类方法<property>Compute
。从属性的<property>Get
方法调用此方法。如果属性还指定了SqlComputeOnChange
关键字,则在指定的时间调用<property>Compute
方法。
该功能在<property>Get
和<property>Set
方法中实现。如果重写这些方法中的任何一个,则属性计算不起作用,除非重写的方法实现中有触发计算的规定。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。