3.7.17 列名の特殊文字の変換
列名からデータベースの列を作成するときに、列名をそのまま使用するかどうかを指定します。
デフォルト
LANSAバージョン11 SP4以降で作成されたテーブルの場合は、デフォルトはNO (チェックなし/未選択) それより古いバージョンで作成されたテーブルの場合はYES (チェックあり/選択)
LANSA バージョン 11 SP4 より古いバージョンの場合、Windows 環境でコンパイルされたテーブルにより、列名が同じでないデータベース列が作成されることがあります。例えば、デモンストレーション・ファイル SECTAB の SECTION 列は、S_CTION として作成されます。これは、SECTION が SQL キーワードだからです。同じ理由で、列 MY@FLD は MY_FLD として作成されます。
バージョン 11 SP4 以降、新しいテーブル内の列名はデータベースで変換されません。
これにより、これまで Windows 環境でコンパイルされずにエラー 979 で失敗していたテーブルを Visual LANSA で使用できるようになりました。例えば、テーブルに MY@FLD および MY#FLD という 2 つの列がある場合、Windows でのテーブルの作成は失敗し、以下のメッセージが表示されていました。
979 FATAL - Fields MY@FLD and MY#FLD resolve to the same SQL column name MY_FLD
そのため、このテーブルを使用できるのは IBM i のみでした。今後は、設定を NO (チェックなし/未選択) に変更することで、テーブルを正常に作成できます。
警告
- LANSA では、以前 Windows で正常にコンパイルされたテーブルに対してこの設定を NO (チェックなし/未選択) に変更することはできません。チェックあり (選択) からチェックなし (未選択) への変更は、テーブルのコンパイルがエラー 979 で失敗した場合のみ行ってください。
- LANSA では、V11 SP4 以降で作成されたテーブルに対してこの設定を YES (チェックあり/選択) に変更することはできません。
- この設定を変更した場合、そのテーブルに対して SELECT_SQL を使用するすべてのファンクションまたはコンポーネント、およびこのテーブルがバッチ制御または PJC のターゲットとなっているテーブルの OAM を再コンパイルし、再配布する必要があります。
- テーブルにアクセスする LANSA 以外のアプリケーションでは、列名として実際の列名を使用し、問題を防ぐためにこれらの識別子を引用符で囲んでください。
ヒントとテクニック
- テーブルのコンパイルでエラー 979 の問題がない限り、設定はデフォルトのままにしてください。
プラットフォームについて
- IBM i:このテーブル属性は、IBM i データベース内のテーブルには適用されません。