アプリケーションのビルド

移行対象のアプリケーションはメインフレーム環境から生成されているため、ランタイム アプリケーションでは、データベース要求モジュール (DBRM) を参照するパッケージまたはプラン (あるいはその両方) から該当するすべての SQL 文が検出されることが前提になります。DBRM にはコンパイル時にアプリケーションのソース コードから抽出された SQL 文が含まれています。

このメインフレームの動作を模倣するために、HCOSS には SQL コンパイラ指令オプションのセットが用意されており、これによりアプリケーションのコンパイル時にアプリケーションのソース コードにある EXEC SQL 文を DBRM に抽出できます。ポスト コンパイルのステップで、DBRM をアプリケーションにバインドすることで実行時に DBRM にアクセスできるようになります。

以下のサンプルのユース ケース シナリオは、HCOSS アプリケーションに設定可能な一般的な SQL コンパイラ指令を示しています。

プログラムのタイプ シナリオ SQL コンパイラ指令オプション
COBOL DBRM を作成し、メインフレームと同様にバインドします。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ]BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME, DBRMLIB)1
COBOL DBRM を作成し、メインフレームと同様にバインドしますが、コンパイル時にデータベースには接続しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME, DBRMLIB, NOCHECK)1
COBOL DBRM も SQL Server ストアド プロシージャも作成しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME)1
COBOL DBRM も SQL Server ストアド プロシージャも作成せず、コンパイル時にデータベースに接続しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME, NOCHECK)1
PL/I DBRM を作成し、メインフレームと同様にバインドします。 SQL(DBMAN=ODBC, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME, DBRMLIB)1
PL/I DBRM を作成し、メインフレームと同様にバインドしますが、コンパイル時にデータベースには接続しません。 SQL(DBMAN=ODBC, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=OPTIMIZED, DIALECT=MAINFRAME, DBRMLIB, NOCHECK)1
1 DIALECT=MAINFRAME は自動的に CHECK、CHECKDUPCURSOR、CHECKSINGLETON、DETECTDATE、DATE=ISO、TIME=ISO を設定します。

IDE でアプリケーションをコンパイルするには、アプリケーションを含むプロジェクトをビルドします。HCOSS アプリケーションをビルドする際には、最初に適切な SQL コンパイラ指令オプションを設定し、多くの場合 SQL Server データベースへの接続を確立する必要があります。

標準の SQL コンパイラ指令オプションに加えて、HCOSS には、アプリケーションのバインドの処理および DB2 と SQL Server の間の SQL 互換性の処理を行うための以下の特殊オプションが含まれています。
  • ACCESS
  • BIND
  • DATE
  • DBRMLIB (必須)
  • DIALECT (必須)
  • MEMBER
  • QUALIFIER
  • TIME
  • VERSION
少なくとも、プロジェクトの SQL プロパティを編集して OpenESQL ESQL プリプロセッサ用の以下のコンパイラ指令オプションを設定し、ビルド プロセスで適切な DBRM を生成し、必要に応じて DB2 SQL を SQL Server SQL に変換するようにします。
  • DBMAN - 以下のいずれかの値に設定します。
    • ODBC - ネイティブ アプリケーション用
    • ADO - .NET アプリケーション用
  • TARGETDB - MSSQLSERVER の値に設定します。
  • DB - SQL Server データ ソース接続名に設定します。
  • PASS - データ ソース接続で、ユーザー ID とパスワードを入力して接続する必要がある場合、ユーザー ID とパスワードを以下のように入力します。

    userID.password

  • DBRMLIB
  • DIALECT - MAINFRAME の値に設定します。
  • DETECTDATE
  • INIT

SQL(NOCHECK) 指令を指定した場合を除き、コンパイルする前に、DB 指令で指定したデータベースへの接続を、ODBC (ネイティブ アプリケーション) または ADO.NET (.NET アプリケーション) 接続で確立しておく必要があります。

注: SQL(NOCHECK) 指令を設定するには、その指令を SQL(DBRMLIB) 指令の後に表示されるように追加する必要があります。