照合ディスクリプタ出口 1~8(CDX01~CDX08)は、該当する照合ディスクリプタの値をエンコードしたり、デコードしたりするときに使用します。
照合ディスクリプタは、英数字フィールドまたはワイド文字フィールドに定義することができます。 定義した値は、インデックスには保存されますが、レコード自体には保存されません。 値の変換に使用する照合ディスクリプタ出口の数と、照合ディスクリプタの数は、対応関係にあります。
サンプルとして、照合ディスクリプタ出口 CDXE2A が Adabas ソースデータセットに収録されています。 エンコード機能では EBCDIC から ASCII に変換され、デコード機能では ASCII から EBCDIC に変換されます。
照合出口には 3 つの機能エントリポイントがあり、これらは次のイベントの発生時にコールされます。
ニュークリアスセッションの開始
照合出口が定義されたときのユーティリティの初期化(ADARUN パラメータ)
親の値の更新/挿入/削除(ニュークリアス)
照合ディスクリプタを検索値に指定して検索(ニュークリアス)
レコードの圧縮(ADACMP)
出口が DECODE 機能をサポートする場合のみ、照合 DE によるインデックス(L9)の読み込み(ニュークリアス)
このドキュメントでは、次のトピックについて説明します。
照合ディスクリプタ出口のインターフェイスは、Adabas ソースデータセットの CDXPARM DSECT で定義します。 このインターフェイスには、次の 3 つの機能があります。
初期化
エンコード
デコード(オプション)
R1 のポイント先は、コール元の 5 つのストレージエリアをポイントするアドレスのリストです。 照合ディスクリプタ出口によって、次の 5 つの設定が行われる必要があります。
CDXSPC | デフォルトのスペース文字(最大 4 バイト) |
CDXSPCL | スペース文字のサイズを格納するフルワード |
CDXENC | エンコード機能のアドレス |
CDXDEC | デコード機能のアドレス。返されたアドレスがゼロの場合、デコードはサポートされていません。 また、L9 処理には照合ディスクリプタを使用できません。 |
CDXVER | ゼロバイトのバージョン区切り文字列のアドレス |
R1 は、次に示すように、5 つのパラメータ(フルワード)のリストをポイントします。
CDXIA | 入力文字列のアドレス |
CDXIL | 入力文字列の長さ |
CDXOA | 出力文字列のアドレス |
CDXOL | 出力エリアのサイズ |
CDXARL | 返される出力文字列の長さのアドレス |
照合ディスクリプタ出口が実行する格納処理は次のとおりです。
CDXOA が示すアドレスのエリアに出力文字列を格納する
CDXARL が示すアドレスのフルワードに入力文字列の長さを格納する