DL/I データベース・サポート

EGL は、COBOL 環境用の階層データベース・マネージャーである DL/I (Data Language/I) をサポートしています。

EGL 生成コードは、以下の任意のターゲット・システム上にある DL/I データベースにアクセスすることができます。
  • CICS® for z/OS®
  • IMS™ BMP
  • IMS/VS
  • z/OS バッチ
EGL は、以下の 2 つの方法でこのアクセスを実装します。
  • 出力 COBOL コード内に DL/I ステートメントを生成する、addgetreplace などの EGL I/O キーワードを使用できます。 EGL が EGL キーワードから生成するデフォルトの DL/I ステートメントは、暗黙的な DL/I ステートメントと呼ばれます。(これらのステートメントはカスタマイズできます。)
  • 明示的な DL/I ステートメントを独自にコーディングできます。明示的なステートメントを以下の 2 つの方法でコーディングできます。
    • #dli 構文を通じて EGL I/O キーワード・ステートメントをカスタマイズする。 詳しくは、#dli ディレクティブを参照してください。
    • ライブラリー関数 dliLib.AIBTDLIdliLib.EGLTDLI、または vgLib.VGTDLI を使用して、DL/I 呼び出しをコーディングする。AIBTDLI()EGLTDLI()、およびVGTDLI()を参照してください。

暗黙的および明示的な DL/I コードは、実際の DL/I コードとはわずかに異なる、強力な疑似 DL/I 構文を使用するため、注意してください。詳しくは、#dli ディレクティブを参照してください。

DL/I に精通していない場合は、「EGL プログラマー・ガイド」のDL/I データを参照してください。

標準の DL/I 処理

DL/I データベースから読み取るそれぞれのセグメント・タイプごとに、DLISegment ステレオタイプを持つレコードを作成する必要があります (DLISegment ステレオタイプを参照)。

また、PSBRecord ステレオタイプを持つレコードも作成して (PSBRecord ステレオタイプ を参照) そのデータベースについて EGL に説明する必要もあります。PSBRecord には、EGL が DL/I データベースのプログラム仕様ブロック (PSB) との対話を行うために必要な情報が含まれています。 PSB はデータベースのマップのようなもので、さまざまなセグメントとその階層をリストします。

EGL I/O ステートメント (get など) を使用して、データベース内のデータにアクセスします。DL/I は、セグメント検索引数 (SSA) を使用して、 個々のセグメント (レコードと同等のもの) をデータベース内に配置します。 非修飾 SSA はセグメント・タイプのみを指定し、修飾 SSA は特定尾セグメントを識別します。 EGL は、生成する暗黙的コードの一部として SSA を作成します。 また、ユーザーが明示的コードの一部として、#dli ディレクティブ内に SSA を書き込むことも可能です。