文章
· 七月 26, 2021 阅读大约需 3 分钟

类关键字NoExtent,OdbcType,Owner,ProcedureBlock

 

# <center> 第二十五章 类关键字 - NoExtent

指定是否阻止编译器为此类生成继承类(如果不这样做的话)。

# 用法

要防止编译器为此类生成继承类,请使用以下语法:

```
Class MyApp.MyClass [ NoExtent ]  { //class members }
```

否则,省略此关键字或将单词`Not`放在关键字的前面。

# 详解

如果该关键字为真,则该类没有 `extent`。不能创建此类的实例。通常,这样的类会扩展或覆盖从`%Library.Persistent`继承的标准持久接口。

# 对子类的影响

此关键字不是继承的。

# 默认

如果省略此关键字,类可以有一个`extent`。

 

# <center> 第二十六章 类关键字 - OdbcType

指定通过`ODBC`或`JDBC`公开此数据类型时使用的类型。每个数据类型类都必须指定一个`ODBC`类型。此关键字仅适用于数据类型类。

# 用法

要指定通过ODBC或JDBC投影此数据类型时要使用的类型,请使用以下语法:

```
Class MyApp.MyString [ ClassType = DataType, OdbcType = odbctype ]  { //class members }
```

其中`odbctype`是下列之一:
- `BIGINT`
- `BIT`
- `DATE`
- `DOUBLE`
- `INTEGER`
- `LONGVARBINARY`
- `LONGVARCHAR`
- `NUMERIC`
- `RESULTSET`
- `SMALLINT`
- `STRUCT`
- `TIME`
- `TIMESTAMP`
- `TINYINT`
- `VARBINARY`
- `VARCHAR` (默认)

# 详解

此关键字指定通过`ODBC`或`JDBC`公开时使用的类型。

每个数据类型类都必须指定一个`ODBC`类型。

# 对子类的影响

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

# 默认

如果省略此关键字,则`ODBC`类型为`VARCHAR`。

 

# <center> 第二十七章 类关键字 - Owner

指定此类及其对应表的所有者。仅适用于持久类。

# 用法

要指定此类及其对应表的所有者,请使用以下语法:

```
Class MyApp.Person Extends %Persistent [ Owner = "username" ]  { //class members }
```

其中用户名是IRIS用户名。

# 详解

此关键字指定类及其对应表的所有者。

# 对子类的影响

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

# 默认

如果省略此关键字,则此类及其表归`_SYSTEM`用户所有。

 

# <center> 第二十八章 类关键字 - ProcedureBlock

指定默认情况下,此类中的每个ObjectScript方法是否为过程块。

# 用法

要使此类中的对象脚本方法默认为过程块,请省略此关键字或使用以下语法:

```
Class MyApp.MyClass [ ProcedureBlock ]  { //class members }
```
否则,请使用以下语法:

```
Class MyApp.MyClass [ Not ProcedureBlock ] { //class members }
```

# 详解

此关键字指定默认情况下,此类中的ObjectScript方法是否为过程块。通过为方法设置`ProcedureBlock`关键字,可以为单个方法重写此方法。

对于用其他语言编写的方法,此关键字被忽略。

在对象脚本中,方法可以实现为过程块,也可以不实现。过程块强制变量作用域:方法看不到其调用方定义的变量。新应用程序使用过程块;存在非过程块是为了向后兼容。

# 对子类的影响

此关键字不是继承的。

# 默认

如果省略此关键字,此类中的每个ObjectScript方法都是一个过程块(除非为单个方法重写该过程块)。

讨论 (0)1
登录或注册以继续