BASIC のランダム・ファイルからデータを転送するときのエラー

workstationの BASIC ランダム・ファイルからシステム・ファイルにデータを 送する場合、次のエラーが起こることがあります。
  • このフィールドのデータがシステムのフィールドには短すぎます。データに埋め込みが行われます。このエラーは、ファイルに、システムで指定されているフィールド長よりも 短い文字データまたは 16 進データが含まれている場合に起こります。このエラーは、workstationのフィールドがシステムよりも短く定義されている場合、 またファイルの最後のレコードのデータが短すぎる場合に起こることがあります。文字フィールドの右側には EBCDIC のスペースが埋められ、16 進フィールド にはゼロが埋められます。
  • このフィールドのデータが長すぎてシステムのフィールドに入りません。データは切り捨てられます。このエラーは、workstationのファイル記述ファイルに、システムで指定されている フィールド長よりも長い文字データまたは 16 進データが定義されている場合に起こります。

    文字データでは、このエラーは、余分のバイトがスペース以外の場合にだけ起こります。16 進データでは、このエラーは、余分のバイトがゼロ以外の場合にだけ起こります。これらの余分なバイトは、指定された iSeries、eServer™ i5、または System i5® のフィールドにデータが納まるように切り捨てられます。

  • 数値データの値がシステムのフィールドには大きすぎます。最大の数値が使用 されます。このエラーは次の場合に起こります。
    • workstationのフィールドの数値データが、システムのフィールドの指定されたバイト 数に入らない場合。
    • 数値フィールドの 10 進数の値がシステムのフィールドに指定されている桁数 以上の場合。
  • このフィールドのデータは小数部の桁が多すぎます。数値はゼロに切り 捨てられます。BASIC のランダム処理でこのエラーが起こるのは、数値が小さす ぎて指定されたフィールドに入らない場合だけです。

    例えば、0.00001 という数値は、長さを 2 バイト、小数点の右側の小数部分の桁数を 2 と指定しているシステムのゾーン・フィールドには入りません。この例では、転送される値はゼロです。

  • このフィールドのデータが脱落している。デフォルト値が使用されます。このエラーは、データ・フィールドが定義されて、ファイルにデータがない場合に起こ ります。このことは、定義されたすべてのデータが見つかる前にレコードの 終わりに達したことを意味します。BASIC のランダム・ファイルの場合、 明示のレコード区切り文字がないので、このエラーが起こるのはファイルの最後のレコードだけです。

    このエラーが起こった場合、データが定義されているにもかかわらず検出されなかった 1 つまたは複数のフィールドにデフォルト値が入り、iSeries、eServer i5、または System i5 ファイルに転送されます。これらのデフォルト値は、文字フィールドの場合には EBCDIC のスペース、数値フィールドの場合ゼロです。

    ユーザー独自のデフォルト値を指定するためには、そのファイルの DDS で デフォルト値 (DFT) キーワードを使用してください。

BASIC のランダム・ファイルから iSeries、eServer i5、または System i5 ファイルにデータを転送する場合、そのシステム・ファイルに定義されているレコード長より短いデータには EBCDIC のスペースが埋められます。

BASIC のランダム・ファイルにはレコード区切り文字がないので、このエラーが 起こるのは最後のレコードだけです。これにより、システム・ファイルのレコ ード長がworkstationのファイルのレコード長と一致していないと考えられ ます。