II
説明
プログラムが、ISRT 呼び出しを発行して、データベース内にすでに存在するセグメントを挿入しようとしました。 II 状況コードのあとの現在位置は、挿入しようとしたセグメントと重複しているセグメントの直前です。この状況コードを受け取る原因として、次の場合が考えられます。
- この親に対して、同じ物理兄弟シーケンス・フィールドを持つセグメントがすでに存在する。
- この親に対して、同じ論理兄弟シーケンスを持つセグメントがすでに存在する。
- 論理親が論理子ポインターを持ち、論理子が論理兄弟ポインターを持たないのに、挿入されるセグメントがその論理親の 2 番目の論理子である。
- セグメント・タイプが物理兄弟順方向ポインターを持たないのに、挿入されるセグメントがその親に対するこのタイプの 2 番目のセグメントであるか、あるいは、1 つのアンカー・ポイントに対して 2 番目の HDAM または PHDAM ルートである。
- 挿入されるセグメントが反転構造になっている。 (論理構造内でのこのセグメントの直接の親が、実際は、物理構造内ではその物理子です)
- 挿入しようとしているセグメントのシーケンス・フィールドと等しいシーケンス・フィールドを持つ物理対の論理子セグメントが、すでに存在する。 例えば、セグメントが重複もなく挿入できるはずが、その物理対の挿入のために位置付けを試みたときに、そのセグメントが、既存の兄弟セグメントに対して重複キーを持っていました。
- アプリケーション・プログラムがキー X'FF...FF' を HISAM、HIDAM、または PHIDAM データベースに挿入した。
異常終了を起こす代わりに、この状況コードは、EXEC DLI コマンドを発行したアプリケーション・プログラムに戻されます。
プログラマーの応答
ユーザーが決定します。
ソース
DL/I コード