第129章 查询关键字 - WebMethod
指定这个类查询是否为web方法
。
仅应用于定义为web服务
或web客户端
的类。
用法
要指定这个查询是一个web方法
,请使用以下语法:
Query name(formal_spec) As classname [ WebMethod ] { //implementation }
否则,忽略该关键字或将Not
放在该关键字之前。
详情
这个关键字指定这个类查询是否是一个web方法,是否可以通过SOAP
协议调用。
默认
如果忽略此关键字,则无法以web方法
调用查询。
生成的类
当你将这个关键字添加到类查询并编译类时,类编译器会生成两个额外的类:
Package.OriginalClass.QueryName
Package.OriginalClass.QueryName.DS
Package.OriginalClass
是包含web方法
的类,QueryName
是类查询的名称。
例如,假设从类ROBJDemo.QueryWS
开始。
,然后向它添加一个名为MyQuery
的类查询。
当你将WebMethod
关键字添加到该类查询并编译它时,类编译器会生成以下额外的类:
ROBJDemo.QueryWS.MyQuery
ROBJDemo.QueryWS.MyQuery.DS
不要修改或直接使用这些生成的类;它们仅供内部使用。
WSDL的关系
对于web服务
,该关键字还会影响生成的WSDL
,后者现在包含表示此web方法
所需的附加元素。
第130章 触发器关键字 - CodeMode
指定如何实现此触发器。
用法
要指定触发器如何实现,请使用以下语法:
Trigger name [ Event = sqlevent, CodeMode = codemode ] { //implementation }
其中codemode
是下列其中之一:
code
- 这个触发器是作为代码行实现的(默认)。objectgenerator
- 这个触发器是一个触发器发生器。
注意:这个关键字(generator
)有一个较旧的值,仅出于兼容性原因才出现。
较新的应用程序应该使用objectgenerator
。
详情
这个关键字指定一个给定触发器是如何实现的。
默认情况下,触发器代码由触发触发器时执行的一行或多行代码组成。
然而,如果CodeMode
是objectgenerator
,则触发器实际上是一个触发器生成器。
触发器生成器是由类编译器调用的程序,它生成给定触发器的实际实现。
在本例中,触发器代码负责生成的代码。
其逻辑类似于方法生成器;
默认
默认值是code
。
也就是说,默认情况下,触发器不是触发器生成器。
第131章 触发器关键字 - Event
指定将触发此触发器的SQL
事件。必需Required
(无默认值)。
用法
要指定将触发触发器的SQL
事件,请使用以下语法:
Trigger name [ Event = sqlevent, Time = AFTER ] { //implementation }
其中sqlevent
是以下值之一:
DELETE
——在SQL DELETE
操作期间触发此触发器。INSERT
——在SQL INSERT
操作期间触发此触发器。UPDATE
—在SQL UPDATE
操作期间触发此触发器。INSERT/UPDATE
—此触发器在SQL INSERT
操作或SQL UPDATE
操作期间触发。INSERT/DELETE
——此触发器在SQL INSERT
操作或SQL DELETE
操作期间触发。UPDATE/DELETE
——此触发器在SQL UPDATE
操作或SQL DELETE
操作期间触发。INSERT/UPDATE/DELETE
——此触发器在SQL INSERT
操作、SQL UPDATE
操作或SQL DELETE
操作期间触发。
详情
该关键字指定将触发触发器的SQL事件。
默认
没有默认值。
定义触发器时,必须为该关键字指定一个值。
第132章 触发器关键字 - Final
指定此触发器是否为final
(不能在子类中重写)。
用法
要指定一个触发器为final
,请使用以下语法:
Trigger name [ Event = sqlevent, Final ] { //implementation }
否则,忽略该关键字或将Not
放在该关键字之前。
详情
标记为final
的类成员不能在子类中重写。
默认
如果省略这个关键字,触发器 not final
。