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

サンプル・プログラム

注:

  1. この節では、DB2 がサポートするすべてのプラットフォーム用のプログラム言語のサンプル・プログラムを記載しています。 以下に示す例のすべてがサポートされるプログラミング言語に移植されているわけではありません。

  2. DB2 サンプル・プログラムは、保証はまったくありませんが、「そのまま」使用できます。 ユーザーおよび IBM 以外の方は、品質、パフォーマンス、 何らかの欠陥の訂正のすべてのリスクをご承知いただきます。

サンプル・プログラムは、DB2 アプリケーション開発 (DB2 AD) クライアントに付属しています。 サンプル・プログラムをテンプレートとして使用して、 独自のアプリケーションを作成することができます。

サンプル・プログラムのファイル拡張子は、 サポートされる各言語ごとに異なり、 各言語内でも、組み込み SQL プログラムと非組み込み SQL プログラムとでは異なります。 さらには、各言語内のプログラム・グループごとにも異なっています。 これらのサンプル・ファイル拡張子を分類したのが、次の表です。

言語別のサンプル・ファイル拡張子
表 1.

プログラム・グループ別のサンプル・ファイル拡張子
表 2.

次の表は、サンプル・プログラムをタイプで分類しています。

組み込み SQL なしの DB2 API サンプル・プログラム
表 3.

DB2 API 組み込み SQL サンプル・プログラム
表 4.

DB2 API なしの組み込み SQL サンプル・プログラム
表 5.

ユーザー定義関数サンプル・プログラム
表 6

DB2 CLI サンプル・プログラム
表 7.

Java JDBC サンプル・プログラム
表 8.

Java SQLJ サンプル・プログラム
表 9.

SQL プロシージャー・サンプル・プログラム
表 10.

ActiveX Data Object、Remote Data Objects、 および Microsoft Transaction Server サンプル・プログラム
表 11.

オブジェクトのリンクと埋め込み (OLE) オートメーションのサンプル・プログラム
表 12.

オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数
表 13.

コマンド行プロセッサー・プロセッサー (CLP) サンプル・プログラム
表 14.

ログ管理ユーザー出口プログラム
表 15.

注:

  1. 表 4 には、 DB2 API と組み込み SQL ステートメントの両方を持つプログラムが入っています。 すべての DB2 API サンプル・プログラムについては、 表 3 および 表 4 の両方を参照してください。 すべての組み込み SQL サンプル・プログラム (Java SQLJ を除く) については、 表 4 および 表 5 の両方を参照してください。

  2. UDF サンプル・プログラムの 表 6 には、 DB2 CLI UDF プログラムが含まれていません。 それらについては、表 7 を参照してください。


表 1. 言語別のサンプル・ファイル拡張子
言語 ディレクトリー 組み込み SQL を含むプログラム 組み込み SQL を含まないプログラム
C
samples/c
samples/cli
(CLI プログラム)

.sqc .c
C++ samples/cpp
.sqC (UNIX)
.sqx (Windows および OS/2)


.C (UNIX)
.cxx (Windows および OS/2)

COBOL
samples/cobol
samples/cobol_mf

.sqb .cbl
JAVA samples/java .sqlj .java
REXX samples/rexx .cmd .cmd


表 2. プログラム・グループ別のサンプル・ファイル拡張子
サンプル・グループ ディレクトリー ファイル拡張子
ADO, RDO, MTS
samples\ADO\VB (Visual Basic)
samples\ADO\VC (Visual C++)
samples\RDO
samples\MTS


.bas .frm .vbp (Visual Basic)
.cpp .dsp .dsw (Visual C++)

CLP samples/clp .db2
OLE
samples\ole\msvb (Visual Basic)
samples\ole\msvc (Visual C++)


.bas .vbp (Visual Basic)
.cpp (Visual C++)

OLE DB samples\oledb .db2
SQL プロシージャー samples/sqlproc
.db2
.c .sqc
(クライアント・アプリケーション)

ユーザー出口 samples/c
.cad (OS/2)
.cadsm (UNIX および Windows)
.cdisk (UNIX および Windows)
.ctape (UNIX)

注:

ディレクトリー区切り文字
UNIX では /。 OS/2 および Windows プラットフォームでは \。 表の中では、Windows または OS/2 あるいはその両方でのみ使用可能なディレクトリー以外は、 UNIX の区切り文字が使用されます。

ファイル拡張子
拡張子が 1 つしか存在しない表にあるサンプルに提供されます。

サンプル・ソース・コードへのリンク
サンプル表のいくつか (すべてではない) のプログラムに提供されます。

組み込み SQL を含むプログラム
このプログラムは、プリコンパイルが必要です。 REXX 組み込み SQL プログラムは、 プログラムの実行時に組み込み SQL ステートメントが解釈されるので例外になります。

IBM COBOL サンプル
AIX、OS/2、および Windows 32 ビットのオペレーティング・システムだけで、 cobol サブディレクトリーに提供されます。

Micro Focus Cobol サンプル
AIX、HP-UX、OS/2、Solaris Operating Environment、 および Windows 32 ビットのオペレーティング・システムだけで、 cobol_mf サブディレクトリーに提供されます。

Java サンプル
Java UDF に加えて、 Java データベース・コネクティビティー (JDBC) アプレット、アプリケーション、 およびストアード・プロシージャー、Java Embedded SQL (SQLJ) アプレット、 アプリケーション、およびストアード・プロシージャー。 Java サンプルは、サポートされるすべての DB2 プラットフォーム上で使用可能です。

REXX サンプル
AIX、OS/2、および Windows NT オペレーティング・システムだけで提供されます。

CLP サンプル
SQL ステートメントを実行するコマンド行プロセッサーのスクリプトです。

OLE サンプル
Microsoft Visual Basic および Microsoft Visual C++ のオブジェクトのリンクと埋め込み (OLE) のためのサンプルで、 Windows 32 ビット・オペレーティング・システム上でのみ提供されます。

