文章
姚 鑫 · 八月 21, 2021 阅读大约需 3 分钟

查询关键字WebMethod,CodeMode,Event,Final

第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

详情

这个关键字指定一个给定触发器是如何实现的。

默认情况下,触发器代码由触发触发器时执行的一行或多行代码组成。

然而,如果CodeModeobjectgenerator,则触发器实际上是一个触发器生成器。
触发器生成器是由类编译器调用的程序,它生成给定触发器的实际实现。
在本例中,触发器代码负责生成的代码。
其逻辑类似于方法生成器;

默认

默认值是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

00
1 0 0 20
登录或注册以继续