プログラム・プロパティー @DLI によって、 値の設定ブロックを使用したプログラムによる DL/I 呼び出しの動作を指定できます。 プログラムにこのプロパティーを組み込むと、 EGL は DL/I データベースへの最新の呼び出しに関する詳細にアクセスできます。 詳細については、『DLIVar』を参照してください。
CICS® 以外の環境では、ランタイム PSB が実行単位でスケジュールされた最初のものである場合、変更できません。
以下の例で示すように、配列内のストリングの位置は、プログラム PSB レコード・パーツ にある PCB レコードの位置に一致しなければなりません。 また、配列にある空でない各ストリングは、プログラム・パラメーターのリストの PCB レコード名に一致する必要があります。
Record PSBRecordPart type PSBRecord {defaultPSBName = "ibmPSB"}
// 以下のレコードの詳細はこの例では省略されます
ioPCB IO_PCBRecord;
dbPCB DB_PCBRecord; // パス済み
db2PCB DB_PCBRecord;
gsamPCB GSAM_PCBRecord; // パス済み
gsam2PCB GSAM_PCBRecord;
end
プログラム PrintCatalog タイプ basicProgram
(GSAM_PCB_parm GSAM_PCBRecord, DB_PCB_parm DB_PCBRecord) {
@DLI{
psb = "myPSB",
callInterface = CBLTDLI,
pcbParms = ["", "DB_PCB_parm", "", "GSAM_PCB_parm", ""]
}
}
myPSB PSBRecordPart;
pcbParms および psbParm プロパティーを指定した場合、 前者の PCB 指定アドレスは、後者の同等アドレスをオーバーライドします。
pcbParms = ["", "DB_PCB_parm", "", "GSAM_PCB_parm"]
後から PCB レコードを PSB レコード・パーツに追加する場合に配列エレメントの位置決めにおけるエラーを避けるため、PSB レコード・パーツの各 PCB レコードごとに配列エレメントを (例外なく) 組み込むようにします。
PSB レコード・パーツ内の PCB レコードが、そのパーツでの別の PCB レコードの再定義である場合、 オリジナルのレコードと再定義レコードはメモリーの同じ領域を表し、 pcbParms の配列を構成するときに 1 度だけカウントされます。
Record PSBDataRecord
psbName char(8);
psbRef int;
end
プログラム Prog1 ( psbData PSBDataRecord )
{
@DLI (psbParm = "psbData" )
}
pcbParms および psbParm プロパティーを指定した場合、 前者の PCB 指定アドレスは、後者の同等アドレスをオーバーライドします。
プログラムが受け取る名前とアドレスは、システム変数 DLILib.psbData に自動的に割り当てられます。
handleHardDLIErrors を no に設定していない (よって、変数を 0 に設定しない) 場合、VisualAge® Generator から移行されたコードが、以前のように機能しないことがあります。
詳細については、『DLIVar』および『例外処理』を参照してください。
関連概念
DL/I データベース・サポート
関連項目
DLIVar
例外処理
PCB レコード・パーツのプロパティー