ADO、RDO、および MTS サンプル
Microsoft Visual Basic および Microsoft Visual C++ の ActiveX Data Object サンプル、 および Microsoft Visual Basic の Remote Data Objects と Microsoft Transaction Server サンプルで、 Windows 32 ビット・オペレーティング・システム上でのみ提供されます。

ユーザー出口サンプル
データベース・ログ・ファイルを保存し検索するのに使用する、 ログ管理ユーザー出口プログラムです。 ファイルは、.c 拡張子を付けて名前変更し、 C 言語プログラムとしてコンパイルしなければなりません。

サンプル・プログラムは、DB2 がインストールされているディレクトリーの samples サブディレクトリーに入っています。 サポートされている言語ごとにサブディレクトリーが 1 つずつ作成されます。 以下の例では、 サポートされている各プラットフォーム用に C または C++ で作成されたサンプルがある場所を探す方法を示しています。

サンプル・プログラム・ディレクトリーは、たいていのプラットフォームでは一般に読み取り専用です。 サンプル・プログラムは、変更または作成する前に、 ユーザーの作業ディレクトリーにコピーしてください。

組み込み SQL なしの DB2 API サンプル


表 3. 組み込み SQL なしの DB2 API サンプル・プログラム
サンプル・プログラム 組み込み API
backrest

C: backrest.c

  • sqlbftcq - 表スペース・コンテナー照会の取り出し
  • sqlbstsc - 表スペース・コンテナーの設定
  • sqlfudb - データベース構成の更新
  • sqlubkp - データベースのバックアップ
  • sqluroll - データベースのロールフォワード
  • sqlurst - データベースの復元

checkerr

COBOL: checkerr.cbl

  • sqlaintp - エラー・メッセージの入手
  • sqlogstt - SQLSTATE メッセージの入手

cli_info

C: cli_info.c

  • sqleqryi - クライアント情報の照会
  • sqleseti - クライアント情報の設定

client

C: client.c

C++: client.C

COBOL: client.cbl

  • sqleqryc - クライアントの照会
  • sqlesetc - クライアントの設定

d_dbconf

C: d_dbconf.c

COBOL: d_dbconf.cbl

  • sqleatin - 接続
  • sqledtin - 切り離し
  • sqlfddb - データベース構成デフォルト値の入手

d_dbmcon

C: d_dbmcon.c

COBOL: d_dbmcon.cbl

  • sqleatin - 接続
  • sqledtin - 切り離し
  • sqlfdsys - データベース・マネージャー構成デフォルト値の入手

db_udcs

C: db_udcs.c

COBOL: db_udcs.cbl

  • sqleatin - 接続
  • sqlecrea - データベースの作成
  • sqledrpd - データベースの除去

db2mon

C: db2mon.c

  • sqleatin - 接続
  • sqlmon - モニター・スイッチの入手 / 更新
  • sqlmonss - スナップショットの入手
  • sqlmonsz - sqlmonss() 出力バッファーに必要なサイズの見積もり
  • sqlmrset - モニターのリセット

dbcat

C: dbcat.c

COBOL: dbcat.cbl

  • sqlecadb - データベースのカタログ化
  • sqledcls - データベース・ディレクトリー・スキャンのクローズ
  • sqledgne - 次のデータベース・ディレクトリー・エントリーの入手
  • sqledosd - データベース・ディレクトリー・スキャンのオープン
  • sqleuncd - データベースのアンカタログ

dbcmt

C: dbcmt.c

COBOL: dbcmt.cbl

  • sqledcgd - データベースのコメントの変更
  • sqledcls - データベース・ディレクトリー・スキャンのクローズ
  • sqledgne - 次のデータベース・ディレクトリー・エントリーの入手
  • sqledosd - データベース・ディレクトリー・スキャンのオープン
  • sqleisig - シグナル・ハンドラーのインストール

dbconf

C: dbconf.c

COBOL: dbconf.cbl

  • sqleatin - 接続
  • sqlecrea - データベースの作成
  • sqledrpd - データベースの除去
  • sqlfrdb - データベース構成のリセット
  • sqlfudb - データベース構成の更新
  • sqlfxdb - データベース構成の入手

dbinst

C: dbinst.c

COBOL: dbinst.cbl

  • sqleatcp - 接続およびパスワードの変更
  • sqleatin - 接続
  • sqledtin - 切り離し
  • sqlegins - インスタンス

dbmconf

C: dbmconf.c

COBOL: dbmconf.cbl

  • sqleatin - 接続
  • sqledtin - 切り離し
  • sqlfrsys - データベース・マネージャー構成のリセット
  • sqlfusys - データベース・マネージャー構成の更新
  • sqlfxsys - データベース・マネージャー構成の入手

dbsnap

C: dbsnap.c

COBOL: dbsnap.cbl

  • sqleatin - 接続
  • sqlmonss - スナップショットの入手

dbstart

C: dbstart.c

COBOL: dbstart.cbl

  • sqlepstart - データベース・マネージャーの開始

dbstop

C: dbstop.c

COBOL: dbstop.cbl

  • sqlefrce - アプリケーションの強制
  • sqlepstp - データベース・マネージャーの停止

dcscat

C: dcscat.c

COBOL: dcscat.cbl

  • sqlegdad - DCS データベースのカタログ化
  • sqlegdcl - DCS ディレクトリー・スキャンのクローズ
  • sqlegdel - DCS データベースのアンカタログ
  • sqlegdge - データベースの DCS ディレクトリー・エントリーの入手
  • sqlegdgt - DCS ディレクトリー・エントリーの入手
  • sqlegdsc - DCS ディレクトリー・スキャンのオープン

dmscont

C: dmscont.c

  • sqleatin - 接続
  • sqlecrea - データベースの作成
  • sqledrpd - データベースの除去

ebcdicdb

C: ebcdicdb.c

