Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

移植性に関する考慮事項

WHERE パラメータのLANSAフィールドが、FROM_FILESパラメータで指定されたいずれかのファイルのものであると認識されている限り、そのフィールド名は、二重引用符で囲まれた列名としてSQLステートメントに作成されます。この列名が必ずしもフィールド名と同じでないことに注意してください。一般 に、このような状況は外部ファイルで起こりますが、LANSAファイルの特定のフィールド名でも起こることがあります。「

」を参照してください。
ただし、引用符で囲まれていないLANSAフィールド名がSQLキーワードと競合する場合は例外です。この場合、フィールド名は変換されません。詳細については、「SQL/ODBC の文法:キーワードの重複」を参照してください。 例えば、SECTIONがSECTAB内のLANSAフィールドの場合、このフィールドは列S_CTIONとして作成されます。 WHEREパラメータがWHERE( 'SECTION = ''1''')として指定されている場合、SECTIONは変更されないため、実行時にSQL構文エラーが発生します。 これを回避するには、相関を使用して、SECTIONをSQLキーワードとして使用せず、この列にアクセスしようとしていることをLANSAが認識できるようにします。すなわち、FROM_FILES((SECTAB SEC)) WHERE('SEC.SECTION = ''1''')と指定します。
同じLANSAフィールドを含む複数のファイルから選択する場合、列名がファイルによって異なることがあります。「

」を参照してください。この場合、開発者は2通りの方法でLANSAが生成するSQL WHERE句を制御できます。その1つは、LANSAがそのファイルの規則に従ってフィールド名を変更できるよう相関(FROM_FILESパラメータを参照)を使用する方法です。2つ目は、列名を使用して、それを二重引用符で囲む方法です。
WHERE パラメータでフィールド名を使用する場合、LANSAがそのフィールド名を認識し、適切に変換できるよう、フィールド名の前後にスペースを残すことをお勧めします。例えば、WHERE( 'a=b')の代わりにWHERE ( 'a = b' )と指定します。
 

...