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

IBM VisualAge C++ バージョン 3.5

この節では、以下のトピックについて記載します。

注:VisualAge C++ コンパイラーは、 %DB2PATH%\samples\c ディレクトリーと %DB2PATH%\samples\cpp ディレクトリーにある、 C と C++ の両方のサンプル・プログラムに使用されます。 同じバッチ・ファイルがこれらの 2 つのディレクトリー内に置かれています。 これらのディレクトリーにあるバッチ・ファイルには、 ファイルの拡張子に応じて、 C または C++ のどちらかのソース・ファイルを受け入れるコマンドが含まれています。

DB2 CLI アプリケーション

%DB2PATH%\samples\cli にあるバッチ・ファイル bldvcli.bat には、 IBM VisualAge C++ で DB2 CLI プログラムを作成するためのコマンドが入っています。

このパラメーター %1 には、ソース・ファイルの名前を指定します。

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

プログラムに組み込み SQL (.sqc または .sqx 拡張子が付いている) が含まれている場合、 embprep バッチ・ファイルは、.c または .cxx 拡張子を持つプログラム・ファイルを生成して、 プログラムをプリコンパイルするために呼び出されます。

@echo off
rem  bldvcli batch file - Windows 32-bit Operating Systems
rem  Builds a CLI program with IBM VisualAge C++.
rem  Usage: bldvcli prog_name
if exist "%1.sqc" call embprep %1 %2 %3 %4
if exist "%1.sqx" call embprep %1 %2 %3 %4
rem Compile the error-checking utility.
icc -c -Ti -W1 /I"%DB2PATH%\include" utilcli.c
rem  Compile the program.
if exist "%1.sqx" goto cpp
icc -c -Ti -W1 /I"%DB2PATH%\include" %1.c
goto link_step
:cpp
icc -c -Ti -W1 /I"%DB2PATH%\include" %1.cxx
rem  Link the program.
:link_step
ilink /MAP /DEBUG /ST:32000 /PM:VIO %1.obj utilcli.obj db2cli.lib
@echo on


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

コンパイル・オプション

icc
IBM VisualAge C++ コンパイラー。

-c
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルとリンクが別個のステップであることを前提としています。

-Ti
デバッガー情報を生成します。

-W1
警告、エラー、重大、および回復不能エラー・メッセージを出力します。

リンク・オプション

ilink
リンク編集に資源リンカーを使用します。

/MAP
マップ・ファイルを生成します。

/DEBUG
デバッグ情報を組み込みます。

/ST:32000
スタック・サイズとして少なくとも 32 000 を指定します。

/PM:VIO
プログラムがウィンドウ表示または全画面表示で稼働することを可能にします。

%1.obj
オブジェクト・ファイルを組み込みます。

utilcli.obj
エラー検査用のユーティリティー・オブジェクト・ファイルを組み込みます。

db2cli.lib
DB2 CLI ライブラリーとリンクします。

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

ソース・ファイル tbinfo.c からサンプル・プログラム tbinfo を作成するには、 次のように入力します。

   bldvcli tbinfo

結果として、実行可能ファイル tbinfo が作成されます。 この実行可能ファイルを実行するには、次の実行可能名を入力します。

   tbinfo

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

ソース・ファイル dbusemx.sqc から組み込み SQL アプリケーション dbusemx を作成する場合、 次の 3 つの方法があります。

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

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

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

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

DB2 API を使用する DB2 CLI アプリケーション

DB2 には、CLI サンプル・プログラムが含まれています。 このサンプル・プログラムは、DB2 API を使用してデータベースを作成およびドロップし、 CLI 機能を複数のデータベースで使用する方法を示します。 DB2 API を使用するサンプルは、 表 7 にある CLI サンプル・プログラムの説明の中に示されています。

sqllib/samples/cli にあるスクリプト・ファイル bldvapi には、 DB2 API を持つ DB2 CLI プログラムを作成するためのコマンドが入っています。 このファイルは、 データベースを作成およびドロップするための DB2 API が入った utilapi ユーティリティー・ファイルでコンパイルおよびリンクします。 この点が、このファイルと bldvcli バッチ・ファイルの唯一の違いです。 bldvapibldvcli の両方に共通のコンパイルおよびリンク・オプションについては、 "DB2 CLI アプリケーション" を参照してください。