COBOL: ebcdicdb.cbl

  • sqleatin - 接続
  • sqlecrea - データベースの作成
  • sqledrpd - データベースの除去

migrate

C: migrate.c

COBOL: migrate.cbl

  • sqlemgdb - データベースの移行

monreset

C: monreset.c

COBOL: monreset.cbl

  • sqleatin - 接続
  • sqlmrset - モニターのリセット

monsz

C: monsz.c

COBOL: monsz.cbl

  • sqleatin - 接続
  • sqlmonss - スナップショットの入手
  • sqlmonsz - sqlmonss() 出力バッファーに必要なサイズの見積もり

nodecat

C: nodecat.c

COBOL: nodecat.cbl

  • sqlectnd - ノードのカタログ化
  • sqlencls - ノード・ディレクトリー・スキャンのクローズ
  • sqlengne - 次のノード・ディレクトリー・エントリーの入手
  • sqlenops - ノード・ディレクトリー・スキャンのオープン
  • sqleuncn - ノードのアンカタログ

restart

C: restart.c

COBOL: restart.cbl

  • sqlerstd - データベースの再始動

setact

C: setact.c

COBOL: setact.cbl

  • sqlesact - 会計ストリングの設定

setrundg

C: setrundg.c

  • sqlesdeg - 実行時間の程度の設定

sws

C: sws.c

COBOL: sws.cbl

  • sqleatin - 接続
  • sqlmon - モニター・スイッチの入手 / 更新

utilapi

C: utilapi.c

C++: utilapi.C

  • sqlaintp - エラー・メッセージの入手
  • sqlogstt - SQLSTATE メッセージの入手

DB2 API 組み込み SQL サンプル


表 4. DB2 API 組み込み SQL サンプル・プログラム
サンプル・プログラム 組み込み API
asynrlog

C: asynrlog.sqc

  • sqlurlog - 非同期読み取りログ

autocfg

C: autocfg.sqc

C++: autocfg.sqC

  • db2AutoConfig -- 自動構成
  • db2AutoConfigMemory -- 自動構成の空きメモリー
  • sqlfudb -- データベース構成の更新
  • sqlfusys -- データベース・マネージャー構成の更新
  • sqlesetc -- クライアントの設定
  • sqlaintp -- SQLCA メッセージ

dbauth

C: dbauth.sqc

COBOL: dbauth.sqb

  • sqluadau - 許可の入手

dbstat

C: dbstat.sqc

COBOL: dbstat.sqb

  • sqlureot - 表の再編成
  • sqlustat - Runstats

expsamp

C: expsamp.sqc

COBOL: expsamp.sqb

  • sqluexpr - エクスポート
  • sqluimpr - インポート

impexp

C: impexp.sqc

COBOL: impexp.sqb

  • sqluexpr - エクスポート
  • sqluimpr - インポート

loadqry

C: loadqry.sqc

  • db2LoadQuery - 照会のロード

makeapi

C: makeapi.sqc

  • sqlabndx - バインド
  • sqlaprep - プログラムのプリコンパイル
  • sqlepstp - データベース・マネージャーの停止
  • sqlepstr - データベース・マネージャーの開始

rebind

C: rebind.sqc

COBOL: rebind.sqb

  • sqlarbnd - 再バインド

rechist

C: rechist.sqc

  • sqlubkp - データベースのバックアップ
  • sqluhcls - 回復活動記録ファイル・スキャンのクローズ
  • sqluhgne - 次の回復活動記録ファイル・エントリーの入手
  • sqluhops - 回復活動記録ファイル・スキャンのオープン
  • sqluhprn - 回復活動記録ファイルの枝取り
  • sqluhupd - 回復活動記録ファイルの更新

tabscont

C: tabscont.sqc

COBOL: tabscont.sqb

  • sqlbctcq - 表スペース・コンテナー照会のクローズ
  • sqlbftcq - 表スペース・コンテナー照会の取り出し
  • sqlbotcq - 表スペース・コンテナー照会のオープン
  • sqlbtcq - 表スペース・コンテナー照会
  • sqlefmem - 空きメモリー

tabspace

C: tabspace.sqc

COBOL: tabspace.sqb

  • sqlbctsq - 表スペース照会のクローズ
  • sqlbftpq - 表スペース照会の取り出し
  • sqlbgtss - 表スペース統計の入手
  • sqlbmtsq - 表スペース照会
  • sqlbotsq - 表スペース照会のオープン
  • sqlbstpq - 単一表スペース照会
  • sqlefmem - 空きメモリー

tload

C: tload.sqc

COBOL: tload.sqb

  • sqluexpr - エクスポート
  • sqluload - ロード
  • sqluvqdp - 表の表スペースの静止

tspace

C: tspace.sqc

COBOL: tspace.sqb

  • sqlbctcq - 表スペース・コンテナー照会のクローズ
  • sqlbctsq - 表スペース照会のクローズ
  • sqlbftcq - 表スペース・コンテナー照会の取り出し
  • sqlbftpq - 表スペース照会の取り出し
  • sqlbgtss - 表スペース統計の入手
  • sqlbmtsq - 表スペース照会
  • sqlbotcq - 表スペース・コンテナー照会のオープン
  • sqlbotsq - 表スペース照会のオープン
  • sqlbstpq - 単一表スペース照会
  • sqlbstsc - 表スペース・コンテナーの設定
  • sqlbtcq - 表スペース・コンテナー照会
  • sqlefmem - 空きメモリー

utilemb

C: utilemb.sqc

C++: utilemb.C

  • sqlaintp - エラー・メッセージの入手
  • sqlogstt - SQLSTATE メッセージの入手

DB2 API なしの組み込み SQL サンプル


表 5. DB2 API なしの組み込み SQL サンプル・プログラム
サンプル・プログラム名 プログラムの説明
adhoc 動的 SQL および SQLDA 構造を使用して SQL コマンドを対話式に処理する方法を示します。 SQL コマンドはユーザーによって入力され、SQL コマンドに応じた出力が返されます。

