SQL 项属性

SQL 项属性指定当在类型为 SQLRecord 的记录中使用项时有意义的特征。但是,由于提供了缺省值,所以不需要指定任何 SQL 项属性。

属性如下所示:

column = "columnName"

属性 column 是指与项相关联的数据库表列的名称。缺省值是项的名称。列和相关项影响缺省 SQL 语句,如 SQL 支持中所述。

对于“columnName”,请替换为加引号的字符串、具有字符类型的变量或并置,如以下示例所示:
  column = "Column" + "01"
如果列名是下列其中一个 SQL 保留字,则应该使用特殊的语法:
  • CALL
  • COLUMNS
  • FROM
  • GROUP
  • HAVING
  • INSERT
  • ORDER
  • SELECT
  • SET
  • UPDATE
  • VALUES
  • WHERE
如以下示例所示,那些名称中的每一个都必须嵌入在两对引号中,并且每个内部引号的前面都必须要有转义字符(\):
  column = "\"SELECT\""

(如果将那些保留字用作表名,则会发生类似的情况。)

isNullable = yes, isNullable = no

属性 isNullable 指示是否可以将项设置为 NULL,如果与项相关联的表列可以被设置为 NULL,则此属性适用。有效值为 yes(缺省值)和 no

对于 SQL 记录中的给定项,仅当 isNullable 设置为 yes 时,下列功能才可用:
  • 程序可以将来自数据库的空值接受到项中。
  • 程序可以使用 set 语句将项设置为 NULL,如 set 所述。该作用也是初始化项,如数据初始化中所述。
  • 程序可以使用 if 语句来测试是否已将项设置为 NULL。

isReadOnly = no, isReadOnly = yes

属性 isReadOnly 表示是否应该从写到数据库或包含 FOR UPDATE OF 子句的缺省 SQL 语句中省略项及相关列。缺省值为 no;但是在下列情况下,EGL 将结构项看作“只读”的:
  • SQL 记录的属性 key 指示与结构项相关联的列是键列;或者
  • SQL 记录部件与多个表相关联;或者
  • SQL 列名是表达式。

maxLen = integer

属性 maxLen 指定写至数据库列的字段文本的最大长度。只要可能,此属性的缺省值将是该字段的长度;但如果字段的类型为 STRING,则不存在任何缺省值。

persistent = yes, persistent = no

属性 persistent 指示字段是否包括在为 SQL 记录生成的隐式 SQL 语句中。如果值为 yes,则在以下情况下,运行时将发生错误:
  • 代码依赖于隐式 SQL 语句;并且
  • 没有列与特定于字段的 column 属性的值相匹配。(缺省值为字段名。)

如果该变量在该数据库中没有对应的列,并且您想要将临时程序变量与 SQL 行相关联,则将 persistent 设置为 no。例如,您可能想要让变量指示程序是否修改了该行。

有关隐式 SQL 语句的详细信息,请参阅 SQL 支持

sqlDataCode = code

属性 sqlDataCode 的值是一个数字,它标识与记录项相关联的 SQL 数据类型。如果在声明时、验证时或生成的程序运行时访问数据库管理系统,则该系统将使用数据代码。

仅当为 VisualAge® Generator 兼容性设置了环境时,属性 sqlDataCode 才可用。有关详细信息,请参阅与 VisualAge Generator 的兼容性

缺省值取决于记录项的基本类型和长度,如下表所示。有关其它详细信息,请参阅 SQL 数据代码

EGL 基本类型 长度 SQL 数据代码
BIN 4 501
9 497
CHAR <=254 453
>254 和 <=4000 449
>4000 457
DBCHAR <=127 469
>127 和 <=2000 465
>2000 473
DECIMAL 任何长度 485
HEX 任何长度 481
UNICODE <=127 469
>127 和 <=2000 465
>2000 473

sqlVariableLen = no, sqlVariableLen = yes

属性 sqlVariableLen(以前为 sqlVar 属性)的值指示在 EGL 运行时将数据写至 SQL 数据库之前是否截断字符字段中的结尾空格和 NULL。此属性对非字符数据不起作用。

如果对应的 SQL 表列具有 varchar 或 vargraphic SQL 数据类型,则指定 yes

相关任务
检索 SQL 表数据

使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.