从 BIFF 文件传输数据时出错
将数据从 workstation 上的 BIFF 文件传输到含数据定义的系统文件时,可能会出现以下错误:
- 此 workstation 文件中的数据无效,或此 workstation 文件的版本不受支持。BIFF 文件不符合标准 BIFF 格式。处理终止,不再传输记录。
- 对于对应的 iSeries™、eServer™ i5 或 System i5™ 字段,此字段中的数据太长。数据将被截断。文件描述文件定义的字符或数字数据长于在系统文件中指定的字段。
- 对于从 ASCII 到 EBCDIC 的转换,如果文件描述文件定义的 ASCII 数据长于在 iSeries™、eServer™ i5 或 System i5™ 上指定的字段,则会发生此错误。
从 ASCII 转换为十六进制期间,如果文件描述文件定义的 ASCII 数据的长度是在 iSeries™、eServer™ i5 或 System i5™ 上指定的字段的两倍,则将发生此错误。这是因为 2 字节 ASCII 数据会转换为一个十六进制字符。
- 仅当多余字节在从 ASCII 转换为 EBCDIC 期间不是空格 (X'20'),或者在从 ASCII 转换为十六进制期间不是零 (X'30'),才会发生截断错误。截断这些多余的字节后,就可将数据放入 iSeries™、eServer™ i5 或 System i5™ 字段。
- 对于从 ASCII 到 EBCDIC 的转换,如果文件描述文件定义的 ASCII 数据长于在 iSeries™、eServer™ i5 或 System i5™ 上指定的字段,则会发生此错误。
- 数值数据太长,无法放入对应的 iSeries™、eServer™ i5 或 System i5™ 字段。将采用最大值。出现以下一种状况时会发生此错误:
- workstation 字段中的数字数据太长,无法放入为 iSeries™、eServer™ i5 或 System i5™ 字段指定的字节数中。
- 数字字段中的小数位数超过为 iSeries™、eServer™ i5 或 System i5™ 字段指定的位数。
会将字段值设置为可为字节数指定的最大值,以及为 iSeries™、eServer™ i5 或 System i5™ 指定的位数的最大值。
- 此字段中的数据包含太多小数位。数据将四舍五入。workstation 字段中的小数位数大于为系统指定的小数位数。如果第一个多余的数字为 5 或更多,则数据将向上舍入。否则,将向下舍入。
- 此字段中的数据不正确,或其类型与 workstation 数据类型不匹配。发生了下列其中一种情况:
- 数字字段包含数字数据以外的数据。
- 字符字段或十六进制字段包含数字,或 数字(分区或压缩十进制或二进制)字段包含字符。
- iSeries™、eServer™ i5 或 System i5™ 的十六进制字段或数字(分区或压缩十进制或二进制)字段包含 BIFF 错误单元格。
如果发生此错误,传输请求将终止,以避免将不正确的数据传输到系统文件。
- 此字段的数据丢失。如果定义了数据字段,但文件不包含任何数据,则会发生此错误。这意味着在找到所有定义的数据之前到达记录的末尾。
如果发生此错误(即,如果为一个或多个字段定义了数据,但在其中找不到该数据),则会将包含缺省值的字段传输到系统文件。对于字符字段,缺省值为 EBCDIC 空格;对于数字字段,缺省值为零。
要指定用户特定的缺省值,请在 DDS 中为文件使用缺省值 (DFT) 关键字。
- 此字段中的数据超出 workstation 字段的大小。数据将丢失。如果在字段末尾发现多余的数据(未在 workstation 文件描述文件中定义),则会发生此错误。对于字符数据,多余的字节将被截断,而不会传输到系统文件。对于数字数据,会将整个字段转换为零并传输到系统文件。
- 在此记录末尾发现多余的数据。不会传输多余的数据。如果未在 iSeries™、eServer™ i5 或 System i5™ 数据定义或者 workstation 文件描述文件中定义此类多余数据,会发生此错误。由于未定义数据和转换方法,因此不会将多余的数据传输到系统。