C: adhoc.sqc

advsql CASE、CAST、およびスカラー全選択などの拡張 SQL 式の使用例を示します。

C: advsql.sqc ; COBOL: advsql.sqb

blobfile 2 進ラージ・オブジェクト (BLOB) の操作例を、 BLOB 値をサンプル・データベースから読み取ってそれをファイル内に置くことにより示します。 この内容は、外部ビューアーを使用して表示できます。

C: blobfile.sqc

columns 動的 SQL を使用して処理されるカーソルの使用例を示します。 このプログラムは、指定のスキーマ名の下にある SYSCAT.COLUMNS から結果セットをリストします。

C: columns.sqc

cursor 静的 SQL を使用するカーソルの使用例を示します。

C: cursor.sqc ; C++: cursor.sqC ; COBOL: cursor.sqb

delet データベースから項目を削除する静的 SQL の使用例を示します。

C: delet.sqc ; COBOL: delet.sqb

dynamic 動的 SQL を使用するカーソルの使用例を示します。

C: dynamic.sqc

joinsql 拡張 SQL 結合式の使用例を示します。

C: joinsql.sqc ; COBOL: joinsql.sqb

largevol 区分化された環境で並列照会処理を行う例、 および結果セットの組み合わせを自動化するための NFS ファイル・システムの使用例を示します。 AIX でのみ使用可能です。

C: largevol.sqc

lobeval LOB ロケーターの使用例を示し、実際の LOB データの評価を遅らせます。

C: lobeval.sqc ; COBOL: lobeval.sqb

lobfile LOB ファイル・ハンドルの使用例を示します。

C: lobfile.sqc ; COBOL: lobfile.sqb

lobloc LOB ロケーターの使用例を示します。

C: lobloc.sqc ; COBOL: lobloc.sqb

lobval LOB の使用例を示します。

C: lobval.sqc

openftch 静的 SQL を使用した行の取り出し、更新、および削除について示します。

C: openftch.sqc ; COBOL: openftch.sqb

recursql 拡張 SQL 再帰的照会の使用例を示します。

C: recursql.sqc

sampudf 表エントリーを修正するための、 ユーザー定義タイプ (UDT) およびユーザー定義関数 (UDF) の使用例を示します。 このプログラムで宣言される UDF は、ソース UDF です。

C: sampudf.sqc

spclient spserver 共用ライブラリー内のストアード・プロシージャーを呼び出すクライアント・アプリケーション。

C: spclient.sqc ; C++: spclient.sqC

spcreate.db2 spserver プログラムによって作成されたストアード・プロシージャーを登録するための CREATE PROCEDURE ステートメントを含む CLP スクリプト。

C/C++: spcreate.db2

spdrop.db2 spserver プログラムによって作成されたストアード・プロシージャーの登録を解除するために必要な DROP PROCEDURE ステートメントを含む CLP スクリプト。

C/C++: spdrop.db2

spserver ストアード・プロシージャーのデモを示すサーバー・プログラム。 クライアント・プログラムは spclient です。

C: spserver.sqc ; C++: spserver.sqC

static 情報を検索する静的 SQL を示します。

C: static.sqc ; C++: static.sqC ; COBOL: static.sqb

tabsql 拡張 SQL 表式の使用例を示します。

C: tabsql.sqc ; COBOL: tabsql.sqb

tbdefine 表の作成方法および除去方法を示します。

C: tbdefine.sqc

thdsrver スレッドの作成と管理用の POSIX スレッド API の使用例を示します。 プログラムは、コンテキストのプールを保守します。 generate_work 関数がメインから実行され、 作業スレッドが実行する動的 SQL ステートメントを作成します。 コンテキストが使用可能になったとき、 スレッドが作成され、指定された作業を行うためにディスパッチされます。 生成された作業は、 sample データベースの STAFF 表または EMPLOYEE 表のどちらかからの項目を削除するステートメントで成っています。 このプログラムは、UNIX プラットフォームでのみ使用可能です。

C: thdsrver.sqc ; C++: thdsrver.sqC

trigsql 拡張 SQL トリガーおよび制約の使用例を示します。

C: trigsql.sqc ; COBOL: trigsql.sqb

udfcli udfsrv プログラムによって作成されるユーザー定義関数 (UDF) の呼び出しを例示し、 sample データベースの表にアクセスするためにサーバー上に保管されます。

C: udfcli.sqc ; C++: udfcli.sqC

updat データベースを更新する静的 SQL の使用例を示します。

C: updat.sqc ; C++: updat.sqC ; COBOL: updat.sqb

varinp パラメーター・マーカーを使用した組み込み動的 SQL ステートメント呼び出しへの変数入力を示します。

C: varinp.sqc ; COBOL: varinp.sqb

ユーザー定義関数のサンプル


表 6. ユーザー定義関数のサンプル・プログラム
サンプル・プログラム名 プログラムの説明
DB2Udf.java
整数除算、文字ラージ・オブジェクト (CLOB) の操作、 および Java インスタンス変数の使用を含む複数のタスクの実例を示す Java UDF。
udfsrv.c
ユーザー定義関数 ScalarUDF でライブラリーを作成し、 サンプル・データベース表にアクセスします。
UDFsrv.java
Java ユーザー定義関数 (UDF) の使用例を示します。

DB2 コール・レベル・インターフェースのサンプル


