Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • クロスリファレンス情報は、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.

...