ソース・ファイル dbmconn.c からサンプル・プログラム dbmconn を作成するには、 次のように入力します。

   bldvapi dbmconn

結果として、実行可能ファイル dbmconn が作成されます。 この実行可能ファイルを実行するには、次の実行可能名を入力します。

   dbmconn

DB2 CLI ストアード・プロシージャー

%DB2PATH%\samples\cli にあるバッチ・ファイル bldvclis.bat には、 CLI ストアード・プロシージャーを作成するためのコマンドが入っています。 バッチ・ファイルは、 ストアード・プロシージャーをサーバー上の DLL 内に作成します。

このパラメーター %1 には、ソース・ファイルの名前を指定します。 バッチ・ファイルでは、 ソース・ファイル名 %1 を DLL 名に使用します。

@echo off
rem bldvclis.bat file - Windows 32-bit Operating Systems
rem Builds a CLI stored procedure using the IBM VisualAge C++ compiler
rem Usage: bldvclis prog_name
if "%1" == "" goto error
rem Compile the program.
if exist "%1.cxx" goto cpp
icc -c+ -Ti -Ge- -Gm+ -W1 %1.c  utilcli.c
goto link_step
:cpp
icc -c+ -Ti -Ge- -Gm+ -W1 %1.cxx  utilcli.c
:link_step
rem Import the library and create an export file.
rem The function name in the .def file must be decorated to be consistent
rem with the function name in the .map file.  Typically, this is done by
rem prepending "_" and appending "@" and the number of bytes of arguments,
rem as in: "@16". In spserverva.def, for example, the IBM VisualAge C++
rem compiler requires "EXPORTS _outlanguage@16" and not "EXPORTS outlanguage".
ilib /GI %1va.def
rem Link the program and produce a DLL.
ilink /ST:64000 /PM:VIO /MAP /DLL %1.obj utilcli.obj %1va.exp db2cli.lib
rem Copy the stored procedure DLL to the 'function' directory
copy %1.dll "%DB2PATH%\function"
goto exit
:error
echo Usage: bldvclis prog_name
:exit
@echo on


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

コンパイル・オプション

icc
IBM VisualAge C++ コンパイラー。

-c+
コンパイルのみを実行し、リンクは実行しません。 このバッチ・ファイルでは、 コンパイルとリンクは別個のステップです。

-Ti
デバッガー情報を生成します。

-Ge-
.DLL ファイルを作成します。 静的にリンクされる実行時ライブラリーのバージョンを使用します。

-Gm+
マルチタスキング・ライブラリーとリンクします。

-W1
警告、エラー、重大、および回復不能エラー・メッセージを出力します。

リンク・オプション

ilink
リンク編集に資源リンカーを使用します。

/ST:64000
スタック・サイズとして少なくとも 64 000 を指定します。

/PM:VIO
プログラムがウィンドウ表示または全画面表示で稼働することを可能にします。

/MAP
マップ・ファイルを生成します。

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

%1.obj
オブジェクト・ファイルを組み込みます。

%1.exp
VisualAge エクスポート・ファイルを組み込みます。

db2cli.lib
DB2 CLI ライブラリーとリンクします。

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

ソース・ファイル spserver.c から spserver ストアード・プロシージャーを作成するには、 次のように入力します。

   bldvclis spserver

このバッチ・ファイルは、CLI サンプル・プログラムと同じディレクトリーに入っている、 モジュール定義ファイル spserverva.def を使用してストアード・プロシージャーを作成します。 このバッチ・ファイルは、 ストアード・プロシージャー DLL の spserver.dll をサーバー上の %DB2PATH%\function というパスにコピーします。

次に、サーバー上で spcreate.db2 スクリプトを実行して、 ストアード・プロシージャーをカタログ化します。 まず、データベースに接続します。

   db2 connect to sample

ストアード・プロシージャーがすでにカタログ化されている場合は、 次のコマンドを使用してそれらをドロップすることができます。

   db2 -td@ -vf spdrop.db2

その後、次のコマンドでストアード・プロシージャーをカタログ化します。

   db2 -td@ -vf spcreate.db2