表 7. DB2 ユニバーサル・データベースのサンプル CLI プログラム
サンプル・プログラム名 プログラムの説明
共通ユーティリティー・ファイル
utilcli.c
CLI サンプルで使用されるユーティリティー関数。
utilapi.c
DB2 API を呼び出すユーティリティー関数。
アプリケーション・レベル - DB2 と CLI のアプリケーション・レベルを扱うサンプル。
apinfo.c
アプリケーション・レベル情報の入手および設定方法。
aphndls.c
ハンドルの割り当ておよび解放方法。
apsqlca.c
SQLCA データの処理方法。
インストール・イメージ・レベル - DB2 と CLI のインストール・イメージ・レベルを扱うサンプル。
ilinfo.c
インストール・レベル情報 (CLI ドライバーのバージョンなど) の入手および設定方法。
インスタンス・レベル - DB2 と CLI のインスタンス・レベルを扱うサンプル。
ininfo.c
インスタンス・レベル情報の入手および設定方法。
データベース・レベル - DB2 内のデータベース・オブジェクトを扱うサンプル。
dbconn.c
データベースからの接続および切断方法。
dbinfo.c
データベース・レベルの情報の入手および設定方法。
dbmconn.c
複数のデータベースからの接続および切断方法 (DB2 API を使用して 2 番目のデータベースを作成および除去する)。
dbmuse.c
複数のデータベースとのトランザクションの実行方法 (DB2 API を使用して 2 番目のデータベースを作成および除去する)。
dbnative.c
ODBC エスケープ文節を含むステートメントを、 データ・ソース特有の形式に変換する方法。
dbuse.c
データベース・オブジェクトの処理方法。
dbusemx.sqc
組み込み SQL とともに単一データベースを使用する方法。
表レベル - DB2 内の表オブジェクトを扱うサンプル。
tbconstr.c
表の制約の処理方法。
tbconstr.c
表の作成、更新、および除去方法。
tbinfo.c
表レベルの情報の入手および設定方法。
tbmod.c
表内の情報の修正方法。
tbread.c
表内の情報の読み取り方法。
データ・タイプ・レベル - データ・タイプを扱うサンプル。
dtinfo.c
データ・タイプに関する情報の入手方法。
dtlob.c
LOB データの読み取りおよび書き込み方法。
dtudt.c
ユーザー定義特殊タイプの作成、使用、および除去方法。
UDF レベル - ユーザー定義関数を示すサンプル。
udfcli.c
udfsrv.c 内のユーザー定義関数を呼び出すクライアント・アプリケーション。
udfsrv.c
udfcli.c サンプルによって呼び出されるユーザー定義関数 ScalarUDF。
ストアード・プロシージャー・レベル - CLI 内のストアード・プロシージャーを示すサンプル。
spcreate.db2 CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
spdrop.db2 カタログからストアード・プロシージャーを除去するための CLP スクリプト。
spclient.c
spserver.c 内で宣言されるサーバー関数を呼び出すために使用されるクライアント・プログラム。
spserver.c
サーバー上で構築および実行されるストアード・プロシージャー関数。
spcall.c
ストアード・プロシージャーを呼び出すためのプログラム。
注:samples/cli ディレクトリー内には、次のファイルもあります。
  • README - すべてのサンプル・ファイルのリスト
  • makefile - すべてのファイルの makefile
  • アプリケーションおよびストアード・プロシージャー用のビルド・ファイル

Java サンプル


表 8. Java データベース・コネクティビティー (JDBC) サンプル・プログラム
サンプル・プログラム名 プログラムの説明
DB2Appl.java
呼び出しユーザー特権を使用してサンプル・データベースを照会する、JDBC アプリケーション。
DB2Applt.java
JDBC アプレット・ドライバーを使用してデータベースを照会する JDBC アプレット。

DB2Applt.html で指定されるユーザー名、 パスワード、サーバー、およびポート番号パラメーターを使用します。

DB2Applt.html
DB2Applt アプレット・サンプル・プログラムを組み込む HTML ファイル。 このファイルは、サーバーおよびユーザー情報でカスタマイズする必要があります。
DB2UdCli.java
Java ユーザー定義関数、 DB2Udf を呼び出す Java クライアント・アプリケーション。
Dynamic.java
動的 SQL を使うカーソルの使用例を示します。
MRSPcli.java
これは、サーバー・プログラム MRSPsrv を呼び出すクライアント・プログラムです。 このプログラムは、Java ストアード・プロシージャーから戻される複数の結果セットを示します。
MRSPsrv.java
これは、クライアント・プログラム MRSPcli が呼び出すサーバー・プログラムです。 このプログラムは、Java ストアード・プロシージャーから戻される複数の結果セットを示します。
Outcli.java
SQLJ ストアード・プロシージャー、 Outsrv を呼び出す Java クライアント・アプリケーション。
PluginEx.java
新しいメニュー項目およびツールバー・ボタンを、 DB2 Web コントロール・センターに追加する Java プログラム。
Spclient.java
Spserver ストアード・プロシージャー・クラス内の PARAMETER STYLE JAVA ストアード・プロシージャーを呼び出す JDBC クライアント・アプリケーション。
Spcreate.db2
ストアード・プロシージャーとして Spserver クラス内に含まれているメソッドを登録するための CREATE PROCEDURE ステートメントを含む CLP スクリプト。
Spdrop.db2
Spserver クラス内に含まれているストアード・プロシージャーの登録を解除するために必要な DROP PROCEDURE ステートメントを含む CLP スクリプト。
Spserver.java
PARAMETER STYLE JAVA ストアード・プロシージャーのデモを示す JDBC プログラム。 クライアント・プログラムは Spclient.java です。
UDFcli.java
Java ユーザー定義関数ライブラリー UDFsrv にある関数を呼び出す、 JDBC クライアント・アプリケーション。
UseThrds.java
SQL ステートメントを非同期で実行するためにスレッドを使用する方法を示します (CLI サンプル async.c の JDBC バージョン)。
V5SpCli.java
DB2GENERAL ストアード・プロシージャー、 V5Stp.java を呼び出す Java クライアント・アプリケーション。
V5Stp.java
サーバー上の EMPLOYEE 表を更新し、 クライアントに新しい給与および給与計算情報を戻す DB2GENERAL ストアード・プロシージャーのデモを示します。 クライアント・プログラムは V5SpCli.java です。
Varinp.java
パラメーター・マーカーを使用した組み込み動的 SQL ステートメント呼び出しへの変数入力を示します。

