当前位置:网站首页>属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed
属性关键字ServerOnly,SqlColumnNumber,SqlComputeCode,SqlComputed
2022-07-07 12:38:00 【用户7741497】
第109章 属性关键字 - ServerOnly
指定是否将此属性投影到Java
客户机。
用法
要指定属性是否被投影到Java
客户端,请使用以下语法:
Property name As classname [ ServerOnly = n ];
其中n
是下列之一:
0
表示此属性是投影的。1
表示不投影该属性。
详解
此关键字指定属性是否被投影到Java
客户端。
默认
如果省略此关键字,属性将被投影。
第110章 属性关键字 - SqlColumnNumber
指定此属性的SQL列号。仅适用于持久类。
用法
要指定属性的SQL列号,请使用以下语法:
Property name As classname [ SqlColumnNumber = 4 ];
其中n是正整数。
详解
此关键字允许显式设置此属性的SQL
列号。这是为了支持传统应用程序而提供的。
默认
默认值为空字符串。
第111章 属性关键字 - SqlComputeCode
指定设置此属性值的代码。
用法
要指定属性的计算方式,请使用以下语法:
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
语句必须出现在一行中。 - 代码可以通过通常的完整语法引用类方法、例程或子例程。同样,它可以使用ObjectScript函数和运算符。
- 代码可以包含嵌入式SQL。
- 代码可以包括以下伪字段引用变量,这些变量在类编译时被转换为特定的值:
{%%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命令调用的。
重要提示:
- 如果打算索引此字段,请使用确定性代码,而不是不确定性代码。 IRIS无法对不确定代码的结果维护索引,因为不可能可靠地删除过时的索引键值。(当传递相同的参数时,确定性代码每次都返回相同的值。例如,返回
h`是在函数控制之外修改的。)
SqlComputeCode
中使用的任何用户变量在使用前都应该是新的。这防止了与相关代码中其他地方同名变量的任何冲突。
默认
默认值为空字符串。
第112章 属性关键字 - SqlComputed
指定这是否是计算属性。
用法
要指定计算此属性,请使用以下语法:
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
方法中实现。如果重写这些方法中的任何一个,则属性计算不起作用,除非重写的方法实现中有触发计算的规定。
边栏推荐
- Leetcode——344. 反转字符串/541. 反转字符串 II/151. 颠倒字符串中的单词/剑指 Offer 58 - II. 左旋转字符串
- IP address home location query
- Regular expression integer positive integer some basic expressions
- Similarities and differences between switches and routers
- Codes de non - retour à zéro inversés, codes Manchester et codes Manchester différentiels couramment utilisés pour le codage des signaux numériques
- 多商戶商城系統功能拆解01講-產品架構
- 请问,PTS对数据库压测有好方案么?
- AutoCAD - how to input angle dimensions and CAD diameter symbols greater than 180 degrees?
- C # use TCP protocol to establish connection
- LeetCode每日一题(636. Exclusive Time of Functions)
猜你喜欢
Reverse non return to zero code, Manchester code and differential Manchester code of common digital signal coding
Wired network IP address of VMware shared host
Introduction to sakt method
How to check the ram and ROM usage of MCU through Keil
gvim【三】【_vimrc配置】
Data flow diagram, data dictionary
js 获取当前时间 年月日,uniapp定位 小程序打开地图选择地点
[Reading stereo matching papers] [III] ints
Codes de non - retour à zéro inversés, codes Manchester et codes Manchester différentiels couramment utilisés pour le codage des signaux numériques
Substance Painter筆記:多顯示器且多分辨率顯示器時的設置
随机推荐
多商户商城系统功能拆解01讲-产品架构
The longest ascending subsequence model acwing 1014 Mountaineering
VSCode 配置使用 PyLint 语法检查器
ARM Cortex-A9,MCIMX6U7CVM08AD 处理器应用
杭电oj2092 整数解
搜索引擎接口
Parsing of XML files
PERT图(工程网络图)
IP address home location query
CVPR2022 | 医学图像分析中基于频率注入的后门攻击
Mlgo: Google AI releases industrial compiler optimized machine learning framework
How to check the ram and ROM usage of MCU through Keil
云上“视界” 创新无限 | 2022阿里云直播峰会正式上线
Arm cortex-a9, mcimx6u7cvm08ad processor application
Cvpr2022 | backdoor attack based on frequency injection in medical image analysis
【AI实战】应用xgboost.XGBRegressor搭建空气质量预测模型(二)
SAKT方法部分介绍
Transferring files between VMware and host
libSGM的horizontal_path_aggregation程序解读
低代码平台中的数据连接方式(下)