カタログ化が終了したら、データベースを 1 度停止してから再始動し、 新しい共用ライブラリーが認識されるようにします。 必要であれば、共用ライブラリーにファイル・モードを設定して、 DB2 インスタンスからアクセスできるようにします。

ストアード・プロシージャー spserver を作成したなら、 そのストアード・プロシージャーを呼び出す CLI クライアント・アプリケーション spclient を構築できます。

spclient は、バッチ・ファイル bldvcli を使用して構築することができます。 詳細については、 "DB2 CLI アプリケーション"を参照してください。

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

spclient database userid password

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

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

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

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

クライアント・アプリケーションはストアード・プロシージャー・ライブラリー spserver にアクセスし、 様々なストアード・プロシージャー関数をサーバー・データベース上で実行します。 出力は、クライアント・アプリケーションに戻されます。

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

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

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

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

@echo off
rem bldvapp.bat -- Windows 32-bit operating systems
rem Builds a VisualAge C++ application program
rem Usage: bldvapp prog_name [ db_name [  userid password ]]
if exist "%1.sqx" goto embedded
if exist "%1.sqc" goto embedded
goto non_embedded
:embedded
rem Precompile and bind the program.
call embprep %1 %2 %3 %4
rem  Compile the program.
if exist "%1.cxx" goto cpp_emb
icc -c -Ti -W1 %1.c utilemb.c
goto link_embedded
:cpp_emb
icc -c -Ti -W1 %1.cxx utilemb.cxx
rem Link the program.
:link_embedded
ilink /MAP /DEBUG /ST:32000 /PM:VIO %1.obj utilemb.obj db2api.lib
goto exit
:non_embedded
rem  Compile the program.
if exist "%1.cxx" goto cpp_non
icc -c -Ti -W1 %1.c utilapi.c
goto link_non_embedded
:cpp_non
icc -c -Ti -W1 %1.cxx utilapi.cxx
rem Link the program.
:link_non_embedded
ilink /MAP /DEBUG /ST:32000 /PM:VIO %1.obj utilapi.obj db2api.lib
:exit
@echo on

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

コンパイル・オプション

icc
IBM VisualAge C++ コンパイラー。

-c
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルとリンクが別個のステップであることを前提としています。

-Ti
デバッガー情報を生成します。

-W1
警告、エラー、重大、および回復不能エラー・メッセージを出力します。

リンク・オプション

ilink
リンク編集に資源リンカーを使用します。

/MAP
マップ・ファイルを生成します。

/DEBUG
デバッグ情報を組み込みます。

/ST:32000
スタック・サイズとして少なくとも 32 000 を指定します。

/PM:VIO
プログラムがウィンドウ表示または全画面表示で稼働することを可能にします。

%1.obj
オブジェクト・ファイルを組み込みます。

utilemb.obj
組み込み SQL プログラムの場合に、 エラー・チェックを行う組み込み SQL ユーティリティー・オブジェクト・ファイルを含みます。

utilapi.obj
組み込み SQL プログラムでない場合に、 エラー・チェックを行う DB2 API ユーティリティー・オブジェクト・ファイルを含みます。

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

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

%DB2PATH%\samples\c のソース・ファイル client.c 、 または %DB2PATH%\samples\cpp のソース・ファイル client.cxx のどちらかから、 DB2 API の組み込み SQL を含まないサンプル・プログラム client を作成するには、 次のように入力します。

   bldvapp client

結果として、実行可能ファイル client.exe が作成されます。 この実行可能ファイルを実行するには、 次の実行可能ファイル名を (拡張子なしで) コマンド行に入力します。

   client

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

%DB2PATH%\samples\c の C ソース・ファイル updat.sqc 、 または %DB2PATH%\samples\cpp の C++ ソース・ファイル updat.sqx から組み込み SQL アプリケーション updat を構築する方法は 3 つあります。

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

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

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

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

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

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

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

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

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

