指定此类投影到的SQL表的名称。仅适用于持久类。
要覆盖此类所投影到的SQL
表的默认名称,请使用以下语法:
Class MyApp.Person Extends %Persistent [ SqlTableName = DBTable ] { //class members }
其中DBTable是有效的SQL标识符。
此关键字指定此类被投影到的SQL
表的名称。默认情况下,SQL
表名与类名相同。
通常,当类名是SQL
保留字(并不少见)或希望SQL
表包含类名不支持的字符(如“_”
字符)时,可以使用此关键字。
此关键字不是继承的。
如果省略此关键字,类名将用作SQL
表名。
指定哪个存储定义控制此类的持久性。仅适用于持久类和串行类。
要指定该类使用的存储定义,请使用如下语法:
Class MyApp.MyClass Extends %Persistent [ StorageStrategy = MyStorage ]
{ //class members }
其中MyStorage
是此类中存储定义的名称。
此关键字指定哪个存储定义用于定义此类使用的存储结构。
通常,不会担心这个关键字或存储结构;类编译器将自动定义一个名为“Default”
的存储结构,并为维护它(根据需要添加新字段)。可以为一个类创建多个存储定义。在这种情况下,该关键字用于指定类编译器应该使用哪个存储定义。
这个关键字是从主超类继承的。子类可以覆盖关键字的值。
如果省略此关键字,此类的持久性由名为default
的默认存储定义定义。
影响此类的编译顺序
要影响类的编译顺序,请使用如下语法:
Class MyApp.Person Extends %Persistent [ System = n ]
{ //class members }
其中n
是0
到4
之间的整数,正值较低的类在正值较高的类之前编译。最后编译值为0
(零)的类。
该关键字建立类组,每个类组与不同的值和优先级相关联,其中在进入下一个优先级之前,对每个优先级执行完整的类编译过程。从最高优先级到最低优先级,级别如下:
1
2
3
4
0
(默认)类编译有两个步骤:
所有具有相同System
关键字值的类都在例程编译之前解析它们的全局变量。
对于不同级别的类,高优先级的类在解析低优先级的类的全局变量之前先解析全局变量和编译例程。
CompileAfter
和DependsOn
关键字在具有公共系统值的类中工作,以确定全局解析的顺序。
一旦所有具有公共System
值的类都解析了它们的全局变量,然后对所有类进行例行编译。
因此,如果B
类需要在B
类的方法生成器中运行A
类的方法(也就是说,在B
的编译过程中),那么A
必须比B
具有更高的优先级。这意味着A
的System
关键字的值必须是小于b
的值的非零整数。要获得这种行为,CompileAfter
或DependsOn
不起作用。
此关键字不是继承的。
默认值为0
(零)。
指定此类的SQL
查询。仅适用于视图定义类。
要为此类指定SQL
查询,请使用以下语法:
ViewQuery = { statement }
Where
语句是一个用大括号括起来的SQL SELECT
语句。
当定义一个SQL
视图时(使用DDL CREATE VIEW
语句或使用管理门户),系统会自动创建一个类定义来保存视图定义。对于这个类定义,类类型是视图,视图查询等于视图所基于的SQL语句。
这个机制是内在的;不希望用户创建视图类,也不希望用户修改ViewQuery
关键字。相反,使用常规机制(DDL
或管理门户)来管理视图。
所有非视图类都忽略此关键字。
默认值为空字符串。
要加关键字 ClassType = view
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>
}
}
SELECT * FROM YX.PersonView
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。