この Natural プロファイルおよびセッションパラメータを使用すると、データベースフィールドショートネームの解釈を指定できます。このパラメータは、Natural システムコマンド COMPOPT
のオプション DBSHORT
に対応します。
DDM に定義されるデータベースフィールドは、次の 2 種類の名前で記述されます。
ショートネーム。長さ 2 文字で、Natural によってデータベース(特に Adabas)との通信に使用されます。
ロングネーム。長さ 3~32 文字(基盤となるアクセス対象データベースタイプが DB2/SQL の場合は 1~32 文字)で、Natural プログラミングコード内のフィールドへの参照に使用されます。
特別な状況下では、Natural プログラム内のデータベースフィールドへの参照に、ロングネームの代わりにショートネームを使用できます。このことは、Natural Security なしでレポーティングモードで実行している場合、およびデータベースアクセスステートメントにビューへの参照ではなく DDM への参照が含まれている場合に当てはまります。
フィールド名がショートネーム参照とみなされるかどうかは、名前の長さによって判断されます。フィールド識別子が 2 文字の場合は、ショートネーム参照とみなされます。それ以外の長さのフィールド名は、ロングネーム参照とみなされます。データベースフィールドに関するこのような標準解釈ルールを追加で指定および制御するには、コンパイラオプション
DBSHORT
を ON
または OFF
に設定します。
可能な設定 | ON |
ショートネームは、データベースフィールドの参照に使用できます。
ただし、
|
|
---|---|---|---|
OFF |
データベースフィールドの参照には、ロングネームのみを使用できます。各データベースのフィールド識別子は、文字数に関係なく、ロングネームの参照であるとみなされます。
2 文字の名前が指定されており、この名前がロングネームではなくショートネームとしてのみ見つかる場合は、コンパイル時に構文エラー NAT0981 が発生します。 これにより、DDM に定義されている識別子長が 2 バイトのロングネームを使用できるようになります。この DDM を使用してアクセスする、基盤となるデータベースが SQL(DB2)であり、かつ、名前の長さが 2 文字のテーブル列が存在する場合、このオプションを指定する必要があります。ただし、Adabas など、他のすべてのデータベースタイプについては、名前の長さが 2 バイトのロングフィールドを定義しようすると、DDM の生成時に拒否されます。 また、ショートネーム参照が使用されていない場合( |
||
デフォルト設定 | ON |
||
ダイナミックな指定 | ○ | ||
セッション内の指定 | ○ | ||
適用可能なステートメント | OPTIONS |
||
適用可能なコマンド | 以下の DBSHORT オプション: COMPOPT |
DDM EMPLOYEES
に以下のデータベースフィールド定義がある場合を考えます。
Short Name | Long Name |
---|---|
AA |
PERSONNEL-ID |
例 1
OPTIONS DBSHORT=ON READ EMPLOYEES DISPLAY AA /* data base short name AA is allowed END
例 2
OPTIONS DBSHORT=OFF READ EMPLOYEES DISPLAY AA /* syntax error NAT0981, because DBSHORT=OFF END
例 3:
OPTIONS DBSHORT=ON DEFINE DATA LOCAL 1 V1 VIEW OF EMPLOYEES 2 PERSONNEL-ID END-DEFINE READ V1 BY PERSONNEL-ID DISPLAY AA /* syntax error NAT0981, because PERSONNEL-ID is defined in view; /* (even if DBSHORT=ON) END-READ END