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

移行対象のアプリケーションはメインフレーム環境から生成されているので、ランタイム アプリケーションでは、データベース要求モジュール (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=MAINFRAME, DIALECT=MAINFRAME, DBRMLIB)1
COBOL DBRM を作成し、メインフレームのようにバインドしますが、コンパイル時にデータベースには接続しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER,BEHAVIOR=MAINFRAME, DIALECT=MAINFRAME, DBRMLIB, NOCHECK)1
COBOL DBRM を作成せず、SQL Server ストアド プロシージャを作成しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=MAINFRAME, DIALECT=MAINFRAME)1
COBOL DBRM を作成せず、SQL Server ストアド プロシージャを作成せず、コンパイル時にデータベースには接続しません。 SQL(DBMAN={ODBC | ADO}, TARGETDB=MSSQLSERVER, BEHAVIOR=MAINFRAME, DIALECT=MAINFRAME, NOCHECK)1
PL/I DBRM を作成し、メインフレームのようにバインドします。 SQL(DBMAN=ODBC, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=MAINFRAME, DIALECT=MAINFRAME, DBRMLIB)1
PL/I DBRM を作成し、メインフレームのようにバインドしますが、コンパイル時にデータベースには接続しません。 SQL(DBMAN=ODBC, TARGETDB=MSSQLSERVER, DB=databaseName, [PASS=userid.password, ] BEHAVIOR=MAINFRAME, 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
少なくとも、次の OpenESQL ESQL プリプロセッサ用コンパイラ指令オプションを設定するようにプロジェクトの SQL プロパティを編集することで、ビルドのプロセスで適切な DBRM が生成され必要に応じて DB2 SQL を SQL Server SQL に変換できるようにします。
  • DBMAN - これを以下のいずれかの値に設定します。
    • ODBC - ネイティブ アプリケーション用
    • ADO - マネージ アプリケーション用
  • TARGETDB - これを MSSQLSERVER の値に設定します。
  • DB - この値を SQL Server データ ソース接続名に設定します。
  • PASS - データソース接続で、接続のためのユーザー ID とパスワードの入力が必要な場合、ユーザー ID とパスワードを次のように入力します。

    userID.password

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

コンパイルの前に、SQL(NOCHECK) 指令を指定していない限り、DB 指令により指定されたデータベースへの接続を ODBC (ネイティブ アプリケーション) または ADO.NET (マネージ アプリケーション) 接続によって確立する必要があります。

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