从 DIF 文件传输数据时出错

将数据从 workstation DIF 文件传输到含数据定义的系统文件时,可能会出现以下错误:
  • workstation 文件中的数据无效,或此 workstation 文件的版本不受支持。DIF 文件未采用标准 DIF 格式。处理结束,不再传输记录。
  • 对于 iSerieseServer i5 或 System i5 字段,此字段中的数据太长。数据将被截断。workstation 文件描述文件将字符或数字数据定义为长于为系统文件指定的字段长度。

    对于字符数据,仅当额外的字节不是空格时,才会出现此错误。对于十六进制数据,仅当额外的字节不是零时,才会出现此错误。额外的字节将被截断,以便可将数据放入指定的 iSerieseServer i5 或 System i5 字段中。

  • 对于系统字段,数字数据的值太大。将使用最大值。在以下情况下会发生此错误:
    • workstation 字段中的数字数据无法放入 iSerieseServer i5 或 System i5 字段的指定字节数。
    • 数字字段的十进制值包含的位数多于为系统字段指定的位数。

    字段的值设置为系统指定的字节数和位数的最大可能值。

  • 此字段中的数据具有太多小数位。数字将四舍五入。workstation 字段中的十进制位置数大于在系统上指定的十进制位置数。如果第一个无关数字为 5 或更大,数据将向上舍入;如果它小于 5,则向下舍入。
  • 此字段中的数据不正确,或与 workstation 数据类型不匹配。发生了下列其中一种情况:
    • 数字字段包含非数字数据。
    • 字符或十六进制字段包含数字字段,或者数字(分区、压缩或二进制)字段包含字符字段。
    • iSerieseServer i5 或 System i5 十六进制或数字(分区、压缩或二进制)字段包含 DIF 错误单元格。

    发生此错误时,传输请求结束,以防止将不正确的数据传输到系统文件。

  • 此字段的数据丢失。当定义了数据字段,但文件中没有数据时,会发生这种情况。这意味着在找到所有定义的数据之前到达记录的末尾。如果主机字段支持 null,则插入 null;否则,使用缺省值。

    发生此错误时,已定义但未找到数据的字段将使用缺省值填充,并传输到系统文件。这些缺省值是用于字符字段的 EBCDIC 空格,或者用于数字字段的零。

    要提供自己的缺省值,请在文件的 DDS 中使用缺省 (DFT) 关键字。

  • 此字段中的数据超过字段大小。数据将丢失。当在字符字段的末尾发现不是由文件描述文件定义的额外数据时,会发生此错误。多余的字节将被截断,不会传输到系统文件。
  • 在此记录的末尾发现额外数据。不会传输额外数据。当记录的末尾有额外的数据,而 iSerieseServer i5 或 System i5 数据定义或文件描述文件并未定义此类数据时,会发生此错误。此额外数据不会传输到系统,因为没有定义来定义数据及其更改更改。