表 9. Java Embedded SQL (SQLJ) サンプル・プログラム
サンプル・プログラム名 プログラムの説明
App.sqlj
サンプル・データベースの EMPLOYEE 表からデータを検索し更新するために、 静的 SQL を使用します。
Applt.sqlj
JDBC アプレット・ドライバーを使用してデータベースを照会するアプレット。

Applt.html で指定されるユーザー名、 パスワード、サーバー、およびポート番号パラメーターを使用します。

Applt.html
Applt アプレット・サンプル・プログラムを組み込む HTML ファイル。 このファイルは、サーバーおよびユーザー情報でカスタマイズする必要があります。
Cursor.sqlj
静的 SQL を使用するイテレーターを示します。
OpF_Curs.sqlj
Openftch プログラム用のクラス・ファイル。
Openftch.sqlj
静的 SQL を使用した行の取り出し、更新、および削除について示します。
Outsrv.sqlj
SQLDA 構造を使用するストアード・プロシージャーを示します。 このプログラムは、sample データベースの STAFF 表にある従業員の給与の中央値を SQLDA に記入します。 データベースの処理 (中央値を求める) 後、 ストアード・プロシージャーは、 値を記入した SQLDA と SQLCA 状況とを JDBC クライアント・アプリケーション、

Outcli に戻します。

Stclient.sqlj
SQLJ ストアード・プロシージャー・プログラム Stserver によって作成された PARAMETER STYLE JAVA ストアード・プロシージャーを呼び出す SQLJ クライアント・アプリケーション。
Stcreate.db2
ストアード・プロシージャーとして Stserver クラス内に含まれているメソッドを登録するための CREATE PROCEDURE ステートメントを含む CLP スクリプト。
Stdrop.db2
Stserver クラス内に含まれているストアード・プロシージャーの登録を解除するために必要な DROP PROCEDURE ステートメントを含む CLP スクリプト。
Stserver.sqlj
PARAMETER STYLE JAVA ストアード・プロシージャーのデモを示す SQLJ プログラム。 クライアント・プログラムは Stclient.sqlj です。
Static.sqlj
静的 SQL を使用して情報を検索します。
Stp.sqlj
サーバー上の EMPLOYEE 表を更新し、 JDBC クライアント・プログラム StpCli に新しい給料および給与計算情報を返すストアード・プロシージャー。
UDFclie.sqlj
Java ユーザー定義関数ライブラリー UDFsrv から関数を呼び出す、 クライアント・アプリケーション。
Updat.sqlj
静的 SQL を使用してデータベースを更新します。

SQL プロシージャーのサンプル


表 10. SQL プロシージャーのサンプル・プログラム
サンプル・プログラム名 プログラムの説明
basecase.db2 UPDATE_SALARY プロシージャーは、 "sample" データベースの "staff" 表内の "empno" の IN パラメーターによって識別される従業員の給料を上昇させます。 このプロシージャーは、 "rating" の IN パラメーターを使用する CASE ステートメントによって上昇率を判別します。
basecase.sqc UPDATE_SALARY プロシージャーを呼び出します。
baseif.db2 UPDATE_SALARY_IF プロシージャーは、 "sample" データベースの "staff" 表内の "empno" の IN パラメーターによって識別される従業員の給料を上昇させます。 このプロシージャーは、 "rating" の IN パラメーターを使用する IF ステートメントによって上昇率を判別します。
baseif.sqc UPDATE_SALARY_IF プロシージャーを呼び出します。
dynamic.db2 CREATE_DEPT_TABLE プロシージャーは、動的 DDL を使用して新しい表を作成します。 表の名前は、このプロシージャーの IN パラメーターの値に基づいています。
dynamic.sqc CREATE_DEPT_TABLE プロシージャーを呼び出します。
iterate.db2 ITERATOR プロシージャーは、FETCH ループを使用して、 "department" 表からデータを検索します。 "deptno" 列の値が 'D11' でない場合、 修正されたデータが "department" 表の中に挿入されます。 "deptno" 列が 'D11' である場合、 ITERATE ステートメントは、LOOP ステートメントの冒頭に制御の流れを渡します。
iterate.sqc ITERATOR プロシージャーを呼び出します。
leave.db2 LEAVE_LOOP プロシージャーは、 "not_found" 条件ハンドラーが LEAVE ステートメントを呼び出す前に LOOP ステートメント内で実行される FETCH 操作の数をカウントします。 LEAVE ステートメントは、 制御の流れがループから出て、ストアード・プロシージャーを完了するようにします。
leave.sqc LEAVE_LOOP プロシージャーを呼び出します。
loop.db2 LOOP_UNTIL_SPACE プロシージャーは、 カーソルが "midinit" 列のスペース (' ') 値を持つ行を検索するまで、 LOOP ステートメント内で実行される FETCH 操作の数をカウントします。 LOOP ステートメントは、 制御の流れがループから出て、ストアード・プロシージャーを完了するようにします。
loop.sqc LOOP_UNTIL_SPACE プロシージャーを呼び出します。
nestcase.db2 BUMP_SALARY プロシージャーは、 ネストされた CASE ステートメントを使用して、 "sample" データベースの "staff" 表から部署の IN パラメーターによって識別される部署内の従業員の給料を上昇させます。
nestcase.sqc BUMP_SALARY プロシージャーを呼び出します。
nestif.db2 BUMP_SALARY_IF プロシージャーは、 ネストされた IF ステートメントを使用して、 "sample" データベースの "staff" 表から部署の IN パラメーターによって識別される部署内の従業員の給料を上昇させます。
nestif.sqc BUMP_SALARY_IF プロシージャーを呼び出します。
repeat.db2 REPEAT_STMT プロシージャーは、 カーソルが行を検索できなくなるまで、繰り返しステートメント内で実行される FETCH 操作の数をカウントします。 条件ハンドラーは、制御の流れが繰り返しループから出て、 ストアード・プロシージャーを完了するようにします。
repeat.sqc REPEAT_STMT プロシージャーを呼び出します。
rsultset.c MEDIAN_RESULT_SET プロシージャーを呼び出し、 給与の中央値を表示し、SQL プロシージャーによって生成された結果セットを表示します。 このクライアントは、結果セットを扱える CLI API で書き出されます。
rsultset.db2 MEDIAN_RESULT_SET プロシージャーは、 "sample" データベースの "staff" 表から "dept" の IN パラメーターによって識別される部署内の従業員の給与の中央値を入手します。 給与の中央値は、給料の OUT パラメーターに割り当てられ、 "rsultset" クライアントに戻されます。 次に、このプロシージャーは、 WITH RETURN カーソルをオープンし、 中央値よりも高い給料の従業員の結果セットを戻します。 このプロシージャーは、クライアントに結果セットを戻します。
spserver.db2 この CLP スクリプト内の SQL プロシージャーは、 基本的なエラー処理、ネストされたストアード・プロシージャーの呼び出し、 クライアント・アプリケーションまたは呼び出し側アプリケーションに対して結果セットを戻することについてのデモを示します。 CLI サンプル・ディレクトリーで、"spcall" アプリケーションを使用してプロシージャーを呼び出すことができます。 C および CPP サンプル・ディレクトリーで、 "spclient" アプリケーションを使用して、結果セットを戻さないプロシージャーを呼び出すこともできます。
whiles.db2 DEPT_MEDIAN プロシージャーは、 "sample" データベースの "staff" 表から "dept" の IN パラメーターによって識別される部署内の従業員の給与の中央値を入手します。 給与の中央値は、給料の OUT パラメーターに割り当てられ、 "whiles" クライアントに戻されます。 次に、whiles クライアントは、給与の中央値を印刷します。
whiles.sqc DEPT_MEDIAN プロシージャーを呼び出します。

