7.20 DEF_ARRAY

DEF_ARRAY コマンドは、RDML ファンクション内で配列構造を定義するために使用します。

このコマンドで作成された配列は、以下の目的に使用できます。

  1. 最大 1000 個の同一フィールドを連続した記憶域にグループ化します。これにより、これらのうち任意のフィールドに対して「索引による」参照を行えるようになります。これを行うには、OF_FIELDS パラメータを使用します。このパラメータは、RDMLX フィールドでサポートされる唯一のオプションです。オブジェクトがRDMLX に対応していない場合、フィールド数は 100 個に制限されます。
  2. 大きなフィールドを配列構造でオーバーレイします。これにより、その大きなフィールド内の個々の領域に対して「索引による」参照を行えるようになります。これを行うには、OVERLAYING パラメータを使用します。RDMLX フィールドを使用している場合、このオプションはサポートされません。

このコマンドにより、LANSA アプリケーションで配列が完全にサポートされます。

ただし、リレーショナル・データベースの設計の観点では、データベース・ファイル内で配列構造を使用することが最善の長期戦略とは見なされないことに注意してください。

この機能は、現実に対する譲歩として用意されているものです。ファイル内で配列構造を使用すると、完全に正規化されたリレーショナル・データベース設計よりシステム・パフォーマンスが向上します。

ただし、この機能があるからといって、データベース設計で配列構造を使用することを推奨しているわけではありません。

ハードウェア・リソースで許容されていれば、完全なリレーショナル設計を行うことで、常に、より簡潔で、使用と保守が容易で、長期的に使用できるソリューションを生み出すことができます。

以下も参照してください。

7.20.1 DEF_ARRAY のパラメータ

7.20.2 DEF_ARRAY についてのコメント/警告

7.20.3 DEF_ARRAY の使用例


                                                                                           必須

  DEF_ARRAY ---- NAME --------- #配列名 ------------------------------>

                    >-- INDEXES ------- #索引フィールド名 ------------------>
                                                |                                     |
                                                 ------- 最大50 ---------

                    >-- OF_FIELDS ------- #フィールド名 --------------------->
                                                |  拡張可能なグループ式           |
                                                 ---------- 最大100 -------------- 

                         -- または --

                    >-- OVERLAYING --- #フィールド名 -- 開始位置 --------->

 -----------------------------------------------------------------------------
                                                                                            任意指定

                    >-- TYPE --------- *CHAR *DEC *PACKED *SIGNED ------->

                    >-- TOT_ENTRY --- 合計項目数 (1-9999) ------------------>

                    >-- ENTRY_LEN --- 項目の長さ (1-256) ------------------->

                    >-- ENTRY_DEC --- 小数点以下桁数 (0-9) ----------------|

  • No labels