@echo off
rem bldvsrv.bat -- Windows 32-bit operating systems
rem Builds a VisualAge C++ stored procedure
rem Usage: bldvsrv prog_name [ db_name ]
rem Precompile and bind the program.
call embprep %1 %2
rem Compile the program.
if exist "%1.cxx" goto cpp
icc -c+ -Ti -Ge- -Gm+ -W1 %1.c
goto link_step
:cpp
icc -c+ -Ti -Ge- -Gm+ -W1 %1.cxx
:link_step
rem Import the library and create a definition file.
rem The function name in the .def file must be decorated to be consistent
rem with the function name in the .map file. Typically, this is done by
rem prepending "_" and appending "@" and the number of bytes of arguments,
rem for example, "@16". In spserverva.def, the IBM VisualAge C++ compiler requires
rem "EXPORTS _outlanguage@16" and not "EXPORTS outlanguage".
ilib /GI %1va.def
rem Link the program and produce a DLL.
ilink /ST:64000 /PM:VIO /MAP /DLL %1.obj %1va.exp db2api.lib
rem Copy the Stored Procedure DLL to the 'function' directory.
copy %1.dll "%DB2PATH%\function"
@echo on


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

コンパイル・オプション

icc
IBM VisualAge C++ コンパイラー。

-c+
コンパイルのみを実行し、リンクは実行しません。 このバッチ・ファイルでは、 コンパイルとリンクは別個のステップです。

-Ti
デバッガー情報を生成します。

-Ge-
.DLL ファイルを作成します。 静的にリンクされる実行時ライブラリーのバージョンを使用します。

-Gm+
マルチタスキング・ライブラリーとリンクします。

-W1
警告、エラー、重大、および回復不能エラー・メッセージを出力します。

リンク・オプション

ilink
リンク編集に資源リンカーを使用します。

/ST:64000
スタック・サイズとして少なくとも 64 000 を指定します。

/PM:VIO
プログラムがウィンドウ表示または全画面表示で稼働することを可能にします。

/MAP
MAP ファイルを生成します。

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

%1.obj
オブジェクト・ファイルを組み込みます。

%1va.exp
VisualAge エクスポート・ファイル。

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

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

C ソース・ファイル spserver.sqc 、 または C++ ソース・ファイル spserver.sqx のどちらかから spserver ストアード・プロシージャーを作成するには、 次のように入力します。

   bldvsrv spserver

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

    bldmsrv spserver database

このバッチ・ファイルは、サンプル・プログラムと同じディレクトリーに入っている、 モジュール定義ファイル spserverva.def を使用してストアード・プロシージャーを作成します。 このバッチ・ファイルは、 ストアード・プロシージャー DLL の spserver.dll をサーバー上の %DB2PATH%\function というパスにコピーします。

次に、サーバー上で spcreate.db2 スクリプトを実行して、 ストアード・プロシージャーをカタログ化します。 まず、データベースに接続します。

   db2 connect to sample

ストアード・プロシージャーがすでにカタログ化されている場合は、 次のコマンドを使用してそれらをドロップすることができます。

   db2 -td@ -vf spdrop.db2

その後、次のコマンドでストアード・プロシージャーをカタログ化します。

   db2 -td@ -vf spcreate.db2

カタログ化が終了したら、データベースを 1 度停止してから再始動し、 新しい共用ライブラリーが認識されるようにします。 必要であれば、共用ライブラリーにファイル・モードを設定して、 DB2 インスタンスからアクセスできるようにします。

ストアード・プロシージャー DLL spserver を作成したなら、 そのストアード・プロシージャーを呼び出すクライアント・アプリケーション spclient を構築できます。

spclient は、スクリプト・ファイル bldvapp を使用して構築することができます。 詳細については、 "DB2 API と組み込み SQL アプリケーション"を参照してください。

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

spclient database userid password

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

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

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

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

クライアント・アプリケーションは、 ストアード・プロシージャー DLL spserver にアクセスし、 サーバー・データベース上のいくつかのストアード・プロシージャー関数を実行します。 出力は、クライアント・アプリケーションに戻されます。

ユーザー定義関数 (UDF)

%DB2PATH%\samples\c%DB2PATH%\samples\cpp にあるバッチ・ファイル bldvudf には、 UDF を作成するためのコマンドが入っています。

UDF には、組み込み SQL ステートメントは含められません。 したがって、UDF プログラムを作成するには、データベースへの接続、またはプログラムのプリコンパイルおよびバインドは行いません。

