アプリケーション構築の手引き

Micro Focus COBOL

この節では以下のトピックを取り上げています。

コンパイラーの使用法

組み込み SQL および DB2 API 呼び出しを含むアプリケーションを開発しており、 Micro Focus コンパイラーを使用している場合には、 以下の点に留意してください。

すべての DB2 アプリケーション・プログラミング・インターフェースへの呼び出しは、 呼び出し規則 74 を使用して実行しなければなりません。 DB2 COBOL プリコンパイラーは、 自動的に CALL-CONVENTION 節を SPECIAL-NAMES 段落に挿入します。 SPECIAL-NAMES 段落が存在しない場合、 DB2 COBOL プリコンパイラーはそれを以下のように作成します。

Identification Division
Program-ID. "static".
special-names.
    call-convention 74 is DB2API.

さらにプリコンパイラーは、 呼び出し規則を識別するために使用する記号 DB2API を、 DB2 API が呼び出されるたびに必ず call キーワードの後に自動的に置きます。 これはたとえば、 プリコンパイラーが DB2 API 実行時呼び出しを組み込み SQL ステートメントから生成する場合にも必ず実行されます。

DB2 API への呼び出しをプリコンパイルされていないアプリケーションで実行する場合、 前述したものと同様の SPECIAL-NAMES 段落を、 手操作で入力してアプリケーションに作成する必要があります。 DB2 API を直接呼び出す場合は、 call キーワードの後に DB2API 記号を手動で追加する必要があります。

DB2 API と組み込み SQL アプリケーション

%DB2PATH%\samples\cobol にあるバッチ・ファイル bldapp には、 DB2 アプリケーション・プログラムを作成するためのコマンドが入っています。

第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。 これは組み込み SQL を含まないプログラムに必要な唯一のパラメーターです。 組み込み SQL プログラムを作成するためにはデータベースへの接続が必要なため、 3 つのパラメーターがオプションとして用意されています。 2 番目のパラメーターは %2 で、 接続するデータベースの名前を指定します。 3 番目のパラメーターは %3 で、 データベースのユーザー ID を指定します。 そしてもう 1 つが %4 で、 データベースのパスワードを指定します。

組み込み SQL プログラムの場合、 bldapp は、プリコンパイルおよびバインド・バッチ・ファイル embprep にパラメーターをパスします。 データベース名を指定しない場合は、 デフォルトの sample データベースを使用します。なお、ユーザー ID とパスワードのパラメーターは、 プログラムを構築するインスタンスとデータベースのあるインスタンスが異なる場合にのみ必要になります。

@echo off
rem bldapp.bat  -- Windows 32-bit operating systems
rem Builds a Micro Focus Cobol application program
rem Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
rem If an embedded SQL program, precompile and bind it.
if not exist "%1.sqb" goto compile_step
call embprep %1 %2 %3 %4
:compile_step
rem Compile the error-checking utility.
cobol checkerr.cbl;
rem  Compile the program.
cobol %1.cbl;
rem  Link the program.
cbllink -l %1.obj checkerr.obj db2api.lib
@echo on

bldapp のコンパイルおよびリンク・オプション

コンパイル・オプション

cobol
Micro Focus COBOL コンパイラー。

リンク・オプション

cbllink
リンク編集にリンカーを使用します。

-l
lcobol ライブラリーとリンクします。

checkerr.obj
エラー検査ユーティリティー・オブジェクト・ファイルとリンクします。

db2api.lib
DB2 API ライブラリーとリンクします。

他のコンパイラー・オプションについては、 コンパイラーの資料をご覧ください。

ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム client を作成するには、 次のように入力します。

   bldapp client

結果として、実行可能ファイル client.exe が作成されます。 この実行可能ファイルを sample データベースに対して実行するには、 次の実行可能名を (拡張子なしで) 入力します。

   client

組み込み SQL アプリケーションの構築および実行

ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する方法には、 次の 3 つがあります。

  1. 同じインスタンス上のサンプル・データベースに接続している場合には、 次のように入力します。
       bldapp updat
    
  2. 同じインスタンスにある他のデータベースに接続している場合は、 さらにデータベース名も入力します。
       bldapp updat database
    
  3. 他のインスタンスにあるデータベースに接続している場合は、 さらにそのデータベース・インスタンスのユーザー ID とパスワードも入力します。
       bldapp updat database userid password
    

