从 BASIC 随机文件传输数据时出错
将数据从 workstation BASIC 随机文件传输到系统文件时,可能会出现以下错误:
- 对于系统字段,此字段中的数据过短。将填充数据。当文件包含的字符或十六进制数据短于在系统上指定的字段长度时,会发生此错误。如果将 workstation 字段定义为比系统短,或者文件最后一条记录中的数据过短,则会发生此错误。字符字段在右侧将使用 EBCDIC 空格填充,而十六进制字段将使用零填充。
- 对于系统字段,此字段中的数据太长。数据将被截断。当 workstation 文件描述文件定义的字符或十六进制数据长于在系统上指定的字段长度时,会发生此错误。
对于字符数据,仅当额外的字节不是空格时,才会出现此错误。对于十六进制数据,仅当额外的字节不是零时,才会出现此错误。接着,这些额外的字节将被截断,以便可将数据放入指定的 iSeries™、eServer™ i5 或 System i5™ 字段中。
- 对于系统字段,数字数据的值太大。将使用最大数字。在以下情况下会发生此错误:
- workstation 字段中的数字数据无法放入系统字段的指定字节数。
- 数字字段的十进制值包含的位数多于为系统字段指定的位数。
- 此字段中的数据具有太多小数位。该数字将向下舍入到零。在 BASIC 随机处理中,如果数字的值太小而无法放入指定字段中,则会发生此错误。
例如,数字 0.00001 无法放入系统分区字段,因为该字段的长度被指定为 2 个字节,并且小数点右侧存在 2 个十进制位置。在此示例中,产生的值为零。
- 此字段的数据丢失。将使用缺省值。当定义了数据字段,但文件中没有数据时,会发生此错误。这意味着在找到所有定义的数据之前到达文件的末尾。对于 BASIC 随机文件,此错误仅发生在文件中的最后一条记录上,因为没有显式的记录定界符。
发生此错误时,已定义数据但未找到的字段将使用缺省值填充,并传输至 iSeries™、eServer™ i5 或 System i5™ 文件。这些缺省值是用于字符字段的 EBCDIC 空格,以及用于数字字段的零。
要提供自己的缺省值,请在文件的 DDS 中使用缺省 (DFT) 关键字。
将数据从 BASIC 随机文件传输到 iSeries™、eServer™ i5 或 System i5™ 文件时,任何短于为系统文件定义的记录长度的数据都将使用 EBCDIC 填充。
由于 BASIC 随机文件中没有记录定界符,因此此错误只会发生在文件的最后一条记录上。这可能表示系统文件的记录长度与 workstation 文件的记录长度不匹配。