このパラメーター %1 には、ソース・ファイルの名前を指定します。 バッチ・ファイルでは、 ソース・ファイル名 %1 を DLL 名に使用します。

@echo off
rem bldvudf.bat -- Windows 32-bit operating systems
rem Builds a VisualAge C++ user-defined function (UDF)
rem Usage: bldvudf program_name
if "%1" == "" goto error
rem Compile the program.
if exist "%1.cxx" goto cpp
icc -Ti -c+ -Ge- -Gm+ -W1 %1.c
goto link_step
:cpp
icc -Ti -c+ -Ge- -Gm+ -W1 %1.cxx
:link_step
rem Generate an import library and export file using a definition file.
rem Function(s) in the .def file are prepended with an underscore, and
rem appended with the @ sign and number of bytes of arguments (in decimal).
rem Parameters of less than four bytes are rounded up to four bytes.
rem Structure size is rounded up to a multiple of four bytes.
rem For example, function fred prototyped as: "int fred(int, int, short);"
rem would appear as:  "_fred@12" in the .def file.
rem These decorated function names can also be found in %1.map
rem after running the following ilink command without %1va.exp.
ilib /gi %1va.def
rem Link the program to a dynamic link library
ilink /ST:64000 /PM:VIO /MAP /DLL %1.obj %1va.exp db2api.lib db2apie.lib
rem Copy the UDF DLL to the 'function' directory.
copy %1.dll "%DB2PATH%\function"
goto exit
:error
echo Usage: bldvudf prog_name
:exit
@echo on


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

コンパイル・オプション

icc
IBM VisualAge C++ コンパイラー。

-Ti
デバッガー情報を生成します。

-c+
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルとリンクが別個のステップであることを前提としています。

-Ge-
.DLL ファイルを作成します。 静的にリンクされる実行時ライブラリーのバージョンを使用します。

-Gm+
マルチタスキング・ライブラリーとリンクします。

-W1
警告、エラー、重大、および回復不能エラー・メッセージを出力します。

リンク・オプション

ilink
リンク編集に資源リンカーを使用します。

/ST:64000
スタック・サイズとして少なくとも 64000 を指定します。

/PM:VIO
プログラムがウィンドウ表示または全画面表示で稼働することを可能にします。

/MAP
MAP ファイルを生成します。

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

%1.obj
オブジェクト・ファイルを組み込みます。

%1va.exp
VisualAge エクスポート・ファイルを組み込みます。

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

db2apie.lib
DB2 API エンジン・ライブラリーとリンクします。

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

ユーザー定義関数 udfsrv をソース・ファイル udf.c から作成するには、 次のように入力します。

   bldvudf udfsrv

このバッチ・ファイルは、 サンプル・プログラムと同じディレクトリーに入っている、 モジュール定義ファイル udfsrv.def を使用してユーザー定義関数を作成します。 このバッチ・ファイルは、 ユーザー定義関数 DLL の udfsrv.dll をサーバー上の %DB2PATH%\function というパスにコピーします。

udfsrv を作成したなら、 それを呼び出すクライアント・アプリケーション udfcli を構築できます。 DB2 CLI が、 このプログラムの組み込み SQL C および C++ バージョンとともに提供されます。

DB2 CLI udfcli プログラムは、 %DB2PATH%\samples\cli のバッチ・ファイル bldvcli を使用して、 udfcli.c ソース・ファイルから作成できます。 詳細については、"DB2 CLI アプリケーション" を参照してください。

組み込み SQL C udfcli プログラムは、 %DB2PATH%\samples\c のバッチ・ファイル bldvapp を使用して、 udfcli.sqc ソース・ファイルから作成できます。 詳細については、 "DB2 API と組み込み SQL アプリケーション"を参照してください。

組み込み SQL C++ udfcli プログラムは、 %DB2PATH%\samples\cpp のバッチ・ファイル bldvapp を使用して、 udfcli.sqx ソース・ファイルから作成できます。 詳細については、 "DB2 API と組み込み SQL アプリケーション"を参照してください。

UDF を実行するには、次のように入力します。

   udfcli

この呼び出しアプリケーションは、 udfsrv DLL から ScalarUDF 関数を呼び出します。


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