ADO、RDO、および MTS サンプル


表 11. ADO、RDO、および MTS サンプル
サンプル・プログラム名 プログラムの説明
Bank.vbp 顧客アカウントでトランザクションを実行する機能を使用して、 銀行の支店に関するデータを作成し、保守する RDO プログラム。 このプログラムには、アプリケーションがデータを格納するために必要な表を作成する DDL が入っているので、 ユーザーが指定する任意のデータベースに使用できます。
Blob.vbp この ADO プログラムは、BLOB データの検索について示します。 sample データベースの emp_photo 表から、 ピクチャーを検索し、表示します。 また、このプログラムは emp_photo 表のイメージを、 ローカル・ファイルからのイメージに置き換えることができます。
BLOBAccess.dsw このサンプルは、Microsoft Visual C++ を使用した ADO/Blob 強調表示アクセスを示します。 これは Visual Basic サンプル、Blob.vbp と類似しています。 BLOB サンプルには次の 2 つのメイン関数があります。

  1. サンプル・データベースから BLOB を読み取り、画面に表示する
  2. ファイルから BLOB を読み取り、データベースに挿入する (インポート)
Connect.vbp この ADO プログラムは、sample データベースに対して接続オブジェクトを作成し、 接続を確立します。 いったん完了すると、プログラムは切断され、終了します。
Commit.vbp このアプリケーションは、 ADO の自動確定 / 手動確定機能の使用例を示します。 プログラムは、従業員番号および名前を、 sample データベースの EMPLOYEE 表で照会します。 ユーザーは、自動確定または手動確定モードのどちらでデータベースに接続するか、 オプションで選択できます。 自動確定モードでは、ユーザーがレコード上で行うすべての変更は、 データベースで自動的に更新されます。 手動確定モードでは、ユーザーはトランザクションを開始してから、 変更を行う必要があります。 トランザクションが開始してから行われた変更は、 ロールバックを実行すれば取り消すことができます。 トランザクションをコミットすることによって、変更を永続的に保管できます。 プログラムを自動的に終了すると、変更がロールバックされます。
db2com.vbp この Visual Basic プロジェクトは、Microsoft Transaction Server を使用した、 データベースの更新例を示します。 また、クライアント・プログラム db2mts.vbp が使用するサーバー DLL を作成します。 Visual Basic プロジェクトには、以下の 4 つのクラス・モジュールがあります。
  • UpdateNumberColumn.cls
  • UpdateRow.cls
  • UpdateStringColumn.cls
  • VerifyUpdate.cls
このプログラムの場合、 一時表 DB2MTSsample データベースに作成されます。
db2mts.vbp これは、Microsoft Transaction Server を使用して、 db2com.vbp から作成されたサーバー DLL を呼び出す、 クライアント・プログラム用の Visual Basic プロジェクトです。
Select-Update.vbp この ADO プログラムは、Connect.vbp と同じ機能を実行しますが、 GUI インターフェースも提供しています。 このインターフェースを使用して、ユーザーは sample データベースの ORG 表に保管されたデータを表示、 更新、および削除することができます。
Sample.vbp この Visual Basic プロジェクトは Keyset カーソルを使用し、ADO を経由して、 sample データベース中のすべてのデータにグラフィカル・ユーザー・インターフェースを提供します。
VarCHAR.dsp ADO を使用してテキスト・フィールドとして VarChar にアクセスする、 Visual C++ プログラム。 グラフィカル・ユーザー・インターフェースを提供するので、 ユーザーは sample データベースの ORG 表のデータを表示および更新できます。

オブジェクトのリンクと埋め込みのサンプル


