前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >类关键字SqlTableName,StorageStrategy,System,ViewQuery

类关键字SqlTableName,StorageStrategy,System,ViewQuery

作者头像
用户7741497
发布2022-07-06 10:41:18
3820
发布2022-07-06 10:41:18
举报
文章被收录于专栏:hml_知识记录

第三十七章 类关键字 - SqlTableName

指定此类投影到的SQL表的名称。仅适用于持久类。

用法

要覆盖此类所投影到的SQL表的默认名称,请使用以下语法:

代码语言:javascript
复制
Class MyApp.Person Extends %Persistent [ SqlTableName = DBTable ]  { //class members }

其中DBTable是有效的SQL标识符。

详解

此关键字指定此类被投影到的SQL表的名称。默认情况下,SQL表名与类名相同。

通常,当类名是SQL保留字(并不少见)或希望SQL表包含类名不支持的字符(如“_”字符)时,可以使用此关键字。

对子类的影响

此关键字不是继承的。

默认

如果省略此关键字,类名将用作SQL表名。

第三十八章 类关键字 - StorageStrategy

指定哪个存储定义控制此类的持久性。仅适用于持久类和串行类。

用法

要指定该类使用的存储定义,请使用如下语法:

代码语言:javascript
复制
Class MyApp.MyClass Extends %Persistent [ StorageStrategy = MyStorage ] 
{ //class members }

其中MyStorage是此类中存储定义的名称。

详解

此关键字指定哪个存储定义用于定义此类使用的存储结构。

通常,不会担心这个关键字或存储结构;类编译器将自动定义一个名为“Default”的存储结构,并为维护它(根据需要添加新字段)。可以为一个类创建多个存储定义。在这种情况下,该关键字用于指定类编译器应该使用哪个存储定义。

对子类的影响

这个关键字是从主超类继承的。子类可以覆盖关键字的值。

默认

如果省略此关键字,此类的持久性由名为default的默认存储定义定义。

第三十九章 类关键字 - System

影响此类的编译顺序

用法

要影响类的编译顺序,请使用如下语法:

代码语言:javascript
复制
Class MyApp.Person Extends %Persistent [ System = n ]  
{ //class members }

其中n04之间的整数,正值较低的类在正值较高的类之前编译。最后编译值为0(零)的类。

详解

该关键字建立类组,每个类组与不同的值和优先级相关联,其中在进入下一个优先级之前,对每个优先级执行完整的类编译过程。从最高优先级到最低优先级,级别如下:

  • 1
  • 2
  • 3
  • 4
  • 0 (默认)

类编译有两个步骤:

  • 解析全局变量。
  • 编译例程。

所有具有相同System关键字值的类都在例程编译之前解析它们的全局变量。 对于不同级别的类,高优先级的类在解析低优先级的类的全局变量之前先解析全局变量和编译例程。

CompileAfterDependsOn关键字在具有公共系统值的类中工作,以确定全局解析的顺序。 一旦所有具有公共System值的类都解析了它们的全局变量,然后对所有类进行例行编译。

因此,如果B类需要在B类的方法生成器中运行A类的方法(也就是说,在B的编译过程中),那么A必须比B具有更高的优先级。这意味着ASystem关键字的值必须是小于b的值的非零整数。要获得这种行为,CompileAfterDependsOn不起作用。

对子类的影响

此关键字不是继承的。

默认

默认值为0(零)。

第四十章 类关键字 - ViewQuery

指定此类的SQL查询。仅适用于视图定义类。

用法

要为此类指定SQL查询,请使用以下语法:

代码语言:javascript
复制
ViewQuery = { statement }

Where语句是一个用大括号括起来的SQL SELECT语句。

详解

当定义一个SQL视图时(使用DDL CREATE VIEW语句或使用管理门户),系统会自动创建一个类定义来保存视图定义。对于这个类定义,类类型是视图,视图查询等于视图所基于的SQL语句。

这个机制是内在的;不希望用户创建视图类,也不希望用户修改ViewQuery关键字。相反,使用常规机制(DDL或管理门户)来管理视图。

所有非视图类都忽略此关键字。

默认

默认值为空字符串。

要加关键字 ClassType = view

代码语言:javascript
复制
Class YX.PersonView [ ClassType = view, ViewQuery = {Select * from sample.person} ]
{

Storage Default
{
<Data name="PersonViewDefaultData">
<Value name="1">
<Value>%%CLASSNAME</Value>
</Value>
</Data>
<DataLocation>^YX.PersonViewD</DataLocation>
<DefaultData>PersonViewDefaultData</DefaultData>
<IdLocation>^YX.PersonViewD</IdLocation>
<IndexLocation>^YX.PersonViewI</IndexLocation>
<StreamLocation>^YX.PersonViewS</StreamLocation>
<Type>%Library.CacheStorage</Type>
}

}
代码语言:javascript
复制
SELECT * FROM YX.PersonView

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第三十七章 类关键字 - SqlTableName
  • 用法
  • 详解
  • 对子类的影响
  • 默认
  • 第三十八章 类关键字 - StorageStrategy
  • 用法
  • 详解
  • 对子类的影响
  • 默认
  • 第三十九章 类关键字 - System
  • 用法
  • 详解
  • 对子类的影响
  • 默认
  • 第四十章 类关键字 - ViewQuery
  • 用法
  • 详解
  • 默认
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档