Page History
...
- クロスリファレンス情報は、FIELDSおよびFROM_FILESパラメータからのみ取得されます。現在のリリースでは、このコマンドの他のパラメータに埋め込まれたフィールドおよびファイルの参照は、LANSAクロスリファレンス機能に反映されません。
- SQLからアクセスする際は、データベースの列名を使用する必要があります。C実行可能プログラムでは、データベースの列名、またはLANSAがその列を認識するために使用するフィールド名を使用できます。これは、命名レベル0のファイルを使用している場合は、異なる可能性があります。フィールド名を使用する場合(#なし)、LANSAは実行時にそのフィールド名を列名に変換します。そのため、実行時に使用される名前をすべてのプラットフォーム間で移植することが可能です。この動作は、列名を受け入れるすべてのパラメータで見られます。例として、命名レベル0のファイル#MYFILEを使用する以下のRDMLについて考えます。
SELECT SELECT_SQL FIELDS(#A$ #B) FROM_FILES((#MYFILE)) WHERE('A_ = ''A VALUE''')
DISPLAY DISPLAY FIELDS(#A$ #B)
ENDSELECT ENDSELECT
このRDMLは、IBM i 以外のプラットフォームでは正常に動作しますが、IBM i では失敗します。A_が、FROM_FILESパラメータで指定されたいずれかのファイルの物理フィールドでない場合、Visual LANSAにより警告PRC1065が発行されます。すべてのLANSAプラットフォームで動作するよう可搬性のある方法で作成するには、以下のようにします。
...
- SQLアクセス・コマンドは、RDMLファンクションに直接埋め込まれます。DBMSアクセスは直接的であり、IOM/OAMアクセス・ルーチンを経由しません。この方法では、読み取り前後のトリガーや、LANSA/スーパーサーバーによって実装された「シン・クライアント」型設計を適切に使用できなくなる可能性があります。
- SELECT_SQLのコンテンツが画面のフィールドからのものである場合は、エンド・ユーザーがSELECT以外の処理が可能になります。特にプログラム可能な自由形式のバージョンだと次のようなことが簡単にできます。
REQUEST FIELD(#ANYSQL)
Select_Sql Fields(#STD_NUM) Using(#ANYSQL)
endselect.
...