OpenESQL プリプロセッサで HCOSS の SQL 方言互換機能を有効にして、関数、特殊レジスタ、データ タイプの自動マッピングなど、HCOSS のすべての自動変換をオンにし、DIALECT 文のプレフィックスを使用できるようにします。 SQL Server と互換性のない DB2 SQL 文の大半を同等の T-SQL 文に変換します。
   
         構文:
                DIALECT={MAINFRAME | MIXED | NONE} [overrides]
         パラメーター:
                
                         - MAINFRAME
                         
- 
                                
                                  - DB2 と互換性があるすべての文は、HCOSS によって変換されます。
                                  
- DB2 互換の文の修飾されていないテーブルとビューの仕様は、BIND PACKAGE および BIND PLAN コマンドの SQL(QUALIFIER) 指令オプションまたは QUALIFIER パラメーターによって修飾されます。
                                  
- [NOPLAN]、[NODIALECT]、[MAINFRAME] 文プレフィックスをサポートします。
                                  
- [NODIALECT] 文プレフィックスと使用する場合、変換と修飾は無効になります。
                                  
 
- MIXED
                         
- 
                                
                                  - DB2 構文の変換またはテーブルとビューの修飾を実行しません。
                                  
- 修飾は、個別の文で [MAINFRAME] 文プレフィックスを使用して有効にできます。
                                  
 
- NONE
                         
- 
                                
                                  - DIALECT を指定しないことを意味します。
                                  
- DB2 構文の変換またはテーブルとビューの修飾を実行しません。
                                  
- [NOPLAN] 文プレフィックスのみをサポートします。
                                  
 
- overrides
                         
- SQL コンパイラ指令で、DIALECT により設定されるデフォルト値以外の値に設定され、それぞれがスペースで区切られます。編集済み SQL コンパイラ指令を指定すると、DIALECT によってデフォルトで設定された指令をオーバーライドします。
                         
依存性:
                MAINFRAME または OPENESQL に設定すると、DIALECT は次の正規 SQL コンパイラ指令を設定します。
                  
                         - CHECK
                         
- CHECKSINGLETON
                         
- CHECKUPDCURSOR
                         
- DETECTDATE
                         
- MARS
                         
また次の HCOSS SQL コンパイラ指令を設定します。
                  
                さらに、 OpenESQL プリコンパイラを設定して次の EXEC SQL 文をスキップし、代わりにコンパイル時に警告を発生します。
                  
                         - SET CURRENT APPLICATION ENCODING SCHEME
                         
- SET CURRENT DEGREE
                         
- SET CURRENT [LOCALE] LC_CTYPE
                         
- SET CURRENT MAINTAINED TABLE TYPES FOR OPTIMIZATION
                         
- SET CURRENT OPTIMIZATION HINT
                         
- SET CURRENT PRECISION
                         
- SET CURRENT REFRESH AGE
                         
- SET CURRENT RULES
                         
- SET CURRENT ENCRYPTION PASSWORD
                         
範囲:
                         
                                
                                  | コンパイル時の使用: | Yes | 
                                
                                  | ランタイムの動作: | ソース ファイル | 
                         
                  
詳細については、『範囲 - HCOSS SQL コンパイラ指令オプション』を参照してください。
                
         長所:
                
                  - DB2 文を T-SQL に変換する必要はありません。
                  
- プログラムのバインド時にデフォルトのスキーマを変更できるか、または場合により、QUALIFIER SQL コンパイラ指令オプションを使用してコンパイル時にデフォルトのスキーマを変更できます。
                  
コメント:
                DIALECT=MAINFRAME と DIALECT=MIXED の両方が、[NODIALECT] と [MAINFRAME] 文プレフィックスを両方とも受け入れます。これらを適切な組み合わせで使用することにより、1 つのアプリケーションの文レベルで 2 つの DIALECT 設定を効果的に切り替えることができます。ただし、[NODIALECT] と [MAINFRAME] プレフィックスを DIALECT=NONE でコンパイルするコードから削除する必要があります。
                
                CHECK 指令をオーバーライドするには、NOCHECK を指定するか、またはデータベース接続を特定するように DB 指令を設定します。指定した接続で Windows 認証を使用しない場合、PASS 指令を設定して接続用の有効なユーザー ID とパスワードを指定する必要があります。
                
                HCOSS のコンテキストでは、CHECK は次を検証します。 
                  - HCOSS により変換された SQL 構文。変換された構文に SQL Server との互換性があるかどうかを判定します。これにより、HCOSS によって解決されなかった DB2 と SQL Server との非互換性を早い段階で検出できます。
                  
- 変換されたデータベース オブジェクト名 (テーブル、ビュー、列、関数) が SQL Server で有効かどうかを判定します。
                  
変換した SQL 文をコンパイル時に SQL Server を使用して完全にチェックできるようにするには、DB、PASS、QUALIFIER の各指令を DIALECT=MAINFRAME または DIALECT=MIXED とともに設定します。
                
         例:
                SQL(DIALECT=MAINFRAME NOCHECK NODETECTDATE)