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のファイルのレコード長と一致していないと考えられ ます。