表 12. オブジェクトのリンクと埋め込み (OLE) サンプル・プログラム
サンプル・プログラム名 プログラムの説明
sales Microsoft Excel スプレッドシート上でのロールアップ照会を示します (Visual Basic で実現)。
names ロータス ノーツ・アドレス・ブックを照会します (Visual Basic で実現)。
inbox OLE/メッセージ機能を使用する Microsoft Exchange インボックス E メール・メッセージを照会します (Visual Basic で実現)。
invoice Microsoft Word インボイス文書を E メール接続として送信する OLE オートメーション・ユーザー定義関数 (Visual Basic で実現)。
bcounter インスタンス変数を使用したスクラッチパッドのデモを示す OLE オートメーション・ユーザー定義関数 (Visual Basic で実現)。
ccounter カウンター OLE オートメーション・ユーザー定義関数 (Visual C++ で実現)。
salarysrv sample データベースの STAFF 表の給与の中央値を計算する OLE オートメーション・ストアード・プロシージャー (Visual Basic で実現)。
salarycltvc Visual Basic ストアード・プロシージャー salarysrv を呼び出す Visual C++ 組み込み SQL サンプル。
salarycltvb Visual Basic ストアード・プロシージャー salarysrv を呼び出す Visual Basic DB2 CLI サンプル。
testcli ストアード・プロシージャー tstsrv を呼び出す OLE オートメーション組み込み SQL クライアント・アプリケーション (Visual C++ で実現)。
tstsrv クライアントとストアード・プロシージャーの間での各種の受け渡しのデモを示す OLE オートメーション・ストアード・プロシージャー (Visual C++ で実現)。

表 13. オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数
サンプル・プログラム名 プログラムの説明
jet.db2 Microsoft.Jet.OLEDB.3.51 Provider
mapi.db2 INTERSOLV Connect OLE DB for MAPI
msdaora.db2 Microsoft OLE DB Provider (Oracle 用)
msdasql.db2 Microsoft OLE DB Provider (ODBC ドライバー用)
msidxs.db2 Microsoft OLE DB Index Server Provider
notes.db2 INTERSOLV Connect OLE DB (ノーツ用)
sampprov.db2 Microsoft OLE DB Sample Provider
sqloledb.db2 Microsoft OLE DB Provider (SQL サーバー用)

コマンド行プロセッサーのサンプル


表 14. コマンド行プロセッサー (CLP) サンプル・プログラム
サンプル・ファイル名 ファイルの説明
const.db2 CHECK CONSTRAINT 節がある表を作成します。
cte.db2 共通表式を示します。 この拡張 SQL ステートメントの例を示す同等のサンプル・プログラムは、 tabsql です。
flt.db2 再帰的照会を示します。 この拡張 SQL ステートメントの例を示す同等のサンプル・プログラムは、 recursql です。
join.db2 表の外部結合を示します。 この拡張 SQL ステートメントの例を示す同等のサンプル・プログラムは、 joinsql です。
stock.db2 トリガーの使用例を示します。 この拡張 SQL ステートメントの例を示す同等のサンプル・プログラムは、 trigsql です。
testdata.db2 ランダムに生成されるテスト・データを表に入れるための RAND() および TRANSLATE() などの DB2 組み込み関数を使用します。
thaisort.db2 このスクリプトは、タイ語を使用するユーザー専用です。 タイ語の発音順のソートでは、 主な母音と子音の事前ソートとスワップが必要になります。 同じように、正確なソート順でデータを表示するために事後ソートも必要になります。 ファイルでタイ語のソートを実現するには、 事前ソートと事後ソートを行う UDF 関数を作成し、表を作成します。 次いで、表データをソートするためにその表に対して関数を呼び出します。 このプログラムを実行するには、最初に C ソース・ファイル udf.c からユーザー定義関数プログラム udf を作成しなければなりません。

ログ管理ユーザー出口サンプル


表 15. ログ管理ユーザー出口サンプル・プログラム
サンプル・ファイル名 ファイルの説明
db2uext2.cadsm これは、データベース・ログ・ファイルを保存し検索するために、 ADSTAR DSM (ADSM) API を使用するサンプル・ユーザー出口です。 このサンプルは、 タイム・スタンプと受け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイルに保存) を提供します。 また、問題判別のために、 エラーのタイム・スタンプとエラー分離ストリングを含む呼び出しのエラー証跡も提供します。 これらのオプションは使用不能であることがあります。 このファイルは、db2uext2.c に名前変更し、C プログラムとしてコンパイルしなければなりません。 UNIX および Windows 32 ビット・オペレーティング・システムで使用可能です。 OS/2 版は、db2uexit.cad です。
db2uexit.cad これは、db2uext2.cadsm の OS/2 版です。 このファイルは、db2uexit.c に名前変更し、 C プログラムとしてコンパイルしなければなりません。
db2uext2.cdisk これは、出荷時の特定のプラットフォームに合わせた、 システム・コピー・コマンドを使用するサンプル・ユーザー出口です。 このプログラムは、 タイム・スタンプと受け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイルに保存) を提供します。 また、問題判別のために、 エラーのタイム・スタンプとエラー分離ストリングを含む呼び出しのエラー証跡も提供します。 これらのオプションは使用不能であることがあります。 このファイルは、db2uext2.c に名前変更し、C プログラムとしてコンパイルしなければなりません。 UNIX および Windows 32 ビット・オペレーティング・システムで使用可能です。
db2uext2.ctape これは、出荷時の特定の UNIX プラットフォームに合わせた、 システム・テープ・コマンドを使用するサンプル・ユーザー出口です。 プログラムは、データベース・ログ・ファイルをアーカイブおよび検索します。 システム・テープ・コマンドの制限すべてが、このユーザー出口の制限になります。 このサンプルは、 タイム・スタンプと受け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイルに保存) を提供します。 また、問題判別のために、 エラーのタイム・スタンプとエラー分離ストリングを含む呼び出しのエラー証跡も提供します。 これらのオプションは使用不能であることがあります。 このファイルは、db2uext2.c に名前変更し、C プログラムとしてコンパイルしなければなりません。 UNIX プラットフォームでのみ使用可能です。


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