結果として、実行可能ファイル updat.exe が作成されます。

この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。

  1. 同じインスタンスにある sample データベースにアクセスする場合は、 ただ実行可能ファイルの名前 (拡張子なし) を入力します。
       updat
    
  2. 同じインスタンスにある他のデータベースにアクセスする場合は、 実行可能ファイル名とデータベース名を入力します。
       updat database
    
  3. 他のインスタンスにあるデータベースにアクセスする場合は、 実行可能ファイル名、データベース名、 およびそのデータベース・インスタンスのユーザー ID とパスワードを入力します。
       updat database userid password
    

組み込み SQL ストアード・プロシージャー

%DB2PATH%\samples\cobol_mf にあるバッチ・ファイル bldsrv には、 組み込み SQL ストアード・プロシージャーを作成するためのコマンドが入っています。 バッチ・ファイルは、 ストアード・プロシージャーをサーバー上の DLL にコンパイルします。

第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。 第 2 パラメーター %2 には、接続先のデータベースの名前を指定します。 ストアード・プロシージャーは、 必ずデータベースが常駐するインスタンスに構築される必要があるため、 ユーザー ID やパスワードを指定するパラメーターはありません。

第 1 パラメーター (ソース・ファイル名) だけが必須です。 データベース名は任意で指定します。 データベース名を指定しない場合、 プログラムはデフォルトの sample データベースを使用します。

バッチ・ファイルでは、 ソース・ファイル名 %1 を DLL 名に使用します。

@echo off
rem bldsrv.bat  -- Windows 32-bit operating systems
rem Builds a Micro Focus Cobol stored procedure
rem Usage: bldsrv <prog_name> [ <db_name> ]
rem Precompile and bind the program.
call embprep %1 %2
rem  Compile the stored procedure.
cobol %1.cbl /case;
rem  Link the stored procedure and create a shared library.
cbllink /d %1.obj db2api.lib
rem Copy the stored procedure to the %DB2PATH%\function directory.
copy %1.dll "%DB2PATH%\function"
@echo on


bldsrv のコンパイルおよびリンク・オプション

コンパイル・オプション

cobol
Micro Focus COBOL コンパイラー。

/case
外部記号が大文字に変換されないようにします。

リンク・オプション

cbllink
リンク編集のために Micro Focus COBOL リンカーを使用します。

/d
.DLL ファイルを作成します。

db2api.lib
DB2 API ライブラリーとリンクします。

他のコンパイラー・オプションについては、 コンパイラーの資料をご覧ください。

サンプル・データベースに接続している場合、 ソース・ファイル outsrv.sqb からサンプル・プログラム outsrv を作成するには、 次のように入力します。

   bldsrv outsrv

他のデータベースに接続しているときは、 さらにデータベース名も入力します。

   bldsrv outsrv database

スクリプト・ファイルは、 DLL をサーバー上の sqllib/function というパスにコピーします。

必要であれば、 DLL にファイル・モードを設定してクライアント・プログラムがそれにアクセスできるようにしてください。

DLL outsrv を作成したなら、 その DLL を呼び出すクライアント・アプリケーション outcli を構築できます。 outcli は、bldapp バッチ・ファイルを使用して構築することができます。 詳細については、 "DB2 API と組み込み SQL アプリケーション"を参照してください。

ストアード・プロシージャーを呼び出すためには、 次のように入力してサンプル・クライアント・アプリケーションを実行します。

   outcli database userid password

ここで、それぞれは次のものを表します。

database
接続先のデータベースの名前です。 名前は、sample かその別名、またはその他のデータベース名にすることができます。

userid
有効なユーザー ID です。

password
有効なパスワードです。

クライアント・アプリケーションは、 DLL outsrv にアクセスし、 サーバー・データベース上の同じ名前のストアード・プロシージャー関数を実行してから、 クライアント・アプリケーションに出力を戻します。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]