この項では、Windowsオペレーティング・システム用のPro*COBOLリリース9.2を使用したOracle Databaseアプリケーション作成の概要について説明します。
この項の内容は、次のとおりです。
Pro*COBOLは、Windows 2000の32-bit版対応のMicro Focus Net Express 4.0をサポートしています。この項では、Micro Focusコンパイラを使用したPro*COBOLアプリケーションのコンパイルおよびリンク方法を説明します。
Micro Focus COBOLアプリケーションを作成および実行するには、次の4つの方法があります。
IDEの使用方法(Net Expressのみを使用)
Animatorの使用方法(Net Express以外の製品)
COBOLおよびCBLLINKコマンド(すべての製品)
いずれの場合も、次の利点からCOBSQLユーティリティが使用される場合があります。
Pro*COBOLはMicro Focusコンパイラで実行され、別の処理として実行する必要はありません。
アニメーションは、Pro*COBOLによって生成された.cblファイルではなく.pcoソース・ファイルを使用して行われます。
MAKEYSYNディレクティブは、自動的に指定され、手動で指定する必要はありません。
Pro*COBOLによって生成されたプログラムは、Micro Focus Net ExpressのIDEからコンパイルおよび実行できます。Pro*COBOLによって生成された.cbl
ファイルをNet Expressプロジェクトに追加します。Oracleライブラリのルーチンをコールするときに矛盾が生じないように、次のディレクティブを使用してプログラムをコンパイルします。
MAKESYN "COMP-5" = "COMP"
このディレクティブは、ソース・ファイル作成の設定またはプロジェクト設定で、あるいはソース・ファイルの先頭の$SET
行で指定できます。「Rebuild」または「Rebuild All」を選択すると、IDEによって「Run」または「Animate」が使用できる実行可能ファイルが生成されます。
Micro Focus COBOLのデバッガであるAnimator V2を使用して、プログラムをコンパイルおよび実行できます。
Oracleライブラリのルーチンをコールするときに矛盾が生じないように、メニュー・オプションの「Compiler Directives」を選択し、次のように入力します。
Micro Focus COBOLでは、2進数がビッグ・エンディアン形式で格納されるので、この手順が必要です。Oracleライブラリでは、2進数はリトル・エンディアン形式(マシン形式)で格納されていることを前提としています。
MAKESYN "COMP-5" = "COMP"
プログラムを作成する場合、COBOL
およびCBLLINK
は、Pro*COBOLランタイムが静的にリンクされるか、実行時にDLLを通してアクセスされるかによって2通りの方法で使用されます。
動的リンクの場合のコマンドは次のとおりです。
COBOL sample1 /MAKESYN"COMP-5"="COMP"; CBLLINK sample1
静的リンクの場合のコマンドは次のとおりです。
COBOL sample1 /LITLINK /MAKESYN"COMP-5"="COMP";
CBLLINK sample1 ORACLE_BASE\ORACLE_HOME\precomp\lib\orasql9.lib
前述のコマンドによりsample1.exe
が作成されます。このファイルは、他のWindows 2000用プログラムと同様に実行できます。
注意: ファイルを正常に実行するには、Pro*COBOLと同じシステムにMicro Focus COBOLがインストールされている必要があります。 |
COBSQL
を使用すると、前処理およびデバッグが簡単にできます。COBSQL
を使用するには、COBOLコンパイラに次のディレクティブを指定します。
PREPROCESS(COBSQL) COBSQLTYPE=ORACLE8 ENDP
または次の短い形式を使用します。
P(COBSQL) CSQLT=ORA8 ENDP
リリース8.0より前のPro*COBOLの場合、COBSQLTYPE
はORACLE
またはORA
に設定します。ディレクティブは、ソース・ファイルの先頭の$SET
行、COBOLのコマンドライン、Net Expressのプログラム作成の設定またはプロジェクト設定か、AnimatorのSQLコンパイラ・ディレクティブ設定によって設定できます。コンパイル時に、COBSQLではPro*COBOLをバックグラウンド・タスクとして実行し、Animatorで.cbl
ファイルではなく.pco
ファイルを使用して実行を追跡できるよう、必要な追加情報と一緒にその出力がCOBOLコンパイラに渡されます。
COBSQL
を使用している場合、.cbl
ファイルを直接処理する必要はありません。かわりに、.pco
ファイルをNet Expressプロジェクトに追加するか、Animatorで開きます。
Oracle Databaseの機能でPro*COBOLを使用する方法を示すためにサンプル・プログラムが提供されています。これらのプログラムのリストは、「サンプル・ファイル」を参照してください。
この項では、サンプル・プログラムをビルドするための基本的なプリコンパイル、コンパイルおよびリンクのコマンドの使用方法を説明します。また、Pro*COBOLのサンプル・プログラムの実行に必要な準備についても説明します。
Pro*COBOLのサンプル・プログラムを実行するには、ユーザー名がscott
でパスワードがtiger
のデータベース・アカウントが必要です。データベースにこのアカウントがない場合は、アカウントを作成してからサンプル・プログラムを実行してください。
scottアカウントには、emp表およびdept表が含まれている必要があります。アカウントにこれらの表がない場合は、demobld.sqlスクリプトを使用して作成してください。
demobld.sqlスクリプトを実行するには、次のようにします。
SQL*Plusを起動します。
ユーザー名scott、パスワードtiger
でデータベースに接続します。
demobld.sqlスクリプトを実行します。 たとえば、次のようにします。
SQL> @ORACLE_BASE\ORACLE_HOME\sqlplus\demo\demobld.sql
Pro*COBOLでは、Micro Focus COBOLのサンプル・ファイルのビルド用に次の項で説明するmakeit.batファイルが提供されます。
リリース9.2.0の場合、バッチ・ファイルはORACLE_BASE\ORACLE_HOME \precomp\demo\procob2
にあります。
サンプル・プログラムをビルドするには、次のようにします。
任意のサンプル・ファイルでバッチ・ファイルを実行します。ファイル拡張子は入力しないでください。 たとえば、次のようにします。
C:\ORACLE\ORA90\PRECOMP\DEMO\PROCOB2> makeit sample1
サンプル・プログラムをビルドしているときにエラーが発生した場合は、すべてのパスおよびファイル名がシステム構成と一致しているかを確認してください。
サンプル・プログラムを実行するコマンドは、次のディレクトリが現行の作業ディレクトリであると想定します。
ORACLE_BASE\ORACLE_HOME \precomp\demo\procob2 directory for release 9.2.0
システム構成に合せてサンプル・リンク・スクリプトの変更が必要な場合があります。詳細は、「Pro*COBOLアプリケーションのコンパイルおよびリンク」を参照してください。
リリース9.2.0のmakeit.batには、次の内容が含まれています。
procob iname=%1.pco ireclen=132 cobol %1 /anim /litlink makesyn "COMP-5" = "COMP"; cbllink %1 /M%1 ORACLE_BASE\ORACLE_HOME\precomp\lib\orasql9.lib
表F-1にリストされているPro*COBOLのサンプル・ファイルは、ORACLE_BASE\ORACLE_HOME\precomp\demo\procob2
ディレクトリ(リリース9.2の場合)にあります。SQLスクリプトは、ORACLE_BASE\ORACLE_HOME\precomp\demo\sql
ディレクトリにあります。
表F-1 Pro*COBOLのサンプル・プログラム
サンプル・プログラム | 説明 |
---|---|
|
単純な問合せ |
|
カーソル操作 |
|
ホスト表 |
|
データ型の同値化 |
|
動的SQL方法1 |
|
動的SQL方法2 |
|
動的SQL方法3 |
|
ストアド・プロシージャ・コール |
|
ストアド・プロシージャ・コール |
|
動的SQL方法4 |
|
カーソル変数操作 |
|
カーソル変数操作 |
|
|
|
ネストされたプログラム |
|
単純な問合せおよび挿入 |
|
ホスト表x(リリース8.1.6以上) |
|
LOBデータ型(リリース8.1.6以上) |
|
LOBデータ型(リリース8.1.6以上) |