Download アプリケーション開発ガイド:アプリケーションの構築と実行

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
®
™
IBM DB2 Universal Database
򔻐򗗠򙳰
アプリケーション開発ガイド
アプリケーションの構築および実行
バージョン 8
SC88-9137-00
(英文原典:SC09-4825-00)
®
™
IBM DB2 Universal Database
򔻐򗗠򙳰
アプリケーション開発ガイド
アプリケーションの構築および実行
バージョン 8
SC88-9137-00
(英文原典:SC09-4825-00)
ご注意!
本書および本書で紹介する製品をご使用になる前に、特記事項 に記載されている情報をお読みください。
本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただきます。
http://www.ibm.com/jp/manuals/main/mail.html
なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは
http://www.ibm.com/jp/manuals/
の「ご注文について」をご覧ください。
(URL は、変更になる場合があります)
原 典:
SC09-4825-00
IBM® DB2 Universal Database™
Application Development Guide:
Building and Running Applications
Version 8
発 行:
日本アイ・ビー・エム株式会社
担 当:
ナショナル・ランゲージ・サポート
第1刷 2002.10
この文書では、平成明朝体™W3、平成明朝体™W9、平成角ゴシック体™W3、平成角ゴシック体™W5、および平成角ゴ
シック体™W7を使用しています。この(書体*)は、(財) 日本規格協会と使用契約を締結し使用しているものです。フォ
ントとして無断複製することは禁止されています。
注* 平成明朝体™W3、平成明朝体™W9、平成角ゴシック体™W3、
平成角ゴシック体™W5、平成角ゴシック体™W7
© Copyright International Business Machines Corporation 1993 - 2002. All rights reserved.
© Copyright IBM Japan 2002
目次
本書について .
.
.
.
.
.
.
.
.
.
.
. ix
第 1 部 アプリケーション開発環境 . 1
第 1 章 DB2 サポート . . . . . . .
Application Development Client . . . . .
データベース・マネージャー・インスタンス
DB2 でサポートされるサーバー . . . . .
アプリケーションの作成と実行用として DB2
でサポートされるソフトウェア . . . . .
各プラットフォームでサポートされるソフト
ウェア . . . . . . . . . . . . .
アプリケーションの作成と実行用として
AIX でサポートされるソフトウェア . .
アプリケーションの作成と実行用として
HP-UX でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Linux でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Solaris でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Windows でサポートされるソフトウェア
.
.
.
.
. 9
43
43
44
45
46
47
49
57
. 10
. 10
. 11
. 13
. 15
. 16
第 2 章 セットアップ . . . . . . . .
一般的なセットアップ情報 . . . . . . .
アプリケーション開発環境のセットアップ
データベース・マネージャー構成ファイル
の更新 . . . . . . . . . . . . .
Java 環境のセットアップ. . . . . . .
SQL プロシージャー環境のセットアップ
UNIX . . . . . . . . . . . . . .
UNIX アプリケーション開発環境のセット
アップ . . . . . . . . . . . . .
UNIX 環境変数の設定. . . . . . . .
Java . . . . . . . . . . . . . .
SQL プロシージャー . . . . . . . .
Windows . . . . . . . . . . . . .
Windows アプリケーション開発環境のセッ
トアップ . . . . . . . . . . . .
Java . . . . . . . . . . . . . .
SQL プロシージャー . . . . . . . .
© Copyright IBM Corp. 1993 - 2002
3
3
6
8
サンプル・データベース . . . . . . . .
サンプル・データベースのセットアップ. .
サンプル・データベースの作成. . . . .
ホスト・サーバーまたは AS/400 および
iSeries サーバーでのサンプル・データベー
スの作成 . . . . . . . . . . . .
サンプル・データベースのカタログ . . .
サンプル・データベース・ユーティリティ
ーのバインディング . . . . . . . .
アプリケーションの移行 . . . . . . . .
次に行うこと. . . . . . . . . . . .
19
19
19
21
22
24
25
25
26
27
32
35
35
39
41
第 3 章 サンプル・プログラムおよび関連フ
ァイル . . . . . . . . . . . . . . 59
サンプル・ファイル . . . . . . . . . 59
サンプル・プログラム: 構造と設計 . . . . 65
言語およびアプリケーション・インターフェ
ース別のサンプル・プログラム. . . . . . 73
C/C++ のサンプル . . . . . . . . . 73
DB2 CLI のサンプル . . . . . . . . 76
JDBC のサンプル . . . . . . . . . 78
SQLJ のサンプル . . . . . . . . . 81
Java WebSphere のサンプル . . . . . . 83
Java プラグインのサンプル . . . . . . 83
COBOL のサンプル . . . . . . . . 84
SQL プロシージャーのサンプル . . . . 89
Visual Basic のサンプル . . . . . . . 91
Visual C++ のサンプル . . . . . . . 93
Windows Management Instrumentation のサ
ンプル . . . . . . . . . . . . . 93
オブジェクトのリンクと埋め込み (OLE) の
サンプル . . . . . . . . . . . . 94
オブジェクトのリンクと埋め込みデータベ
ース (OLE DB) 表関数のサンプル . . . 95
コマンド行プロセッサー (CLP) のサンプル 95
REXX のサンプル . . . . . . . . . 96
ログ管理ユーザー出口サンプル. . . . . 98
ビルド・ファイル、makefile、およびエラ
ー・チェック・ユーティリティー . . . . 100
ビルド・ファイル . . . . . . . . . 100
makefile . . . . . . . . . . . . 104
iii
エラー・チェック・ユーティリティー .
. 108
第 2 部 プラットフォーム非依存ア
プリケーションの構築および実行 . 111
第 4 章 Java . . . . . . . . . . .
Java サンプル・プログラム . . . . . .
Java アプレットに関する考慮事項 . . . .
JDBC . . . . . . . . . . . . . .
JDBC アプレットの作成 . . . . . .
JDBC アプリケーションの構築 . . . .
JDBC ルーチンの作成 . . . . . . .
SQLJ . . . . . . . . . . . . . .
SQLJ プログラムの作成. . . . . . .
SQLJ アプレットの作成. . . . . . .
SQLJ アプリケーションの作成 . . . .
SQLJ アプリケーションおよびアプレット
の UNIX 構築スクリプト . . . . . .
UNIX の SQLJ アプリケーション・オプ
ション . . . . . . . . . . . .
SQLJ アプリケーションおよびアプレット
の Windows バッチ・ファイル . . . .
Windows の SQLJ アプリケーション・オ
プション . . . . . . . . . . . .
SQLJ ルーチンの作成 . . . . . . .
SQLJ ルーチンの UNIX 構築スクリプト
UNIX の SQLJ ストアード・プロシージ
ャー・オプション . . . . . . . . .
SQLJ ルーチンの Windows バッチ・ファ
イル . . . . . . . . . . . . .
Windows の SQLJ ストアード・プロシー
ジャー・オプション . . . . . . . .
113
113
115
117
117
119
120
122
122
124
126
第 5 章 SQL プロシージャー . . . . .
SQL プロシージャーの作成 . . . . . .
UNIX でのクライアント・アプリケーション
による SQL プロシージャーの呼び出し . .
Windows でのクライアント・アプリケーショ
ンによる SQL プロシージャーの呼び出し .
SQL プロシージャー用の中間ファイルの保存
SQL プロシージャーのプリコンパイル・オプ
ションとバインド・オプションのカスタマイ
ズ . . . . . . . . . . . . . . .
SQL プロシージャーのバックアップとリスト
ア . . . . . . . . . . . . . . .
コンパイル済み SQL プロシージャーの配布
141
141
iv
アプリケーションの構築および実行
127
128
129
131
132
134
135
136
138
142
144
145
147
148
149
SQL プロシージャーの再バインド .
.
.
. 150
第 6 章 ストアード・プロシージャーの呼び
出し . . . . . . . . . . . . . . 153
CALL ステートメントによるストアード・プ
ロシージャーの呼び出し . . . . . . . 153
第 3 部 プラットフォーム固有アプ
リケーションの構築および実行 . . 155
第 7 章 AIX . . . . . . . . . . .
重要な考慮事項 . . . . . . . . . .
ルーチン用の AIX エクスポート・ファイ
ル . . . . . . . . . . . . . .
AIX ルーチンと CREATE ステートメン
ト . . . . . . . . . . . . . .
AIX 共用ライブラリーの置換 . . . . .
AIX での COBOL のインストールに関す
る考慮事項 . . . . . . . . . . .
IBM C . . . . . . . . . . . . .
AIX での C アプリケーションの作成 . .
C アプリケーションの構築スクリプト
AIX C アプリケーションのコンパイルと
リンクのオプション . . . . . . . .
AIX での C ルーチンの作成 . . . . .
C ルーチンの構築スクリプト . . . . .
AIX C ルーチンのコンパイルとリンクの
オプション . . . . . . . . . . .
AIX での C マルチスレッド・アプリケー
ションの作成 . . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
VisualAge C++ . . . . . . . . . . .
AIX での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
AIX C++ アプリケーションのコンパイル
とリンクのオプション . . . . . . .
AIX での C++ ルーチンの作成 . . . .
C++ ルーチンの構築スクリプト . . . .
AIX C++ ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
AIX での C++ マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
VisualAge C++ 構成ファイル . . . . . .
157
158
158
158
159
160
160
160
162
163
165
169
169
171
172
173
173
175
175
177
181
181
183
184
185
構成ファイルによる VisualAge C++ プロ
グラムの作成 . . . . . . . . . .
構成ファイルによる C++ DB2 API アプ
リケーションの作成 . . . . . . . .
構成ファイルによる C++ 組み込み SQL
アプリケーションの作成 . . . . . .
構成ファイルによる C++ ストアード・プ
ロシージャーの作成 . . . . . . . .
構成ファイルによる C++ ユーザー定義関
数の作成 . . . . . . . . . . . .
IBM COBOL Set for AIX . . . . . . .
AIX での IBM COBOL コンパイラーの構
成 . . . . . . . . . . . . . .
AIX での IBM COBOL アプリケーション
の作成 . . . . . . . . . . . .
IBM COBOL アプリケーションの構築ス
クリプト . . . . . . . . . . . .
AIX IBM COBOL アプリケーションのコ
ンパイルとリンクのオプション . . . .
AIX での IBM COBOL ルーチンの作成
IBM COBOL ルーチンの構築スクリプト
AIX IBM COBOL ルーチンのコンパイル
とリンクのオプション . . . . . . .
Micro Focus COBOL . . . . . . . . .
AIX での Micro Focus COBOL コンパイ
ラーの構成 . . . . . . . . . . .
AIX での Micro Focus COBOL アプリケ
ーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
AIX Micro Focus COBOL アプリケーショ
ンのコンパイルとリンクのオプション . .
AIX での Micro Focus COBOL ルーチン
の作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
AIX Micro Focus COBOL ルーチンのコン
パイルとリンクのオプション . . . . .
REXX . . . . . . . . . . . . . .
AIX での REXX アプリケーションの作成
185
185
186
187
189
190
190
191
193
194
195
196
197
198
198
199
201
202
203
204
205
206
206
第 8 章 HP-UX . . . . . . . . . . 209
HP-UX C . . . . . . . . . . . . 209
HP-UX での C アプリケーションの作成 209
C アプリケーションの構築スクリプト
211
HP-UX C アプリケーションのコンパイル
とリンクのオプション . . . . . . .
HP-UX での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
HP-UX C ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
HP-UX での C マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
HP-UX C++ . . . . . . . . . . . .
HP-UX での C++ アプリケーションの作
成 . . . . . . . . . . . . . .
C++ アプリケーションの構築スクリプト
HP-UX C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
HP-UX での C++ ルーチンの作成 . . .
C++ ルーチンの構築スクリプト . . . .
HP-UX C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
HP-UX での C++ マルチスレッド・アプ
リケーションの作成 . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
Micro Focus COBOL . . . . . . . . .
HP-UX での Micro Focus COBOL コンパ
イラーの構成 . . . . . . . . . .
HP-UX での Micro Focus COBOL アプリ
ケーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
HP-UX Micro Focus COBOL アプリケー
ションのコンパイルとリンクのオプション
HP-UX での Micro Focus COBOL ルーチ
ンの作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
HP-UX Micro Focus COBOL ルーチンの
コンパイルとリンクのオプション . . .
212
215
218
219
221
222
223
223
225
226
228
231
232
234
235
236
236
238
239
240
241
243
244
第 9 章 Linux . . . . . . . . . .
Linux C . . . . . . . . . . . . .
Linux での C アプリケーションの作成
C アプリケーションの構築スクリプト
Linux C アプリケーションのコンパイルと
リンクのオプション . . . . . . . .
247
247
247
249
目次
v
250
Linux での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
Linux C ルーチンのコンパイルとリンクの
オプション . . . . . . . . . . .
Linux での C マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
Linux C++ . . . . . . . . . . . .
Linux での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
Linux C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
Linux での C++ ルーチンの作成 . . . .
C++ ルーチンの構築スクリプト . . . .
Linux C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
Linux での C++ マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
第 10 章 Solaris . . . . . . . . .
Forte C . . . . . . . . . . . . .
Solaris での C アプリケーションの作成
C アプリケーションの構築スクリプト
Solaris C アプリケーションのコンパイル
とリンクのオプション . . . . . . .
Solaris での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
Solaris C ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
Solaris での C マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
Forte C++ . . . . . . . . . . . .
Solaris での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
Solaris C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
Solaris での C++ ルーチンの作成 . . .
C++ ルーチンの構築スクリプト . . . .
Solaris C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
vi
アプリケーションの構築および実行
251
255
256
257
258
259
259
261
262
263
267
268
269
270
273
273
273
275
276
279
283
283
285
287
288
288
290
291
293
296
297
Solaris での C++ マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
Micro Focus COBOL . . . . . . . . .
Solaris での Micro Focus COBOL コンパ
イラーの構成 . . . . . . . . . .
Solaris での Micro Focus COBOL アプリ
ケーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
Solaris Micro Focus COBOL アプリケーシ
ョンのコンパイルとリンクのオプション .
Solaris での Micro Focus COBOL ルーチ
ンの作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
Solaris Micro Focus COBOL ルーチンのコ
ンパイルとリンクのオプション . . . .
第 11 章 Windows オペレーティング・シ
ステム . . . . . . . . . . . . .
WCHARTYPE CONVERT プリコンパイル・
オプション . . . . . . . . . . . .
オブジェクトのリンクと埋め込みデータベー
ス (OLE DB) 表関数. . . . . . . . .
Windows Management Instrumentation (WMI)
Microsoft Visual Basic . . . . . . . .
Visual Basic による ADO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual Basic による RDO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual Basic でのオブジェクトのリンクと
埋め込み (OLE) オートメーション . . .
Microsoft Visual C++ . . . . . . . . .
Visual C++ による ADO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual C++ でのオブジェクトのリンクと
埋め込み (OLE) オートメーション . . .
Windows での C/C++ アプリケーションの
作成 . . . . . . . . . . . . .
C/C++ アプリケーションのバッチ・ファ
イル . . . . . . . . . . . . .
Windows C/C++ アプリケーションのコン
パイルとリンクのオプション . . . . .
Windows での C/C++ ルーチンの作成 . .
299
301
302
302
302
304
305
306
307
308
311
312
313
313
314
314
317
319
319
320
322
323
325
326
327
C/C++ ルーチンのバッチ・ファイル . .
Windows C/C++ ルーチンのコンパイルと
リンクのオプション . . . . . . . .
IBM VisualAge COBOL . . . . . . . .
Windows での IBM COBOL コンパイラー
の構成 . . . . . . . . . . . .
Windows での IBM COBOL アプリケーシ
ョンの作成 . . . . . . . . . . .
IBM COBOL アプリケーションのバッ
チ・ファイル . . . . . . . . . .
Windows IBM COBOL アプリケーション
のコンパイルとリンクのオプション . . .
Windows での IBM COBOL ルーチンの作
成 . . . . . . . . . . . . . .
IBM COBOL ルーチンのバッチ・ファイ
ル . . . . . . . . . . . . . .
Windows IBM COBOL ルーチンのコンパ
イルとリンクのオプション . . . . . .
Micro Focus COBOL . . . . . . . . .
Windows での Micro Focus COBOL コン
パイラーの構成 . . . . . . . . .
Windows での Micro Focus COBOL アプ
リケーションの作成 . . . . . . . .
Micro Focus COBOL アプリケーションの
バッチ・ファイル . . . . . . . . .
Windows Micro Focus COBOL アプリケー
ションのコンパイルとリンクのオプション
Windows での Micro Focus COBOL ルー
チンの作成 . . . . . . . . . . .
Micro Focus COBOL ルーチンのバッチ・
ファイル . . . . . . . . . . . .
Windows Micro Focus COBOL ルーチンの
コンパイルとリンクのオプション . . .
オブジェクト REXX . . . . . . . . .
Windows でのオブジェクト REXX アプリ
ケーションの作成 . . . . . . . . .
第 4 部 付録
331
331
333
333
334
335
336
337
338
339
340
340
341
343
343
344
345
346
346
346
. . . . . . . . . 349
付録 A. DB2 Universal Database の技術
情報の概要 . . . . . . . . . . . . 351
DB2 Universal Database の技術情報の概要
DB2 ドキュメンテーション・フィックス
パック . . . . . . . . . . . .
DB2 技術情報のカテゴリー . . . . .
PDF ファイルからの DB2 資料の印刷方法
DB2 の印刷資料の注文方法 . . . . . .
オンライン・ヘルプの使用法 . . . . . .
ブラウザーから DB2 インフォメーション・
センターにアクセスしてトピックを検索する .
管理ツールから DB2 インフォメーション・
センターにアクセスして、製品情報を検索す
る . . . . . . . . . . . . . . .
DB2 HTML ドキュメンテーション CD から
技術資料を直接参照する . . . . . . .
マシンにインストールされている HTML 資
料をアップデートする . . . . . . . .
DB2 HTML ドキュメンテーション CD から
Web サーバーへファイルをコピーする . . .
Netscape 4.x を使って DB2 資料を検索する
場合のトラブルシューティング . . . . .
DB2 文書の検索 . . . . . . . . . .
DB2 オンライン・トラブルシューティング情
報 . . . . . . . . . . . . . . .
アクセス支援 . . . . . . . . . . .
キーボードによる入力およびナビゲーショ
ン . . . . . . . . . . . . . .
アクセスしやすい表示 . . . . . . .
選択可能なアラート . . . . . . . .
Assistive Technology との互換性 . . . .
アクセスしやすい資料 . . . . . . .
DB2 チュートリアル . . . . . . . . .
ブラウザーからアクセスする DB2 インフォ
メーション・センター . . . . . . . .
351
351
351
359
360
361
363
365
366
367
369
370
371
372
372
373
373
373
373
373
374
375
付録 B. 特記事項 . . . . . . . . . 377
商標 . . . . . . . . . . . . . . 380
索引 .
.
.
.
.
.
.
.
.
.
.
.
.
. 383
IBM と連絡をとる . . . . . . . . . 391
製品情報 . . . . . . . . . . . . . 391
目次
vii
viii
アプリケーションの構築および実行
本書について
アプリケーション開発ガイド は、DB2 アプリケーションのコーディング、デバッグ、
ビルド、および実行に関して知っておくべきことを説明した 3 冊からなるガイドです。
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミングで
は、DB2 クライアントで実行されるスタンドアロン DB2 クライアントをコーディン
グする際に知っておくべきことを説明しています。以下の情報を扱います。
– DB2 でサポートされているプログラミング・インターフェース。DB2 Developer’s
Edition、サポートされているプログラミング・インターフェース、Web アプリケ
ーションを作成するための機能、および DB2 が提供するルーチンやトリガーなど
のプログラミング機能についてハイレベルな説明がなされています。
– DB2 アプリケーションが従うべき一般的な構造。データベース中のデータ値やリ
レーションシップの推奨される保守方法や、許可に関する考慮事項が説明されてお
り、アプリケーションのテストとデバッグ方法に関する情報もあります。
– 動的組み込み SQL と 静的組み込み SQL。組み込み SQL に関する一般的な考慮
事項、および DB2 アプリケーションで静的 SQL と動的 SQL を使用する際の特
有な考慮事項。
– C/C++、COBOL、Perl、および REXX などのサポートされているホストおよびイ
ンタープリター言語とこれらの言語で書かれたアプリケーションでの組み込み
SQL の使用方法。
– Java (JDBC と SQLj)、および WebSphere Application Server を使用する Java ア
プリケーションを構築する際の考慮事項。
– IBM OLE DB Provider for DB2 Server。 IBM OLE DB Provider による OLE DB
サービス、コンポーネント、およびプロパティーのサポートに関する一般情報。
ActiveX Data Objects (ADO) 用の OLE DB インターフェースを使用する Visual
Basic および Visual C++ アプリケーション特有の情報があります。
– 各国語サポートの問題。照合シーケンス、コード・ページとロケールから派生する
問題、および文字変換などの一般トピックが説明されています。 DBCS コード・
ページ、EUC 文字セット、および日本語と中国語 (繁体字) EUC および UCS-2
環境に適用される問題についても説明されます。
– トランザクション管理。マルチサイト更新を実行するアプリケーション、および並
行トランザクションを実行するアプリケーションに適用される問題が説明されてい
ます。
– パーティション・データベース環境におけるアプリケーション。パーティション・
データベース環境における指示 DSS、ローカル・バイパス、バッファー挿入、ア
プリケーションのトラブルシューティングについて説明します。
© Copyright IBM Corp. 1993 - 2002
ix
– 一般的に使用されるアプリケーション技法。生成列と ID 列、宣言済み一時表の使
用方法、およびトランザクションを管理するための保管点の使用法について説明さ
れます。
– 組み込み SQL アプリケーションの使用がサポートされている SQL ステートメン
ト。
– ホストおよび iSeries 環境にアクセスするアプリケーション。ホストおよび iSeries
環境にアクセスする組み込み SQL アプリケーションに関する問題。
– EBCDIC バイナリー照合のシミュレーション。
v アプリケーション開発ガイド サーバー・アプリケーションのプログラミング では、
ルーチン、ラージ・オブジェクト、ユーザー定義タイプ、およびトリガーを含むサー
バー・サイド・プログラミングを行う上で知っておくべきことが説明されています。
以下の情報を扱います。
– ルーチン (ストアード・プロシージャー、ユーザー定義関数、およびメソッド)。以
下のことも扱われています。
- ルーチンのパフォーマンス、セキュリティー、ライブラリー管理上の考慮事項、
および制限。
- ルーチンの登録と作成。CREATE ステートメントとデバッグを含む。
- プロシージャーのパラメーター・モードおよびパラメーターの取り扱い。
- プロシージャーの結果セット。
- スクラッチパッド、スカラーおよび表関数を含む UDF 機能。
- デバッグおよび条件処理を含む SQL プロシージャー。
- パラメーターのスタイル、許可、および外部ルーチンのバインディング。
- C、Java、および OLE オートメーション・ルーチンの言語特有の考慮事項。
- ルーチンの呼び出し。
- 関数選択および特殊タイプと LOB の関数への渡し方。
- コード・ページとルーチン。
– LOB の使用法とロケーター、参照変数、および CLOB データを含むラージ・オブ
ジェクト。
– ユーザー定義特殊タイプ (UDT) (以下のことの説明も含まれます)。強い型定義、
UDT の定義と削除、構造型による表の作成、特定のアプリケーション用の特殊タ
イプと型付き表の使用、複数の特殊タイプの取り扱いとそれらの間のキャスト、特
殊タイプ間の比較と代入、特殊タイプ列における UNION 操作。
– ユーザー定義構造型 (以下のことも説明されています)。インスタンスの保管インス
タンス生成、構造型の階層、構造型の動作の定義、メソッドの動的ディスパッチン
グ、比較関数、キャスト関数、コンストラクター関数、および構造型用の mutator
メソッドと observer メソッド。
x
アプリケーションの構築および実行
– 型付き表 (以下のことも説明されています)。オブジェクトの作成・削除・置換・保
管、システム生成オブジェクト ID の定義、およびオブジェクト ID 列における制
約。
– 参照タイプ (以下のことも説明されています)。型付き表のオブジェクト間のリレー
ションシップ、参照のあるセマンティック・リレーションシップ、および参照保全
とスコープ限定参照。
– 型付き表と型付きビュー (以下のことも説明されています)。列型としての構造型、
トランスフォーム関数とトランスフォーム・グループ、ホスト言語プログラムのマ
ッピング、および構造型ホスト変数。
– トリガー (以下のことも説明されています)。 INSERT / UPDATE / DELETE トリ
ガー、参照制約との相互作用、作成に関するガイドライン、細分性、活動化時間、
遷移変数と表、トリガー・アクション、多重トリガー、および複数のトリガーと制
約とルーチン間の協同。
v アプリケーション開発ガイド アプリケーションの構築および実行 では、DB2 でサポ
ートされている以下のオペレーティング・システムにおいて DB2 アプリケーション
をビルドして実行する上で知っておくべきことが説明されています。
– AIX
– HP-UX
– Linux
– Solaris
– Windows
以下の情報を扱います。
– Java および SQL プロシージャー用の特定の命令を含むアプリケーション開発環境
のセットアップ方法、サンプル・データベースのセットアップ方法、以前のバージ
ョンの DB2 からのアプリケーションの移行方法。
– DB2 がサポートするコンパイラーとインタープリターを含め、アプリケーション
を作成するためのサポートされているサーバーとソフトウェア。
– DB2 サンプル・プログラム・プログラム・ファイル、makefile、ビルド・ファイ
ル、およびエラー・チェック・ユーティリティー・ファイル。
– Java アプレット、アプリケーション、およびルーチンのビルドと実行の仕方。
– SQL プロシージャーのビルドと実行の仕方。
– C/C++ アプリケーションとルーチンのビルドと実行の仕方。
– IBM COBOL および Micro Focus COBOL アプリケーションとルーチンのビルド
と実行の仕方。
– AIX および Windows における REXX アプリケーションのビルドと実行の仕方。
– Windows における Visual Basic および Visual C++ を使用した ActiveX Data
Object (ADO) のあるアプリケーションのビルドと実行の仕方。
本書について
xi
– Windows における Visual C++ を使用した リモート・データ・オブジェクトのあ
るアプリケーションのビルドと実行の仕方。
xii
アプリケーションの構築および実行
第 1 部 アプリケーション開発環境
© Copyright IBM Corp. 1993 - 2002
1
2
アプリケーションの構築および実行
第 1 章 DB2 サポート
Application Development Client . . . . .
データベース・マネージャー・インスタンス
DB2 でサポートされるサーバー . . . . .
アプリケーションの作成と実行用として DB2
でサポートされるソフトウェア . . . . .
各プラットフォームでサポートされるソフト
ウェア . . . . . . . . . . . . .
アプリケーションの作成と実行用として
AIX でサポートされるソフトウェア . .
. 3
. 6
. 8
. 9
. 10
アプリケーションの作成と実行用として
HP-UX でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Linux でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Solaris でサポートされるソフトウェア .
アプリケーションの作成と実行用として
Windows でサポートされるソフトウェア
. 11
. 13
. 15
. 16
. 10
アプリケーション開発ガイドのこのボリュームでは、アプリケーション開発のための
DB2 サポートについて説明しています。本書は、DB2 アプリケーションを開発するた
めの環境をセットアップするのに必要な情報、また開発したアプリケーションをこの環
境でコンパイル、リンク、および実行するための手順を段階的に説明しています。本書
は、DB2 Universal Database バージョン 8 用の DB2 アプリケーション開発 (DB2 AD)
クライアントを使用して、以下のプラットフォーム用のアプリケーションを作成する方
法を説明しています。
v AIX
v HP-UX
v Linux
v Solaris オペレーティング環境
v Windows オペレーティング・システム
Application Development Client
DB2 Application Development (DB2 AD) Client は、分散リレーショナル・データベース
体系 (DRDA) を実現する DB2 サーバーおよびアプリケーション・サーバーにアクセス
するアプリケーションを開発するのに必要なツールおよび環境を提供します。
DB2 AD クライアントをインストールすれば、DB2 アプリケーションを構築し、実行
することができます。次の DB2 クライアントで DB2 アプリケーションを実行するこ
ともできます。
v DB2 Run-Time Client
v DB2 Administration Client
本書で記述しているプラットフォーム用の DB2 AD クライアントには、次のものが含
まれます。
© Copyright IBM Corp. 1993 - 2002
3
v C/C++、COBOL、および Fortran プリコンパイラー (ただし、該当するプラットフ
ォームでこの言語がサポートされている場合)。
v プログラミング・ライブラリー、組み込みファイル、およびコード・サンプルを含
む、組み込み SQL アプリケーション・サポート。
v ODBC SDK への移植や ODBC SDK とのコンパイルが容易に行えるアプリケーショ
ンを開発するためのプログラミング・ライブラリー、組み込みファイル、およびコー
ド例を含む、DB2 コール・レベル・インターフェース (DB2 CLI) アプリケーショ
ン・サポート。 ODBC SDK は、Windows オペレーティング・システムの場合は
Microsoft、および他のサポートされるプラットフォームの場合はさまざまなベンダー
から入手可能です。 Windows オペレーティング・システムの場合、 DB2 クライア
ントには Microsoft ODBC Software Developer’s Kit で開発されたアプリケーション
をサポートする、 ODBC ドライバーが含まれています。 他のすべてのプラットフォ
ームについては、そのプラットフォーム用の ODBC SDK があれば、それを使用して
開発されたアプリケーションをサポートする、任意でインストールされた ODBC ド
ライバーが DB2 クライアントに含まれます。 Windows オペレーティング・システ
ム用の DB2 クライアントだけに ODBC ドライバー・マネージャーが含まれていま
す。
v Java アプリケーションおよびアプレットを開発する JDBC (Java Database
Connectivity) サポート、および Java Embedded SQL アプリケーションとアプレット
を開発する DB2 Java Embedded SQL (DB2 SQLJ) サポートを含む、 DB2 Java
Enablement。
v Java Development Kit (JDK)。 IBM for AIX の JDK 1.3.1 および Java Runtime
Environment (JRE) 1.3.1、 IBM Developer Kit および Runtime Environment (Linux 版
および Windows 版) バージョン 1.3.1、 HP-UX Software Developer’s Kit および
Runtime Environment 1.3.1 for HP-UX、および Sun Microsystems の Java
Development Kit 1.3.1 for Solaris。 Solaris を除いて、Java の実行を必要とするいず
れかのコンポーネントをインストールすることが決まった場合、該当するオペレーテ
ィング・システム用の JDK をインストールします。いずれのコンポーネントも選択
しなくても、JDK をインストールすることはできます。 Solaris では、DB2 に付属
している JDK 1.3.1 がユーザーによってインストールされなければなりません。
v ActiveX Data Objects (ADO) およびオブジェクトのリンクと埋め込み (OLE) オー
トメーション・ルーチン (UDF とストアード・プロシージャー)。これには、
Microsoft Visual Basic および Microsoft Visual C++ のコード・サンプルのインプリ
メンテーションも含まれます。また、Microsoft Visual Basic でインプリメントされた
Remote Data Object (RDO) を持つコード・サンプル。
v Windows オペレーティング・システムでは、オブジェクトのリンクと埋め込みデータ
ベース (OLE DB) 表関数。
v DB2 デベロップメント・センター。これは、ルーチン (ストアード・プロシージャー
とユーザー定義関数) の迅速な開発と構造型をサポートするグラフィカル・アプリケ
ーションです。デベロップメント・センターは、ワークステーションから z/OS まで
の DB2 ファミリー全体をサポートする単一の開発環境として機能します。デベロッ
4
アプリケーションの構築および実行
プメント・センターは、スタンドアロンのアプリケーションとして立ち上げることが
できますが、コントロール・センター、コマンド・センター、またはタスク・センタ
ーなどの DB2 Universal Database のセンターから立ち上げることもできます。デベロ
ップメント・センターは、Java を使用してインプリメントするので、データベース接
続の管理には Java Database Connectivity (JDBC) API を使用します。また、デベロッ
プメント・センターには、以下の各開発環境用の DB2 Development Add-In も備えら
れています。
– Microsoft Visual C++ バージョン 6
– Microsoft Visual Basic バージョン 6
– Microsoft Visual InterDev バージョン 6
v SQL ステートメントのプロトタイピングまたはデータベースの随時照会の実行のため
の、コマンド・センターまたはコマンド行プロセッサー (CLP) を介する対話式
SQL。
v 他のアプリケーション開発ツールの製品が、それらの製品内で DB2 用のプリコンパ
イラー・サポートを直接実現するための文書化された API のセット。たとえば AIX
上の IBM COBOL は、このインターフェースを使用します。プリコンパイラー・サ
ービス API のセットに関する情報は、以下の匿名 FTP サイトの PDF ファイル
prepapi.pdf に記載されています。
ftp://ftp.software.ibm.com/ps/products/db2/info/
v SQL92 および MVS 適合 flagger。これは、 ISO/ANSI SQL92 Entry Level 基準に
適合しないアプリケーションや、 DB2 UDB (OS/390 および z/OS 版) がサポートし
ないアプリケーション内の組み込み SQL ステートメントを識別します。ワークステ
ーション上で開発したアプリケーションを他のプラットフォームに移行する場合に
は、 flagger によって構文の非互換性が示されるため、時間が節約されます。
関連資料:
v コマンド・リファレンス の『PRECOMPILE コマンド』
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
第 1 章 DB2 サポート
5
データベース・マネージャー・インスタンス
DB2® は、同じマシン上の複数のデータベース・マネージャー・インスタンスをサポー
トします。 1 つのデータベース・マネージャー・インスタンスには、それ独自の構成フ
ァイル、ディレクトリー、およびデータベースがあります。
各データベース・マネージャー・インスタンスは、複数のデータベースを管理すること
ができます。しかし、1 つのデータベースが属することができるのは 1 つのインスタン
スだけです。以下の図に、その関係を示してあります。
図 1. データベース・マネージャー・インスタンス
データベース・マネージャー・インスタンスでは、その柔軟性のおかげで同じマシン上
で複数のデータベース環境を持つことができます。たとえば、1 つのデータベース・マ
ネージャー・インスタンスを開発用に、別のインスタンスを実動用にすることができま
す。
UNIX® サーバーを使用すると、異なるデータベース・マネージャー・インスタンス上
で別々の DB2 のバージョンを使用することができます。 たとえば、1 つのデータベー
ス・マネージャー・インスタンスで DB2 Universal Database バージョン 7.1 を実行
6
アプリケーションの構築および実行
し、別のインスタンスで DB2 Universal Database バージョン 8.1 を実行することがで
きます。 DB2 バージョン 8 以前は、 1 つのバージョン・レベル内では 1 つのリリー
スとフィックスパック・レベルしかサポートされていません。たとえば、DB2 バージョ
ン 7.1 および DB2 バージョン 7.2 は、 UNIX サーバー上に共存することはできませ
ん。 DB2 バージョン 8 では、同一の UNIX サーバー上に複数のフィックスパック・
レベルが共存することができます。
Windows® サーバーでは、各データベース・マネージャー・インスタンスの DB2 は、
同じバージョン、リリース、およびフィックスパック・レベルでなければなりません。
1 つのデータベース・マネージャー・インスタンスで DB2 Universal Database バージョ
ン 7.1 を実行し、別のインスタンスで DB2 Universal Database バージョン 8.1 を実行
することはできません。
使用するそれぞれのインスタンスについて、以下のことを知っておく必要があります。
インスタンス名
UNIX プラットフォームの場合は、データベース・マネージャー・インスタン
スを作成するときに指定する、有効なユーザー名です。
Windows オペレーティング・システムの場合は、最大 8 文字の英数字ストリ
ングです。 DB2 インスタンスは、インストール時に作成されます。
インスタンス・ディレクトリー
インスタンスがあるホーム・ディレクトリー。
UNIX プラットフォームでは、インスタンス・ディレクトリーは $HOME/sqllib
です。 $HOME はインスタンス所有者のホーム・ディレクトリーです。
Windows オペレーティング・システムの場合、インスタンス・ディレクトリー
は %DB2PATH%¥instance_name です。変数 %DB2PATH% によって DB2 のインスト
ール先が指定されます。 %DB2PATH% のデフォルトのインストール値は
¥Program Files¥IBM¥SQLLIB であるため、このデフォルト値を変更しない限
り、DB2 のインストール先のドライブに応じて、 %DB2PATH% は drive
:¥Program Files¥IBM¥SQLLIB を指します。
Windows サーバーでのインスタンス・パスは、以下のいずれかに基づいて作成
されます。
%DB2PATH%¥%DB2INSTANCE%
(たとえば、C:¥Program Files¥IBM¥SQLLIB¥DB2)
または、DB2INSTPROF が定義されている場合、
%DB2INSTPROF%¥%DB2INSTANCE%
(たとえば、C:¥PROFILES¥DB2)
第 1 章 DB2 サポート
7
クライアント・マシンからは読み取りアクセスしかできないネットワーク・ド
ライブ上での DB2 の実行をサポートするために、 Windows サーバーで
DB2INSTPROF 環境変数を使用します。この場合、 DB2 は drive :¥Program
Files¥IBM¥SQLLIB を指すように設定され、また DB2INSTPROF はローカル・
パス (C:¥PROFILES など) を指すように設定されます。これには、カタログや
構成などのインスタンス固有情報すべてが入っています。 DB2 はこれらのフ
ァイルへの更新アクセスを必要とするためです。
DB2 でサポートされるサーバー
特定のプラットフォームで実行するアプリケーションを開発するには、 DB2 AD クラ
イアントを使用します。ただし、アプリケーションからは、次のオペレーティング・シ
ステム・サーバー上のリモート・データベースにアクセスすることができます。
v DB2 (AIX 版)
v DB2 (HP-UX 版)
v DB2 (Linux 版)
v DB2 (OS/2 版)
v DB2 (NUMA-Q 版)
v DB2 (Solaris 版)
v DB2 for Windows NT/2000/XP/.NET Server
v 分散リレーショナル・データベース体系 (DRDA) に準拠するアプリケーション・サ
ーバー。たとえば、以下のものがあります。
– DB2 for OS/390 and z/OS
– DB2 for AS/400 and iSeries
– DB2 for VSE & VM (以前は、SQL/DS (VM および VSE))
– IBM 以外のデータベース・ベンダーからの、DRDA に準拠するアプリケーショ
ン・サーバー
注:
1. DB2 バージョン 8 の HP-UX 64 ビット・サーバーは、 DB2 バージョン 7 の 64
ビット・ローカル・アプリケーションの実行をサポートしません。
2. DB2 (OS/2 版) は、DB2 バージョン 8 では利用できません。
3. DB2 (NUMA-Q 版) は PTX オペレーティング・システムで稼働し、 DB2 バージョ
ン 7 でのみ使うことができます。
4. DB2 バージョン 6 およびバージョン 7 の 32 ビット・クライアントから DB2 バ
ージョン 8 の Windows 64 ビット・サーバーへの接続では、 SQL 要求のみがサポ
ートされます。バージョン 7 の 64 ビット・クライアントからの接続はサポートさ
れません。
8
アプリケーションの構築および実行
アプリケーションの作成と実行用として DB2 でサポートされるソフトウェア
DB2 バージョン 8 は、以下のオペレーティング・システム用のコンパイラー、インタ
ープリター、およびソフトウェアをサポートします。
v AIX
v HP-UX
v Linux
v Solaris
v Windows オペレーティング・システム
DB2 は、これらのオペレーティング・システムのそれぞれの 32 ビットおよび 64 ビッ
ト・バージョンをサポートします。多くの場合、これらのオペレーティング・システム
上の 32 ビットおよび 64 ビット環境でのアプリケーションの作成はそれぞれ異なりま
す。ただし、Linux IA64 を除き、DB2 は、サポートされているすべての 64 ビット・
オペレーティング環境での 32 ビット・アプリケーションおよびルーチン (ストアー
ド・プロシージャーとユーザー定義関数) の実行をサポートします。
これらのオペレーティング・システムに関して述べられているコンパイラー情報では、
そのオペレーティング・システム用にユーザーが DB2 プリコンパイラーを使用してお
り、一覧中のコンパイラーのいずれかに組み込まれている可能性のあるプリコンパイラ
ー・サポートを使用していないことを前提としています。
最新の DB2 コンパイラー情報とそれに関連したソフトウェアの更新については、次の
DB2 アプリケーション開発の Web ページを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
ソフトウェア・サポートに関しては、以下の点に気を付けてください。
v Fortran および REXX。 DB2 では、DB2 Universal Database バージョン 5.2 におい
て、該当する言語サポート・レベルを超えて Fortran および REXX の機能が拡張さ
れることはありません。
v Perl。本書の発刊時点では、Perl Database Interface (Perl DBI) バージョン 0.93 以降
用の DB2 UDB ドライバー (DBD::DB2) のリリース 0.76 は、
AIX、HP-UX、Linux、Solaris および Windows 用のものが用意されています。このド
ライバーは、次の Web サイトからダウンロードすることができます。
http://www.ibm.com/software/data/db2/perl
v PHP。 PHP は Web ベースのアプリケーションから DB2 にアクセスするための手
段として使用できます。 PHP は、サーバー側の、HTML に組み込まれた、クロス・
プラットフォーム・スクリプト言語です。これは、Unified-ODBC アクセス方式を使
用して DB2 アクセスをサポートしており、ユーザー・レベルの PHP は ODBC 呼
び出しを使用して DB2 との通信を行います。標準の ODBC とは異なり、
第 1 章 DB2 サポート
9
Unified-ODBC 方式では、通信は ODBC 層を介さずに DB2 CLI 層に対して直接行わ
れます。 DB2 での PHP の使用法についての詳細は、次の DB2 サポート・サイト
を参照してください。
www.ibm.com/software/data/db2/udb/winos2unix/support
関連資料:
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
各プラットフォームでサポートされるソフトウェア
アプリケーションの作成と実行用として AIX でサポートされるソフトウェア
DB2 (AIX 版) は、以下のオペレーティング・システムをサポートします。
AIX/6000
メインテナンス・レベル 9 以上を備えたバージョン 4.3.3
メインテナンス・レベル 1 以上を備えたバージョン 5.1.0
DB2 (AIX 版) は、以下のプログラム言語およびコンパイラーをサポートします。
C
IBM C for AIX バージョン 5.0
C++
IBM VisualAge C++ バージョン 5.0
COBOL
IBM COBOL Set for AIX バージョン 1.1
Micro Focus COBOL Server Express バージョン 2.0.10
Fortran
IBM XL Fortran for AIX バージョン 4.1 (32 ビットの場合のみ) および 5.1.0
(32 ビットおよび 64 ビットの場合)
Java
10
Java Development Kit (JDK) バージョン 1.3.1 および IBM 提供の Java
Runtime Environment (JRE) (AIX 版) バージョン 1.3.1 (DB2 の必要に応じて
インストールされます)。
アプリケーションの構築および実行
注: Java の実行を必要とするいずれかのコンポーネントをインストールするこ
とが決められた場合、 DB2 はこの JDK をインストールします。いずれ
のコンポーネントも選択しなくても、JDK をインストールすることはでき
ます。
Perl
Perl 5.004_04 以上、DBI 0.93 以上
REXX
IBM AIX REXX/6000 AISPO 製品番号: 5764-057
IBM Object REXX (AIX 版) バージョン 1.1
REXXSAA 4.00
注: REXX サポートは、32 ビット用のみです。
DB2 (AIX 版) のソフトウェア・サポートの更新の詳細は、以下の DB2 アプリケーシ
ョン開発の Web サイトを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
関連資料:
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v DB2 Universal Database サーバー機能 概説およびインストール の『パーティション
DB2 サーバーのインストール要件 (AIX)』
v 163 ページの『AIX C アプリケーションのコンパイルとリンクのオプション』
v 169 ページの『AIX C ルーチンのコンパイルとリンクのオプション』
v 175 ページの『AIX C++ アプリケーションのコンパイルとリンクのオプション』
v 181 ページの『AIX C++ ルーチンのコンパイルとリンクのオプション』
v 194 ページの『AIX IBM COBOL アプリケーションのコンパイルとリンクのオプシ
ョン』
v 197 ページの『AIX IBM COBOL ルーチンのコンパイルとリンクのオプション』
v 202 ページの『AIX Micro Focus COBOL アプリケーションのコンパイルとリンクの
オプション』
v 205 ページの『AIX Micro Focus COBOL ルーチンのコンパイルとリンクのオプショ
ン』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 サーバー
のインストール要件 (AIX)』
アプリケーションの作成と実行用として HP-UX でサポートされるソフトウェ
ア
DB2 (HP-UX 版) は、以下のオペレーティング・システムをサポートします。
第 1 章 DB2 サポート
11
HP-UX
バージョン 11 および 11i
DB2 (HP-UX 版) は、以下のプログラム言語およびコンパイラーをサポートします。
C
HP C コンパイラーのバージョン B.11.11.02
C++
HP aC++ バージョン A.03.31
COBOL
Micro Focus COBOL バージョン 4.1
Fortran
HP Fortran/9000 バージョン 10.0
HP-UX F77 B.11.00.01
Java
Software Developer’s Kit および Runtime Environment 1.3.1 for HP-UX 11.0 お
よび Hewlett-Packard の 11i PA-RISC (DB2 での必要に応じてインストールさ
れます)。
注: Java の実行を必要とするいずれかのコンポーネントをインストールするこ
とが決められた場合、 DB2 はこの SDK をインストールします。いずれ
のコンポーネントも選択しなくても、SDK をインストールすることはでき
ます。
Perl
Perl 5.004_04 以上、DBI 0.93 以上
DB2 (HP-UX 版) のソフトウェア・サポートの更新の詳細は、以下の DB2 アプリケー
ション開発の Web サイトを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
関連資料:
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v DB2 Universal Database サーバー機能 概説およびインストール の『パーティション
DB2 サーバーのインストール要件 (HP-UX)』
v 212 ページの『HP-UX C アプリケーションのコンパイルとリンクのオプション』
v 219 ページの『HP-UX C ルーチンのコンパイルとリンクのオプション』
v 226 ページの『HP-UX C++ アプリケーションのコンパイルとリンクのオプション』
v 232 ページの『HP-UX C++ ルーチンのコンパイルとリンクのオプション』
v 240 ページの『HP-UX Micro Focus COBOL アプリケーションのコンパイルとリンク
のオプション』
v 244 ページの『HP-UX Micro Focus COBOL ルーチンのコンパイルとリンクのオプシ
ョン』
12
アプリケーションの構築および実行
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 サーバー
のインストール要件 (HP-UX)』
アプリケーションの作成と実行用として Linux でサポートされるソフトウェア
DB2 for Linux for Intel x86 (32 ビット・アーキテクチャー) は、以下のオペレーテ
ィング・システム環境をサポートします。
Linux カーネル バージョン 2.4.9 以降、 glibc バージョン 2.2.4 以降、および rpm (イ
ンストールの必要があります)。
DB2 for Linux on S/390 は、以下のオペレーティング・システム環境をサポートしま
す。
以下のいずれかになります。
v RedHat v7.2
v SuSE SLES-7 for Linux on S/390
DB2 for Linux for Intel x86 and S/390 は、以下のプログラム言語とコンパイラーをサ
ポートします。
C/C++
Linux on Intel の場合: GNU/Linux gcc および g++ バージョン 2.95.3 および
2.96
Linux/390 の場合: GNU/Linux gcc および g++ バージョン 2.95.3
Linux on Intel の gcc および g++ バージョン 3.0 サポートおよび Linux/390
の今後のバージョン・サポートについては、 DB2 アプリケーション開発の
Web サイトにアクセスしてください。
http://www.ibm.com/software/data/db2/udb/ad
Java
Linux on Intel の場合: IBM Developer Kit および Runtime Environment (Linux
版)、 Java 2 Technology Edition バージョン 1.3.1 の 32 ビット・バージョン
(DB2 での必要に応じてインストールされます)。
Linux/390 の場合: IBM zSeries Developer Kit for Linux、Java 2 Technology
Edition (Sun 1.3.1 SDK レベル、 DB2 での必要に応じてインストールされま
す)。
注: Java の実行を必要とするいずれかのコンポーネントのインストールが選択
された場合、 DB2 は該当する Developer Kit をインストールします。コ
ンポーネントを選択しなくても、Developer Kit をインストールすることは
できます。
Perl
Perl 5.004_04 以上、DBI 0.93 以上
REXX
Linux on Intel の場合: Object REXX Interpreter for Linux バージョン 2.1
第 1 章 DB2 サポート
13
Linux/390 の場合: Object REXX 2.2.0 for Linux/390
DB2 for Linux on IA64 は、以下のオペレーティング・システム環境をサポートしま
す。
以下のいずれかになります。
v Red Hat 7.2
v SuSE SLES-7 for Linux on IA64
DB2 (IA64 版) は、以下のプログラム言語およびコンパイラーをサポートします。
C
GNU/Linux gcc バージョン 3.0.2
C++
GNU/Linux g++ バージョン 3.0.2
Java
IBM Developer Kit および Runtime Environment (Linux 版)、 Java 2
Technology Edition バージョン 1.3.1 の 64 ビット・バージョン (DB2 での必
要に応じてインストールされます)。この JDK を使用するには、 gcc 3.0.2 と
gcc3 libstdc++ ランタイム・ライブラリーもインストールする必要がありま
す。
注: Java の実行を必要とするいずれかのコンポーネントのインストールが選択
された場合、 DB2 はこの Developer Kit をインストールします。コンポ
ーネントを選択しなくても、Developer Kit をインストールすることはでき
ます。
Perl
Perl 5.6
注: DB2 の 32 ビット・アプリケーションまたはルーチン (ストアード・プロシージャ
ーおよびユーザー定義関数) の実行は、 Linux IA64 ではサポートされていませ
ん。
DB2 (Linux 版) のソフトウェア・サポートの更新の詳細は、以下の DB2 アプリケーシ
ョン開発の Web サイトを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
関連資料:
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v DB2 Universal Database サーバー機能 概説およびインストール の『パーティション
DB2 サーバーのインストール要件 (Linux)』
v 250 ページの『Linux C アプリケーションのコンパイルとリンクのオプション』
v 256 ページの『Linux C ルーチンのコンパイルとリンクのオプション』
v 262 ページの『Linux C++ アプリケーションのコンパイルとリンクのオプション』
v 268 ページの『Linux C++ ルーチンのコンパイルとリンクのオプション』
14
アプリケーションの構築および実行
v DB2 Universal Database Personal Edition 概説およびインストール の『DB2 Personal
Edition のインストール要件 (Linux)』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 サーバー
のインストール要件 (Linux)』
アプリケーションの作成と実行用として Solaris でサポートされるソフトウェ
ア
DB2 (Solaris 版) は、以下のオペレーティング・システムをサポートします。
Solaris Solaris 7、Solaris 8、および Solaris 9
DB2 (Solaris 版) は、以下のプログラム言語およびコンパイラーをサポートします。
Forte C バージョン 5.0、6、および 6.1
C
注: これらのコンパイラーの旧称は SPARCompiler です。
C++
Forte C++ バージョン 5.0、6、および 6.1
注: これらのコンパイラーの旧称は SPARCompiler です。
COBOL
Micro Focus COBOL Server Express バージョン 2.0.10
Fortran
SPARCompiler Fortran バージョン 4.2 および 5.0
Java
Sun Microsystems の Java Development Kit (JDK) (Solaris 版) バージョン 1.3.1
(DB2 に付属しています)。
Perl
Perl 5.004_04 以上、DBI 0.93 以上
DB2 (Solaris 版) のソフトウェア・サポートの更新の詳細は、以下の DB2 アプリケー
ション開発の Web サイトを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
関連資料:
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v DB2 Universal Database サーバー機能 概説およびインストール の『パーティション
DB2 サーバーのインストール要件 (Solaris オペレーティング環境)』
v 276 ページの『Solaris C アプリケーションのコンパイルとリンクのオプション』
v 283 ページの『Solaris C ルーチンのコンパイルとリンクのオプション』
v 291 ページの『Solaris C++ アプリケーションのコンパイルとリンクのオプション』
v 297 ページの『Solaris C++ ルーチンのコンパイルとリンクのオプション』
第 1 章 DB2 サポート
15
v 305 ページの『Solaris Micro Focus COBOL アプリケーションのコンパイルとリンク
のオプション』
v 308 ページの『Solaris Micro Focus COBOL ルーチンのコンパイルとリンクのオプシ
ョン』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 サーバー
のインストール要件 (Solaris)』
アプリケーションの作成と実行用として Windows でサポートされるソフトウ
ェア
DB2 (Windows 32 ビット・オペレーティング・システム版) は、以下をサポートしま
す。
Microsoft Windows XP
Microsoft Windows .NET
Microsoft Windows 2000
Microsoft Windows NT
Service Pack 6a 付きのバージョン 4.0 以降。
Microsoft Windows ME
Microsoft Windows 98
DB2 (Windows 32 ビット・オペレーティング・システム版) は、以下のプログラム言語
をサポートします。
Basic
Microsoft Visual Basic バージョン 4.2 およびバージョン 5.0
Microsoft Visual Basic 6.0 Professional Edition
C/C++
Microsoft Visual C++ バージョン 5.0 および 6.0
32 ビット・アプリケーション用の Intel C++ Compiler バージョン 5 以上
COBOL
Micro Focus COBOL バージョン 4.0.20
Micro Focus COBOL Net Express バージョン 3.1.0
IBM VisualAge COBOL バージョン 2.0
REXX
IBM Object REXX for Windows NT/95 バージョン 1.1
IBM Object REXX for Windows の入手法の詳細は、以下を参照してくださ
い。
http://www.ibm.com/software/ad/obj-rexx/
16
アプリケーションの構築および実行
Java
IBM Developer Kit および Runtime Environment (Windows 版)、 Java 2
Technology Edition バージョン 1.3.1 の 32 ビット・バージョン (DB2 での必
要に応じてインストールします)。
注: Java の実行を必要とするいずれかのコンポーネントのインストールが選択
された場合、 DB2 はこの Developer Kit をインストールします。コンポ
ーネントを選択しなくても、Developer Kit をインストールすることはでき
ます。
Java Development Kit (JDK) 1.3.1 (Win32 版) (Sun Microsystems 社提供)
Perl
Perl 5.004_04、DBI 0.93
Microsoft Windows スクリプティング ホスト
バージョン 5.1
DB2 (Windows 64 ビット・オペレーティング・システム版) は、以下をサポートしま
す。
Microsoft Windows XP 64-bit Edition
Microsoft Windows .NET Server 64-bit Edition
DB2 (Windows 64 ビット・オペレーティング・システム版) は、以下のプログラム言語
をサポートします。
C/C++
Intel C++ Compiler for Itanium バージョン 6.0
Intel Itanium アーキテクチャー用の Microsoft の C/C++ コンパイラー
Java
IBM Developer Kit および Runtime Environment (Windows 版)、 Java 2
Technology Edition バージョン 1.3.1 の 64 ビット・バージョン (DB2 での必
要に応じてインストールされます)。
注: Java の実行を必要とするいずれかのコンポーネントのインストールが選択
された場合、 DB2 はこの Developer Kit をインストールします。コンポ
ーネントを選択しなくても、Developer Kit をインストールすることはでき
ます。
Windows スクリプティング ホスト
バージョン 5.1
注: Windows .NET Server には、以下がすべて組み込まれています。
v Windows .NET Web Server
v Windows .NET Standard Server
v Windows .NET Enterprise Server
v Windows .NET Datacenter Server
第 1 章 DB2 サポート
17
DB2 (Windows 版) のソフトウェア・サポートの更新の詳細は、以下の DB2 アプリケ
ーション開発の Web サイトを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
関連資料:
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 サーバー
のインストール要件 (Windows)』
v 326 ページの『Windows C/C++ アプリケーションのコンパイルとリンクのオプショ
ン』
v 331 ページの『Windows C/C++ ルーチンのコンパイルとリンクのオプション』
v 336 ページの『Windows IBM COBOL アプリケーションのコンパイルとリンクのオ
プション』
v 339 ページの『Windows IBM COBOL ルーチンのコンパイルとリンクのオプショ
ン』
v 343 ページの『Windows Micro Focus COBOL アプリケーションのコンパイルとリン
クのオプション』
v 346 ページの『Windows Micro Focus COBOL ルーチンのコンパイルとリンクのオプ
ション』
v DB2 Universal Database Personal Edition 概説およびインストール の『DB2 Personal
Edition のインストール要件 (Windows)』
v DB2 Universal Database サーバー機能 概説およびインストール の『パーティション
DB2 サーバーのインストール要件 (Windows)』
18
アプリケーションの構築および実行
第 2 章 セットアップ
一般的なセットアップ情報 . . . . . .
アプリケーション開発環境のセットアップ
データベース・マネージャー構成ファイル
の更新 . . . . . . . . . . . .
Java 環境のセットアップ. . . . . .
SQL プロシージャー環境のセットアップ
UNIX . . . . . . . . . . . . .
UNIX アプリケーション開発環境のセット
アップ . . . . . . . . . . . .
UNIX 環境変数の設定. . . . . . .
Java . . . . . . . . . . . . .
UNIX Java 環境のセットアップ . .
AIX Java 環境のセットアップ . . .
HP-UX Java 環境のセットアップ . .
Linux Java 環境のセットアップ . .
Solaris Java 環境のセットアップ . .
SQL プロシージャー . . . . . . .
UNIX SQL プロシージャー環境のセッ
トアップ . . . . . . . . . .
UNIX のデフォルトの DB2
SQLROUTINE COMPILE COMMAND
値 . . . . . . . . . . . .
. 19
19
. 21
. 22
24
. 25
.
.
.
.
.
.
.
.
.
25
26
27
27
29
29
30
31
32
. 32
Windows . . . . . . . . . . . . .
Windows アプリケーション開発環境のセッ
トアップ . . . . . . . . . . . .
Java . . . . . . . . . . . . . .
Windows Java 環境のセットアップ . .
Windows Java 環境設定値 . . . . .
SQL プロシージャー . . . . . . . .
Windows SQL プロシージャー環境のセ
ットアップ . . . . . . . . . .
サンプル・データベース . . . . . . . .
サンプル・データベースのセットアップ. .
サンプル・データベースの作成. . . . .
ホスト・サーバーまたは AS/400 および
iSeries サーバーでのサンプル・データベー
スの作成 . . . . . . . . . . . .
サンプル・データベースのカタログ . . .
サンプル・データベース・ユーティリティ
ーのバインディング . . . . . . . .
アプリケーションの移行 . . . . . . . .
次に行うこと. . . . . . . . . . . .
35
35
39
39
41
41
41
43
43
44
45
46
47
49
57
. 33
一般的なセットアップ情報
DB2 CLI のセットアップ情報については、コール・レベル・インターフェース ガイド
およびリファレンス を参照してください。
アプリケーション開発環境のセットアップ
DB2 アプリケーションを作成して実行するには、ご使用のオペレーティング・システム
がサポートしているいずれかのプログラミング言語のコンパイラーまたはインタープリ
ターを使う必要があります。各自の開発上の要件に合わせて DB2 環境をセットアップ
して構成しなければなりません。旧バージョンの DB2 から DB2 アプリケーションを
移行するには、従うべき特定の手順があります。また、テストのための DB2 サンプ
ル・データベースを作成することもできます。
前提条件:
まず最初に非 DB2 アプリケーションを作成することによって、使用する予定の DB2
のサポート対象のコンパイラーまたはインタープリターの環境が必ず正しくセットアッ
© Copyright IBM Corp. 1993 - 2002
19
プされるようにします。 その後、問題が発生した場合、ご使用のコンパイラーまたはイ
ンタープリターに付属している資料を参照してください。
使用しているクライアントまたはサーバーのワークステーションに Application
Development Client をインストールします。リモート・クライアントからアプリケーシ
ョンを開発する場合、 DB2 データベース・サーバーが置かれているマシンにクライア
ント・マシンからアクセスできることを確認します。また、クライアントからデータベ
ースに正常に接続できることも確認します。コマンド行プロセッサー (CLP) またはクラ
イアント構成アシスタント (CCA) を使用して、接続をテストすることができます。
手順:
開発環境をセットアップするには、次のようにします。
1. デフォルトが受け入れ可能でない限り、データベース・マネージャー構成ファイルを
更新します。
2. DB2 CLI、Java、または SQL プロシージャーを使用してプログラミングするつもり
の場合、以下の解説を参考にして、プラットフォーム固有の何らかの変更を行う前に
環境を構成する必要があります。
v CLI 環境のセットアップ
v Java 環境のセットアップ
v SQL プロシージャー環境のセットアップ
3. 以下の解説を参考にして、オペレーティング・システム環境を構成します。
v UNIX 環境のセットアップ
v Windows 環境のセットアップ
4. オプション: サンプル・データベースのセットアップ
関連概念:
v 6 ページの『データベース・マネージャー・インスタンス』
v 49 ページの『アプリケーションの移行』
関連タスク:
v 21 ページの『データベース・マネージャー構成ファイルの更新』
v コール・レベル・インターフェース ガイドおよびリファレンス 第 1 巻 の『CLI 環
境のセットアップ』
v 22 ページの『Java 環境のセットアップ』
v 24 ページの『SQL プロシージャー環境のセットアップ』
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
v 35 ページの『Windows アプリケーション開発環境のセットアップ』
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
20
アプリケーションの構築および実行
v 3 ページの『Application Development Client』
v 8 ページの『DB2 でサポートされるサーバー』
v 9 ページの『アプリケーションの作成と実行用として DB2 でサポートされるソフト
ウェア』
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
データベース・マネージャー構成ファイルの更新
このファイルには、アプリケーション開発のための重要な設定が収められています。
ルーチン (ストアード・プロシージャーと UDF) の場合、キーワード KEEPFENCED は
YES のデフォルト値をもっています。そのためルーチン・プロセスは存続し続けます。
ルーチンを開発する場合、同じ共用ライブラリーのロードを何度もテストしたいことが
ありますが、このデフォルト設定によって、ライブラリーの再ロードが妨げられること
があります。ルーチンの開発中はこのキーワードの値を NO に変更しておいて、最終バ
ージョンの共用ライブラリーをロードする準備ができたら、この値を YES に戻すのが最
善の方法です。
スレッド・セーフ・ルーチンの場合、ルーチンの実行に使用したプロセスは完了後もイ
ンスタンス上に残ります (ルーチンの起動に使ったプロセス内のスレッドだけが終了し
ます)。というわけで、新規のルーチンを開発する場合は、ルーチンを非スレッド・セー
フと定義する必要があります。その後、適切であれば、ルーチンを実動化するときにル
ーチンをスレッド・セーフ・モードで実行できるようにします。
注: KEEPFENCED は、旧バージョンの DB2 では KEEPDARI という名称でした。
Java アプリケーション開発の場合、 Java Development Kit (JDK) のインストール先の
パスを使用して JDK_PATH キーワードを更新する必要があります。
注: JDK_PATH は、旧バージョンの DB2 では JDK11_PATH という名称でした。
手順:
この設定を変更するには、次のように入力します。
第 2 章 セットアップ
21
db2 update dbm cfg using <keyword> <value>
たとえば、キーワード KEEPFENCED を NO に設定するには、次のようにします。
db2 update dbm cfg using KEEPFENCED NO
JDK_PATH キーワードをディレクトリー /home/db2inst/jdk13 に設定するには、次のよ
うにします。
db2 update dbm cfg using JDK_PATH /home/db2inst/jdk13
データベース・マネージャー構成ファイル内の現在の設定を表示するには、以下を入力
します。
db2 get dbm cfg
注: Windows では、このコマンドを DB2 コマンド・ウィンドウに入力する必要があり
ます。
関連タスク:
v 22 ページの『Java 環境のセットアップ』
関連資料:
v SQL リファレンス 第 2 巻 の『CREATE FUNCTION ステートメント』
v SQL リファレンス 第 2 巻 の『CREATE PROCEDURE ステートメント』
v コマンド・リファレンス の『GET DATABASE MANAGER CONFIGURATION コマ
ンド』
v コマンド・リファレンス の『RESET DATABASE MANAGER CONFIGURATION コ
マンド』
Java 環境のセットアップ
DB2 データベースにアクセスする Java プログラムは、ご使用のプラットフォームに対
応した Java Development Kit (JDK) を使用して開発できます。 JDK には、Java 用の動
的 SQL API である JDBC (Java Database Connectivity) が含まれています。
DB2 JDBC サポートは、DB2 クライアントおよびサーバー上の Java Enablement オプ
ションの一部として提供されます。このサポートによって、JDBC アプリケーションと
アプレットを構築し、実行できます。これらには動的 SQL だけが含まれ、 Java 呼び
出しインターフェースを使用して SQL ステートメントを DB2 に渡します。
DB2 Java Embedded SQL (SQLJ) サポートは、 DB2 AD クライアントの一部として提
供されます。 DB2 JDBC サポートとともに DB2 SQLJ サポートを利用することで、
SQLJ アプレットおよびアプリケーションの構築と実行が可能になります。これらに
は、静的 SQL が含まれ、 DB2 データベースにバインドされた組み込み SQL ステー
トメントを使用します。
22
アプリケーションの構築および実行
DB2 AD クライアントによって提供される SQLJ サポートには、次のものが含まれま
す。
v DB2 SQLJ 変換プログラム sqlj。これは、SQLJ プログラム中の組み込み SQL ステ
ートメントを Java ソース・ステートメントで置き換え、 SQLJ プログラム中に検出
される SQL 操作に関する情報を含む、順番に並べられたプロファイルを生成しま
す。
v DB2 SQLJ プロファイル・カスタマイザー db2profc。これは逐次化プロファイルに
保管された SQL ステートメントをプリコンパイルし、それらを実行時関数呼び出し
にカスタマイズし、そして DB2 データベース中にパッケージを生成します。
v DB2 SQLJ プロファイル・プリンター db2profp。これはカスタマイズしたバージョ
ンの DB2 プロファイルの内容をプレーン・テキスト形式で印刷します。
手順:
DB2 Java アプリケーションを実行するには、ネイティブ・スレッド・サポートを提供
する Java 仮想マシン (JVM) をインストールして呼び出さなければなりません。ネイテ
ィブ・スレッドを使用して Java アプリケーションを実行するには、コマンド内の
-native オプションを使用することができます。たとえば、Java サンプル・アプリケー
ション DbInfo.class を実行するには、次のコマンドを使うことができます。
java -native DbInfo
THREADS_FLAG 環境変数を native に設定すれば、 Java 仮想マシンによっては、デフ
ォルトのスレッド・サポートとしてネイティブ・スレッドを指定することができます。
本書では、ネイティブ・スレッド・サポートがデフォルトであることを前提としていま
す。システム上でネイティブ・スレッドをデフォルトにする方法については、 JVM 資
料を参照してください。
DB2 Java アプレットを実行するには、ネイティブ・スレッド・サポートまたはグリー
ン・スレッド・サポートのいずれかを提供する Java 仮想マシンを呼び出すことができ
ます。
上記がすべてインストール済みで稼働状態になったら、以下に示すいずれかのステップ
を行って、各自のオペレーティング・システムの Java 環境をセットアップすることが
できます。
v UNIX Java 環境のセットアップ
v Windows Java 環境のセットアップ
DB2 Java アプリケーション開発の最新の更新事項については、次の Web ページを参照
してください。
http://www.ibm.com/software/data/db2/java
関連タスク:
v 27 ページの『UNIX Java 環境のセットアップ』
第 2 章 セットアップ
23
v 39 ページの『Windows Java 環境のセットアップ』
関連資料:
v コマンド・リファレンス の『db2profc - DB2 SQLj プロファイル・カスタマイザ
ー・コマンド』
v コマンド・リファレンス の『db2profp - DB2 SQLj プロファイル・プリンター・コ
マンド』
SQL プロシージャー環境のセットアップ
コンパイラーの構成は、次の 2 つの DB2 レジストリー変数を使用して行います。
DB2_SQLROUTINE_COMPILER_PATH
これには、コンパイラー環境変数を設定するスクリプトのパス名が割り振られ
ます。
DB2_SQLROUTINE_COMPILE_COMMAND
これには、 SQL プロシージャー用に生成された C ファイルを DB2 がコンパ
イルするときに使用するフルコマンドが割り振られます。
db2set コマンドを使用するか、またはデベロップメント・センターの「SQL ストアー
ド・プロシージャー・ビルド・オプション (SQL Stored Procedures Build Options)」ダイ
アログを使用して、これらの DB2 レジストリー変数の値を設定します。「SQL ストア
ード・プロシージャー・ビルド・オプション (SQL Stored Procedures Build Options)」ダ
イアログを使用すると、変更を有効にするために物理的にデータベース・サーバーにア
クセスしたり、これを再始動したりする必要がなくなります。
以下のステップでは、db2set コマンドの例を示します。
前提条件:
SQL プロシージャーのサポートとして、Application Development Client と、 DB2 でサ
ポートされる C または C++ コンパイラーをサーバーにインストールする必要がありま
す。
手順:
SQL プロシージャー環境を構成するには、ご使用のプラットフォームに応じて以下のう
ちのいずれかのステップを行います。
v
UNIX SQL プロシージャー環境のセットアップ
v
Windows SQL プロシージャー環境のセットアップ
関連概念:
v 管理ガイド: パフォーマンス の『DB2 レジストリー変数と環境変数』
関連タスク:
24
アプリケーションの構築および実行
v 32 ページの『UNIX SQL プロシージャー環境のセットアップ』
v 41 ページの『Windows SQL プロシージャー環境のセットアップ』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
UNIX
UNIX DB2 CLI のセットアップ情報については、コール・レベル・インターフェース
ガイドおよびリファレンス を参照してください。
UNIX アプリケーション開発環境のセットアップ
データベース・インスタンス用の環境変数を設定する必要があります。各データベー
ス・マネージャー・インスタンスにはそれぞれ、 db2profile および db2cshrc という
2 つのファイルがあります。これらは、そのインスタンス用の環境変数を設定するため
のスクリプトです。
手順:
次のように、ご使用のシェルの正しいスクリプトを実行します。
bash または Korn シェルの場合
. $HOME/sqllib/db2profile
C シェルの場合
source $HOME/sqllib/db2cshrc
ここで $HOME は、インスタンス所有者のホーム・ディレクトリーです。
このコマンドを .profile または .login ファイルに組み込めば、ログオン時にコマン
ドは自動的に実行されます。
ODBC または DB2 CLI、Java、または SQL プロシージャーを使用する予定の場合、以
下のトピック中に示されているステップを行います。
v
UNIX ODBC 環境のセットアップ
v
UNIX Java 環境のセットアップ
第 2 章 セットアップ
25
v
UNIX SQL プロシージャー環境のセットアップ
関連概念:
v 26 ページの『UNIX 環境変数の設定』
関連タスク:
v コール・レベル・インターフェース ガイドおよびリファレンス 第 1 巻 の『UNIX
ODBC 環境のセットアップ』
v 27 ページの『UNIX Java 環境のセットアップ』
v 32 ページの『UNIX SQL プロシージャー環境のセットアップ』
関連資料:
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
UNIX 環境変数の設定
ご使用の UNIX® プラットフォームに応じて、以下に示されている環境変数の値は
db2profile (bash または korn シェルの場合) または db2cshrc (C シェルの場合) 内に
設定され、これらのファイルの呼び出しは .profile (bash または korn シェル) または
.login (C シェル) ファイルに入れられます。
AIX:
v PATH。sqllib/bin を含むいくつかの DB2® ディレクトリーが組み込まれ
ます。
v LIBPATH。ディレクトリー sqllib/lib が組み込まれます (以下の注を参
照)。
HP-UX:
v PATH。sqllib/bin を含むいくつかの DB2 ディレクトリーが組み込まれま
す。
v SHLIB_PATH (32 ビットおよび 64 ビット) または LD_LIBRARY_PATH
(64 ビット)。ディレクトリー sqllib/lib が組み込まれます (以下の注を参
照)。
Linux および Solaris:
v PATH。sqllib/bin を含むいくつかの DB2 ディレクトリーが組み込まれま
す。
26
アプリケーションの構築および実行
v LD_LIBRARY_PATH。ディレクトリー sqllib/lib が組み込まれます (以下
の注を参照)。
注: 64 ビット DB2 インスタンスにおいて 32 ビットのローカル・アプリケーションを
実行する場合、 LIBPATH、SHLIB_PATH、および LD_LIBRARY_PATH には
sqllib/lib ではなく sqllib/lib32 が入っていなければなりません。
インスタンスの作成時に、sqllib/userprofile と sqllib/usercshrc というブランク・
ファイルが作成されるので、ユーザーはこれらを使用して独自のインスタンス環境を設
定できます。これらのファイルは、 DB2 フィックスパック・インスタンスの更新
(db2iupdt) または将来のバージョンのインストールの際に変更されることはありませ
ん。 db2profile または db2cshrc スクリプト中では新規の環境設定値を必要としない
場合、それに対応する「ユーザー」スクリプト (db2profile または db2cshrc スクリプ
トの末尾で呼び出されます) を使用してその設定値をオーバーライドすることができま
す。インスタンスの移行 (db2imigr) の際には、ユーザーが変更した環境が引き続き使
用されるようにするために、ユーザー・スクリプトがコピーされます。これらのユーザ
ー・スクリプトは、DB2 バージョン 7 以降でのみ使用可能です。
関連タスク:
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
Java
UNIX Java 環境のセットアップ
DB2 JDBC サポートを利用して UNIX 上で JDBC プログラムや SQLJ プログラムを実
行するために、 Java 環境を更新するコマンドが、データベース・マネージャー・ファ
イル db2profile と db2cshrc に組み込まれています。 DB2 インスタンスの作成時に
は、 .bashrc、.profile、.cshrc のいずれか (あるいはその全部) の内容を以下のよう
に変更します。
1. THREADS_FLAG を ″native″ に設定します。 (HP-UX、Linux、および Solaris のみ)
2. CLASSPATH に次のものを含めます。
v ″.″ (現行ディレクトリー)
v ファイル sqllib/java/db2java.zip
v ファイル sqllib/java/db2jcc.jar
SQLJ プログラムを作成するには、次のファイルを組み込むように CLASSPATH を更新
します。
sqllib/java/sqlj.zip
SQLJ プログラムを実行するには、次のファイルを組み込むように CLASSPATH を更新
します。
第 2 章 セットアップ
27
sqllib/java/runtime.zip
手順:
DB2 Java ルーチン (ストアード・プロシージャーと UDF) を実行するには、そのマシ
ンの JDK のインストール先のパスを組み込むように、サーバー上の DB2 データベー
ス・マネージャー構成を更新する必要があります。そのためには、サーバーのコマンド
行で次のように入力します。
db2 update dbm cfg using JDK_PATH /home/db2inst/jdk13
/home/db2inst/jdk13 は、 JDK がインストールされているパスです。
次のコマンドをサーバーで入力して、 DB2 データベース・マネージャー構成をチェッ
クし、 JDK_PATH フィールドの値が正しいことを確認できます。
db2 get dbm cfg
出力をファイルにリダイレクトすれば、一層容易に表示できます。 JDK_PATH フィール
ドは、出力の先頭近くに表示されます。
上記のものがインストール済みで稼働状態になったら、以下に示すいずれかのステップ
を行って、各自の UNIX オペレーティング・システム環境をセットアップすることがで
きます。
v AIX Java 環境のセットアップ
v HP-UX Java 環境のセットアップ
v Linux Java 環境のセットアップ
v Solaris Java 環境のセットアップ
関連タスク:
v 29 ページの『AIX Java 環境のセットアップ』
v 29 ページの『HP-UX Java 環境のセットアップ』
v 30 ページの『Linux Java 環境のセットアップ』
v 31 ページの『Solaris Java 環境のセットアップ』
v 21 ページの『データベース・マネージャー構成ファイルの更新』
関連資料:
v コマンド・リファレンス の『GET DATABASE MANAGER CONFIGURATION コマ
ンド』
v コマンド・リファレンス の『RESET DATABASE MANAGER CONFIGURATION コ
マンド』
28
アプリケーションの構築および実行
AIX Java 環境のセットアップ
手順:
AIX 上で DB2 JDBC サポートを利用して Java アプリケーションを構築するには、以
下が必要です。
1. Java Development Kit (JDK) バージョン 1.3.1 および IBM 提供の Java Runtime
Environment (JRE) (AIX 版) バージョン 1.3.1。
2. DB2 Java Enablement。これは AIX クライアントおよびサーバーに対応した DB2
Universal Database バージョン 8 に装備されています。
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
HP-UX Java 環境のセットアップ
手順:
HP-UX 上で DB2 JDBC サポートを利用して Java アプリケーションを作成するには、
開発マシンで以下をインストールして構成する必要があります。
1. Software Developer’s Kit および Runtime Environment 1.3.1 for HP-UX 11.0 および
Hewlett-Packard の 11i PA-RISC。
2. DB2 Java Enablement。これは HP-UX クライアントおよびサーバーに対応した DB2
Universal Database バージョン 8 に装備されています。
Java ルーチン (ストアード・プロシージャーとユーザー定義関数) を実行するには、共
用ライブラリー・パスを必ず次のようにしてください。
export SHLIB_PATH=$JAVADIR/jre/lib/PA_RISC:¥
$JAVADIR/jre/lib/PA_RISC/classic:¥
$HOME/sqllib/lib:¥
/usr/lib:$SHLIB_PATH
通常、$JAVADIR は、/opt/java1.3 (Java SDK のデフォルト・ロケーション) に設定し
ます。
注: DB2 では、ルーチン用の HotSpot Java 仮想計算機はサポートされません。
第 2 章 セットアップ
29
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
Linux Java 環境のセットアップ
手順:
Linux 上で DB2 JDBC サポートを利用して Java アプリケーションを構築するには、開
発マシンで以下をインストールして構成する必要があります。
1. 以下のいずれかになります。
v Linux on Intel の場合: IBM Developer Kit および Runtime Environment (Linux
版)、 Java 2 Technology Edition バージョン 1.3.1 の 32 ビット・バージョン。
v Linux/390 の場合: IBM zSeries Developer Kit for Linux、Java 2 Technology
Edition。
v Linux on IA64 の場合: IBM Developer Kit および Runtime Environment (Linux
版)、 Java 2 Technology Edition バージョン 1.3.1 の 64 ビット・バージョン。
2. DB2 Java Enablement。これは Linux クライアントおよびサーバーに対応した DB2
Universal Database バージョン 8 に装備されています。
Java ストアード・プロシージャーまたはユーザー定義関数を実行するには、 Linux ラ
ンタイム・リンカーが特定の Java 共用ライブラリーにアクセスできる必要があり、し
かも DB2 がそのライブラリーと Java 仮想計算機をロードできる必要があります。そ
のロードを行うプログラムは、setuid 特権のもとで実行されるので、 /lib または
/usr/lib 内の依存ライブラリーだけが探索されることになります。
Java 共用ライブラリーの位置を /etc/ld.so.conf に追加することができますが、その
ようなライブラリーを指すシンボリック・リンクを /usr/lib ディレクトリー内に作成
することをお勧めします。 IBM JDK 1.3 の場合、 libjava.so、libjvm.so、および
libhpi.so へのシンボリック・リンクが必要です。シンボリック・リンクを作成するに
は、root として次のようなコマンドを実行します。
cd
ln
ln
ln
30
/usr/lib
-fs JAVAHOME/jre/bin/libjava.so .
-fs JAVAHOME/jre/bin/classic/libjvm.so .
-fs JAVAHOME/jre/bin/libhpi.so .
アプリケーションの構築および実行
ただし JAVAHOME は、JDK のベース・ディレクトリーです。 DB2 によってこのライ
ブラリーが見つけられない場合に Java ルーチンを実行しようとすると、 -4301 エラー
が発生し、ライブラリーが見つからないことを知らせるメッセージが管理通知ログ内に
置かれます。
/etc/ld.so.conf に Java 共用ライブラリーの位置を追加する場合は、次のコマンドを
root として実行することによって、実行時リンカー・キャッシュをリフレッシュする必
要があります。
bash# ldconfig
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
Solaris Java 環境のセットアップ
手順:
Solaris オペレーティング環境で DB2 JDBC サポートを利用して Java アプリケーショ
ンを構築するには、開発マシンで次のものをインストールし、構成する必要がありま
す。
1. Sun Microsystems の Java Development Kit (JDK) (Solaris 版) バージョン 1.3.1。
2. DB2 Java Enablement。これは Solaris クライアントおよびサーバーに対応した DB2
Universal Database バージョン 8 に装備されています。
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
第 2 章 セットアップ
31
SQL プロシージャー
UNIX SQL プロシージャー環境のセットアップ
SQL プロシージャーでは、コンパイラー構成を使用してサーバー上で
DB2_SQLROUTINE_COMPILER_PATH と DB2_SQLROUTINE_COMPILE_COMMAND
の 2 つの環境変数をセットアップする必要があります。
制約事項:
インスタンス所有者は、分離 ID の 1 次グループに所属していなければなりません。
手順:
ストアード・プロシージャーを初めてコンパイルする時には、 DB2 が実行可能スクリ
プト・ファイル $HOME/sqllib/function/routine/sr_cpath (コンパイラー環境変数のデ
フォルト値を含んでいます) を生成します。ご使用のコンパイラーにはデフォルト値が
適していない場合は、以下のいずれかを行ってください。
v sr_cpath スクリプト・ファイルを編集します。
v 所定の設定値を指定する別の実行可能スクリプトの全パス名が入るように
DB2_SQLROUTINE_COMPILER_PATH DB2 レジストリー変数を設定します。
Application Development Client のインストールは、各サーバー・プラットフォームでサ
ポートされるコンパイラーのうちの最低 1 つで動作するデフォルトのコンパイル・コマ
ンドを提供します。
AIX
IBM C for AIX バージョン 5.0
HP-UX HP aC++ バージョン A.03.31
Linux
GNU/Linux g++
Solaris Forte C++ バージョン 5.0、6、および 6.1
別のコンパイラーを使用する、またはデフォルトのコマンドをカスタマイズするには、
次の例のように、 DB2_SQLROUTINE_COMPILE_COMMAND を DB2 レジストリー変数に設定
する必要があります。
db2set DB2_SQLROUTINE_COMPILE_COMMAND=<compile_command>
ここで、<compile_command> は C または C++ コンパイル・コマンドであり、ルーチ
ンの作成に必要なオプションやパラメーターが付帯します。設定を有効にするには、
db2start コマンドを実行する必要があります。
コンパイラー・コマンドにキーワード SQLROUTINE_FILENAME を使用して、生成された
SQC、C、PDB、DEF、EXP、メッセージ・ログ、および共有ライブラリー・ファイルの
ファイル名を置き換えることができます。また、AIX の場合にのみ、キーワード
32
アプリケーションの構築および実行
SQLROUTINE_ENTRY を使用してエントリー・ポイントを置き換えることができます。この
ようなキーワードを 2 つとも使用した例は、以下のような、 IBM C (AIX 版) バージ
ョン 5.0 のデフォルト値 DB2_SQLROUTINE_COMPILE_COMMAND を設定するコマ
ンドにおいて見ることができます。
db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -I$HOME/sqllib/include ¥
SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY ¥
-o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
関連タスク:
v 145 ページの『SQL プロシージャー用の中間ファイルの保存』
v 147 ページの『SQL プロシージャーのプリコンパイル・オプションとバインド・オプ
ションのカスタマイズ』
v 148 ページの『SQL プロシージャーのバックアップとリストア』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
関連資料:
v 33 ページの『UNIX のデフォルトの DB2 SQLROUTINE COMPILE COMMAND
値』
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
UNIX のデフォルトの DB2 SQLROUTINE COMPILE COMMAND 値
以下は、サポートされている UNIX サーバー・プラットフォーム上の C または C++
コンパイラーの DB2_SQLROUTINE_COMPILE_COMMAND のデフォルト値を設定する
コマンドです。
AIX
IBM C (AIX 版) バージョン 5.0 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlc -I$HOME/sqllib/include ¥
SQLROUTINE_FILENAME.c -bE:SQLROUTINE_FILENAME.exp ¥
-e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
第 2 章 セットアップ
33
IBM VisualAge C++ 5.0 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=xlC -I$HOME/sqllib/include ¥
SQLROUTINE_FILENAME.C -bE:SQLROUTINE_FILENAME.exp ¥
-e SQLROUTINE_ENTRY -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定され
ていない場合、これがデフォルトのコンパイル・コマンドになります。
注: AIX 上で 64 ビットの SQL プロシージャーをコンパイルする場合は、上
のコマンドに -q64 オプションを追加してください。
IBM VisualAge C++ (AIX 版) バージョン 5 の増分コンパイラーを使用するに
は:
db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld"
vacbld コマンドの後に構成ファイルを指定しない場合、 SQL プロシージャー
を作成する最初の試行の時点で、DB2 は以下のデフォルト構成ファイルを生成
します。
$HOME/sqllib/function/routine/sqlproc.icc
DB2_SQLROUTINE_COMPILE_COMMAND の DB2 レジストリー値を設定する際は、自
分で所有する構成ファイルを指定することができます。
db2set DB2_SQLROUTINE_COMPILE_COMMAND="vacbld ¥
$HOME/sqllib/function/sqlproc.icc"
HP-UX HP C Compiler バージョン B.11.11.02 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc +DAportable +ul -Aa +z ¥
-I$HOME/sqllib/include -c SQLROUTINE_FILENAME.c; ¥
ld -b -o SQLROUTINE_FILENAME SQLROUTINE_FILENAME.o ¥
-L$HOME/sqllib/lib -ldb2
HP aC++ バージョン A.03.31 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=aCC +DAportable +u1 +z -ext ¥
-I$HOME/sqllib/include SQLROUTINE_FILENAME.C -b ¥
-o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定され
ていない場合、これがデフォルトのコンパイル・コマンドになります。
注: HP-UX で 64-bit SQL プロシージャーをコンパイルするには、
+DAportable オプションを使用し、 +DA2.0W オプションを上のコマンドに
追加します。
Linux
GNU/Linux gcc を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -fpic ¥
-I$HOME/sqllib/include SQLROUTINE_FILENAME.c ¥
-shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
34
アプリケーションの構築および実行
GNU/Linux g++ を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=g++ -fpic ¥
-I$HOME/sqllib/include SQLROUTINE_FILENAME.C ¥
-shared -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -ldb2
DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定され
ていない場合、これがデフォルトのコンパイル・コマンドになります。
Solaris Forte C バージョン 5.0 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=cc -xarch=v8plusa -Kpic ¥
-I$HOME/sqllib/include SQLROUTINE_FILENAME.c ¥
-G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib ¥
-R$HOME/sqllib/lib -ldb2
Forte C++ バージョン 5.0 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND=CC -xarch=v8plusa -Kpic ¥
-I$HOME/sqllib/include SQLROUTINE_FILENAME.C ¥
-G -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib ¥
-R$HOME/sqllib/lib -ldb2
DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定され
ていない場合、これがデフォルトのコンパイル・コマンドになります。
注:
1. libdb2.so にリンクする際、コンパイラーが有効な実行可能プログラムを生
成しないという問題を避けるため、コンパイラー・オプション、
-xarch=v8plusa がデフォルトのコンパイラー・コマンドに追加されていま
す。
2. Solaris で 64-bit SQL プロシージャーをコンパイルするには、
-xarch=v8plusa オプションを使用し、 -xarch=v9 オプションを上のコマン
ドに追加します。
関連タスク:
v 32 ページの『UNIX SQL プロシージャー環境のセットアップ』
Windows
Windows DB2 CLI のセットアップ情報については、コール・レベル・インターフェー
ス ガイドおよびリファレンス を参照してください。
Windows アプリケーション開発環境のセットアップ
Windows XP、Windows .Net Server、Windows NT、または Windows 2000 上に DB2
AD クライアントをインストールすると、環境変数 INCLUDE、LIB、PATH、
DB2PATH、および DB2INSTANCE を使用してインストール・プログラムによって構成
レジストリーが更新されます。デフォルトのインスタンスは DB2 です。 Windows 98
第 2 章 セットアップ
35
または Windows ME 上に DB2 AD クライアントをインストールすると、 autoexec.bat
ファイルがインストール・プログラムによって更新されます。
これらの環境変数をオーバーライドして、マシンまたは現在ログオンしているユーザー
の値を設定することができます。これらの環境変数の変更は、慎重に行ってください。
DB2PATH 環境変数は変更しないでください。 DB2INSTANCE は、ユーザー環境レベ
ルだけで定義する必要があります。 DB2INSTANCE が設定されていないときに使用す
るデフォルトのインスタンス名が定義してある DB2INSTDEF レジストリー変数を使用
する場合、 DB2INSTANCE は必要ありません。
手順:
環境変数の設定値をオーバーライドするには、以下のいずれかを使用してください。
v Windows XP のコントロール・パネル
v Windows .NET Server のコントロール・パネル
v Windows NT のコントロール・パネル
v Windows 2000 のコントロール・パネル
v Windows 98 または Windows ME のコマンド・ウィンドウ
v Windows 98 または Windows ME の autoexec.bat ファイル
コマンド内で変数 %DB2PATH% を使用するときは、 set
LIB=″%DB2PATH%¥lib″;%LIB% のように、全パスを引用符で囲んでください。この変
数のデフォルト・インストール値は ¥Program Files¥IBM¥SQLLIB ですが、その中でスペ
ースが使われているので、引用符を使用しないとエラーが起きる場合があります。
さらに、以下に示す特定のステップに従って、 DB2 アプリケーションを実行させなけ
ればなりません。
v C または C++ プログラムを作成するときは、必ず INCLUDE 環境変数に
%DB2PATH%¥INCLUDE が最初のディレクトリーとして含まれていなければなりません。
たとえば、 Microsoft Visual C++ コンパイラー環境セットアップ・ファイル
Vc¥bin¥vcvars32.bat には、以下のコマンドがあります。
set INCLUDE=%MSVCDir%¥INCLUDE;%MSVCDir%¥...¥ATL¥INCLUDE;%INCLUDE%
このファイルを DB2 で使用するには、まず、%DB2PATH%¥INCLUDE パスを設定する
%INCLUDE% を以下のようにリストの末尾から先頭に移動します。
set INCLUDE=%INCLUDE%;%MSVCDir%¥INCLUDE;%MSVCDir%¥...¥ATL¥INCLUDE;
v Micro Focus COBOL プログラムを作成するときは、 COBCPY 環境変数を
%DB2PATH%¥INCLUDE¥cobol_mf を指すように設定してください。
v IBM COBOL プログラムを作成するときは、 SYSLIB 環境変数を
%DB2PATH%¥INCLUDE¥cobol_a を指すように設定してください。
v 以下を使用して、必ず LIB 環境変数が %DB2PATH%¥lib を指すようにしてください。
36
アプリケーションの構築および実行
set LIB="%DB2PATH%¥lib";%LIB%
注: 32 ビット環境からの 64 ビット・アプリケーションの相互開発を可能にするに
は、 LIB 環境変数が必ず %DB2PATH%¥lib¥Win64 を指すようにしなければなりま
せん。その意味は、そのデフォルト設定を変更する必要があるということです。
デフォルトでは、環境変数は %DB2PATH%¥lib を指していますが、これは、 32 ビ
ット環境で 32 ビット・アプリケーションを、または 64 ビット環境で 64 ビッ
ト・アプリケーションを開発するためのものです。
v DB2COMM 環境変数を、必ずリモート・データベースのサーバーで設定してください。
v セキュリティー・サービスが、SERVER 認証用のサーバー、および CLIENT 認証の
レベルに応じてクライアントで開始されているようにしてください。セキュリティ
ー・サービスを手動で開始するには、 NET START DB2NTSECSERVER コマンドを使用し
ます。
通常、セキュリティー・サービスを自動的に開始したいのは、ワークステーション
が、クライアント認証用に構成されたサーバーと接続する DB2 クライアントとして
動作している場合だけです。 セキュリティー・サービスを自動的に開始させるため
には、以下のことを実行してください。
Windows NT
1. 「スタート」ボタンをクリックします。
2. 「設定」をクリックします。
3. 「コントロール パネル」をクリックします。
4. 「コントロール パネル」で、「サービス」をクリックします。
5. 「サービス」ウィンドウで、「DB2 セキュリティー・サーバー (DB2
Security Server)」を強調表示します。
6. 設定値として「開始」と「自動」が表示されない場合は、「スタートア
ップ」をクリックします。
7. 「自動」をクリックします。
8. 「OK」をクリックします。
9. 設定値を有効にするために、マシンをリブートします。
Windows 2000 および Windows .NET Server
1. 「スタート」ボタンをクリックします。
2. 「設定」をクリックします。
3. 「コントロール パネル」をクリックします。
4. 「管理ツール」をクリックします。
5. 「サービス」をクリックします。
6. 「サービス」ウィンドウで、「DB2 セキュリティー・サーバー (DB2
Security Server)」を強調表示します。
第 2 章 セットアップ
37
7. 設定値として「開始」と「自動」が表示されない場合は、トップ・メニ
ューで「操作」をクリックします。
8. 「プロパティ」をクリックします。
9. 「一般 (General)」タブにいることを確認します。
10. 「スタートアップの種類」ドロップダウン・メニューから「自動」を選
択します。
11. 「OK」をクリックします。
12. 設定値を有効にするために、マシンをリブートします。
Windows XP
1. 「スタート」ボタンをクリックします。
2. 「設定」をクリックします。
3. 「コントロール パネル」をクリックします。
4. 「パフォーマンスと保守 (Performance and Maintenance)」をクリックし
ます。
5. 「管理ツール」をクリックします。
6. 「サービス」をクリックします。
7. 「サービス」ウィンドウで、「DB2 セキュリティー・サーバー (DB2
Security Server)」を強調表示します。
8. 設定値として「開始」と「自動」が表示されない場合は、トップ・メニ
ューで「操作」をクリックします。
9. 「プロパティ」をクリックします。
10. 「一般 (General)」タブにいることを確認します。
11. 「スタートアップの種類」ドロップダウン・メニューから「自動」を選
択します。
12. 「OK」をクリックします。
13. 設定値を有効にするために、マシンをリブートします。
Windows XP、Windows .NET Server、Windows NT、または Windows 2000 環境にお
けるデータベース・マネージャーはサービスとしてインプリメントされているため、
問題が生じていた場合でも、このサービスの開始時にエラーや警告は戻されません。
つまり、db2start または NET START コマンドを実行した場合、いずれかの通信サブ
システムが開始できなかったとしても警告が戻されないということです。したがっ
て、ユーザーは必ずイベント・ログまたは DB2 管理通知ログを調べて、これらのコ
マンドの実行中に起きた可能性のあるエラーを確認しなければなりません。
DB2 CLI、Java、または SQL プロシージャーを使用する予定の場合、以下の該当す
るタスクに進んでください。
–
38
Windows CLI 環境のセットアップ
アプリケーションの構築および実行
–
Windows Java 環境のセットアップ
–
Windows SQL プロシージャー環境のセットアップ
関連タスク:
v コール・レベル・インターフェース ガイドおよびリファレンス 第 1 巻 の
『Windows CLI 環境のセットアップ』
v 39 ページの『Windows Java 環境のセットアップ』
v 41 ページの『Windows SQL プロシージャー環境のセットアップ』
関連資料:
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
Java
Windows Java 環境のセットアップ
ここでは、 Windows 環境で DB2 Java プログラムを作成して実行するのに必要な情報
を示しています。
手順:
Windows オペレーティング・システム上で DB2 JDBC サポートを利用して Java アプ
リケーションを構築するには、開発マシンで次のものをインストールして構成する必要
があります。
1. 以下のいずれかになります。
v IBM Developer Kit および Runtime Environment (Windows 版)、 Java 2
Technology Edition バージョン 1.3.1。
v Java Development Kit (JDK) 1.3.1 (Win32 版) (Sun Microsystems 社提供)
2. DB2 Java Enablement。これは Windows クライアントおよびサーバーに対応した
DB2 Universal Database バージョン 8 に装備されています。
DB2 Java ルーチン (ストアード・プロシージャーと UDF) を実行するには、そのマシ
ンの JDK のインストール先のパスを組み込むように、サーバー上の DB2 データベー
ス・マネージャー構成を更新する必要があります。そのためには、サーバーのコマンド
行で次のように入力します。
db2 update dbm cfg using JDK_PATH c:¥jdk13
ただし c:¥jdk13 は JDK のインストール先のパスです。
第 2 章 セットアップ
39
JDK のインストール先のパスに、 1 つ以上のスペースを使ったディレクトリー名が入
っている場合は、そのパスを単一引用符で囲んでください。たとえば、次のようにしま
す。
db2 update dbm cfg using JDK_PATH ’c:¥Program Files¥jdk13’
あるいは、次のような、スペースを使わない短縮形式のディレクトリー名を使用しま
す。
db2 update dbm cfg using JDK_PATH c:¥progra~1¥jdk13
次のコマンドをサーバーで入力して、 DB2 データベース・マネージャー構成をチェッ
クし、 JDK_PATH フィールドの値が正しいことを確認できます。
db2 get dbm cfg
出力をファイルにリダイレクトすれば、一層容易に表示できます。 JDK_PATH フィール
ドは、出力の先頭近くに表示されます。
IBM Java Development Kit 用の Java 環境を設定するために、次のコマンドをバッチ・
ファイルに入れることができます。バッチ・ファイルは、DB2 コマンド・ウィンドウで
実行しなければなりません。すべての必須パスを、使用している特定の環境に合わせて
変更してください。サポートされている他の JDK にも同様のコマンドを使用できま
す。
以下は、 Sun JDK 1.3.1 環境を設定するバッチ・ファイルの例のコマンドを示していま
す。
set JDKPATH=D:¥JAVA¥SUNjdk131
set PATH=%JDKPATH%¥bin;%PATH%
set CLASSPATH=%CLASSPATH%;%JDKPATH%¥lib¥jdbc2_0-stdext.jar
db2 update dbm cfg using JDK_PATH %JDKPATH%
db2 terminate
db2stop
db2start
バッチ・ファイルは、DB2 コマンド・ウィンドウで実行しなければなりません。
関連概念:
v 41 ページの『Windows Java 環境設定値』
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 43 ページの『サンプル・データベースのセットアップ』
関連資料:
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
40
アプリケーションの構築および実行
Windows Java 環境設定値
サポートされる Windows® プラットフォーム上で JDBC プログラムや SQLJ プログラ
ムを DB2® JDBC サポートを利用して実行するために、 CLASSPATH は以下のものを
組み込むように DB2 のインストール時に自動的に更新されます。
v ″.″ (現行ディレクトリー)
v ファイル sqllib¥java¥db2java.zip
v ファイル sqllib¥java¥db2jcc.jar
SQLJ プログラムを作成するには、次のファイルを組み込むように CLASSPATH を更新
します。
sqllib¥java¥sqlj.zip
SQLJ プログラムを実行するには、次のファイルを組み込むように CLASSPATH を更新
します。
sqllib¥java¥runtime.zip
注: Microsoft Software Developer’s Kit for Java は DB2 バージョン 8 ではサポートさ
れません。これは、SQLJ のカスタマイズでもタイプ 2 の JDBC アプリケーショ
ンでも使用できません。
関連タスク:
v 39 ページの『Windows Java 環境のセットアップ』
SQL プロシージャー
Windows SQL プロシージャー環境のセットアップ
SQL プロシージャーは、Windows NT、Windows 2000、Windows XP、および Windows
.NET Server の各 Windows オペレーティング・システムでサポートされます。
SQL プロシージャーでは、サーバー上のコンパイラー構成を使用して
DB2_SQLROUTINE_COMPILER_PATH と DB2_SQLROUTINE_COMPILE_COMMAND
の 2 つの環境変数を設定する必要があります。コンパイラーの環境変数が SYSTEM 変
数として設定されていると、構成は必要ありません。
制約事項:
64 ビットの Windows では、変数 DB2_SQLROUTINE_COMPILER_PATH を設定しよ
うとすると問題が生じることがあります。この変数の場合、ファイルの全パスが必要で
あり、しかも引き数/スイッチは使用できないからです。したがって、もしユーザーが以
下のように指定すると、作動しません。
第 2 章 セットアップ
41
db2set DB2_SQLROUTINE_COMPILER_PATH="C:¥MsSdk64¥SetEnv.bat /XP64 /RETAIL"
その対処法としては、たとえば以下のように、適切なフラグを使用して Microsoft のセ
ットアップ・バッチ・ファイルを呼び出す別のバッチ・ファイルを作成します。
db2set DB2_SQLROUTINE_COMPILER_PATH="C:¥MsSdk64¥SetEnvXP64.bat"
C:¥MsSdk64¥SetEnvXP64.bat の内容は次のようになります。
call C:¥MsSdk64¥SetEnv.bat /XP64 /RETAIL
Windows の 32 ビット環境ではこの問題は起きません。 vcvars32.bat ではパラメータ
ーは必要もなく、受け入れられることもないからです。
手順:
C++ コンパイラーが C: ドライブにインストールされていると仮定して、
DB2_SQLROUTINE_COMPILER_PATH DB2 レジストリー変数を以下のように設定します。
Microsoft Visual C++ バージョン 5.0 の場合:
db2set DB2_SQLROUTINE_COMPILER_PATH="c:¥devstudio¥vc¥bin¥vcvars32.bat"
Microsoft Visual C++ バージョン 6.0 の場合:
db2set DB2_SQLROUTINE_COMPILER_PATH="c:¥Micros~1¥vc98¥bin¥vcvars32.bat"
必要であれば、ドライブまたはパスを変更して、ご使用のシステムの C++ コンパイラ
ーの位置を反映させてください。
コンパイル・コマンドの場合、キーワード SQLROUTINE_FILENAME を使用して、生
成された SQC、C、PDB、DEF、EXP、メッセージ・ログ、および共有ライブラリー・
ファイルのファイル名を置き換えます。 Microsoft Visual C++ バージョン 5.0 および
6.0 を使用するには:
db2set DB2_SQLROUTINE_COMPILE_COMMAND="cl -Od -W2 /TC -D_X86_=1
-I%DB2PATH%¥include SQLROUTINE_FILENAME.c /link -dll
-def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll
%DB2PATH%¥lib¥db2api.lib"
DB2_SQLROUTINE_COMPILE_COMMAND DB2 レジストリー変数が設定されていない
場合、これがデフォルトのコンパイル・コマンドになります。
以下に、Microsoft Visual C++ バージョン 6.0 コンパイラー用の環境セットアップ・コ
マンドの例を示してあります。下記のコマンドを実行するには、コマンドを切り取って
バッチ・ファイルに貼り付けてから、 DB2 コマンド・ウィンドウでそのファイルを実
行します。ご使用の特定の環境に合わせて、パスの設定を含めて、必要な変更をすべて
加えてください。
42
アプリケーションの構築および実行
@echo on
rem Setting the SQL PROCEDURE environment:
db2set DB2_SQLROUTINE_COMPILER_PATH="c:¥Micros~1¥vc98¥bin¥vcvars32.bat"
db2set DB2_SQLROUTINE_COMPILE_COMMAND="cl -Od -W2 /TC -D_X86_=1
-I%DB2PATH%¥include SQLROUTINE_FILENAME.c /link -dll
-def:SQLROUTINE_FILENAME.def /out:SQLROUTINE_FILENAME.dll
%DB2PATH%¥lib¥db2api.lib"
@echo off
関連タスク:
v 145 ページの『SQL プロシージャー用の中間ファイルの保存』
v 147 ページの『SQL プロシージャーのプリコンパイル・オプションとバインド・オプ
ションのカスタマイズ』
v 148 ページの『SQL プロシージャーのバックアップとリストア』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
関連資料:
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
サンプル・データベース
サンプル・データベースのセットアップ
DB2 に付属しているサンプル・プログラムを使用するには、サーバー・ワークステーシ
ョン上に sample データベースを作成する必要があります。リモート・クライアントを
使用してサーバー上にある sample データベースにアクセスする予定であれば、その
sample データベースをクライアント・ワークステーション上でカタログする必要があり
ます。
さらに、別バージョンの DB2 を実行しているサーバーや、別のオペレーティング・シ
ステム上で稼働しているサーバーにある sample データベースに、リモート・クライア
ントを使用してアクセスする予定であれば、 DB2 CLI ユーティリティー・ファイルを
含むデータベース・ユーティリティーを sample データベースにバインドする必要があ
ります。
手順:
第 2 章 セットアップ
43
以下に、sample データベースをセットアップするためのステップが示されています。
1. サンプル・データベースの作成
2. サンプル・データベースのカタログ
3. サンプル・データベース・ユーティリティーのバインディング
関連タスク:
v 44 ページの『サンプル・データベースの作成』
v 46 ページの『サンプル・データベースのカタログ』
v 47 ページの『サンプル・データベース・ユーティリティーのバインディング』
サンプル・データベースの作成
sample データベースをコマンド行で作成するには、db2sampl コマンドを使用します。
前提条件:
データベースを作成するには、システム管理者 (SYSADM) またはシステム・コントロ
ール (SYSCTRL) 権限が必要です。 SYSADM と SYSCTRL はそれぞれ、DB2 の最上
位とその次のレベルです。
手順:
データベースを作成するには、サーバーで以下のことを行ってください。
1. db2sampl (sample データベースを作成するプログラム) が必ず、ご使用のパスにあ
るようにします。ファイル db2profile または db2cshrc は、ご使用のパスの
db2sampl に置かれます。変更しない限り、そのパスがファイルのある場所です。
v
UNIX サーバーでは、db2sampl は次の場所にあります。
$HOME/sqllib/bin
ここで $HOME は、DB2 インスタンス所有者のホーム・ディレクトリーです。
v
Windows では、db2sampl は次の場所にあります。
%DB2PATH%¥bin
ここで %DB2PATH% は、 DB2 がインストールされているパスです。
2. DB2INSTANCE 環境変数が、 sample データベースを作成するインスタンスの名前
に設定されていることを確認してください。この変数が設定されていない場合は、以
下に示すコマンドで設定することが可能です。
v UNIX の場合:
bash または Korn シェルでは次のように入力します。
DB2INSTANCE=instance_name
export DB2INSTANCE
44
アプリケーションの構築および実行
C シェルでは次のように入力します。
setenv DB2INSTANCE instance_name
v
Windows の場合は、次のように入力します。
set DB2INSTANCE=instance_name
ここで instance_name は、データベース・インスタンスの名前です。
3. db2sampl と、それに続いて、サンプル・データベースを作成したい場所を入力する
ことによって、 sample データベースを作成します。 UNIX プラットフォームで
は、それはたとえば $HOME のようなパス であり、次のように入力します。
db2sampl path
たとえば、次のようにします。
db2sampl $HOME
Windows では、それはたとえば C: のようなドライブ であり、次のように入力しま
す。
db2sampl drive
たとえば、次のようにします。
db2sampl C:
パスまたはドライブを指定しないと、インストール・プログラムは、データベース・
マネージャー構成ファイルの DFTDBPATH パラメーターによって指定されているデ
フォルトのパスまたはドライブに、サンプル表をインストールします。データベース
の認証タイプは、データベースが作成されるインスタンスの認証タイプと同じです。
関連タスク:
v 45 ページの『ホスト・サーバーまたは AS/400 および iSeries サーバーでのサンプ
ル・データベースの作成』
v 46 ページの『サンプル・データベースのカタログ』
v 47 ページの『サンプル・データベース・ユーティリティーのバインディング』
ホスト・サーバーまたは AS/400 および iSeries サーバーでのサンプル・デー
タベースの作成
DB2 UDB (OS/390 および z/OS 版) などのホスト・サーバー、あるいは AS/400 およ
び iSeries サーバーに対してサンプル・プログラムを実行したい場合は、 SQL の解説
書に説明されているサンプル表をもったデータベースを作成する必要があります。
注: ホスト・サーバーに接続するには、DB2 Connect が必要です。
制約事項:
第 2 章 セットアップ
45
ワークステーション上とホスト・システム上のどちらに DB2 があるかによって、SQL
構文と DB2 コマンドに多少の違いがあります。 DB2 UDB (OS/390 および z/OS 版)
または DB2 for AS/400 and iSeries 上のデータベースにアクセスする場合、それらのデ
ータベース・システムでサポートされている SQL ステートメントとプリコンパイル/バ
インド・オプションを必ずプログラムが使用するようにしてください。
手順:
データベースを作成するには、次の手順で行います。
1. db2sampl を使用して、 DB2 ワークステーション・サーバー・インスタンスで
sample データベースを作成します。
2. sample データベースに接続します。
3. サンプル表データをファイルにエクスポートします。
4. ホスト・データベースに接続します。
5. サンプル表を作成します。
6. ワークステーション・サーバー上のデータのエクスポート先のファイルからサンプル
表データをインポートします。
関連概念:
v データ移動ユーティリティー ガイドおよびリファレンス の『エクスポートの概要』
v データ移動ユーティリティー ガイドおよびリファレンス の『インポートの概要』
関連タスク:
v 46 ページの『サンプル・データベースのカタログ』
v 47 ページの『サンプル・データベース・ユーティリティーのバインディング』
関連サンプル:
v 『expsamp.sqb -- Export and import tables with table data to a DRDA database (IBM
COBOL)』
v 『tbmove.sqc -- How to move table data (C)』
v 『tbmove.sqC -- How to move table data (C++)』
サンプル・データベースのカタログ
サーバー上の sample データベースにリモート・クライアントからアクセスするには、
クライアント・ワークステーションで sample データベースをカタログする必要があり
ます。
サーバー・ワークステーションでは、 sample データベースをカタログする必要があり
ません。データベースの作成時にサーバー上でカタログされているからです。
46
アプリケーションの構築および実行
カタログを作成すると、クライアント・ワークステーションのデータベース・ディレク
トリーが、クライアント・アプリケーションのアクセスしたいデータベース名に更新さ
れます。 クライアントの要求を処理するときに、データベース・マネージャーはカタロ
グされた名前を使用して、データベースを見つけて接続します。
手順:
リモート・クライアント・ワークステーションでサンプル・データベースをカタログす
るには、次のように入力します。
db2 catalog database sample as sample at node nodename
ここで nodename は、サーバー・ノードの名前です。
リモート・ノードもカタログしてからでないと、データベースには接続できません。
関連タスク:
v インストールおよび構成 補足 の『クライアントでの TCP/IP ノードのカタログ』
v インストールおよび構成 補足 の『CLP によるデータベースのカタログ』
v インストールおよび構成 補足 の『DB2 クライアントでの NetBIOS ノードのカタロ
グ』
v インストールおよび構成 補足 の『クライアントでの名前付きパイプ・ノードのカタ
ログ』
v インストールおよび構成 補足 の『DB2 クライアントでの APPC ノードのカタロ
グ』
v 47 ページの『サンプル・データベース・ユーティリティーのバインディング』
サンプル・データベース・ユーティリティーのバインディング
別のバージョンの DB2 を実行しているか、または別のオペレーティング・システム上
で実行されているリモート・クライアントから、サーバー上の sample データベースに
アクセスする予定であれば、 DB2 CLI ユーティリティーなどのデータベース・ユーテ
ィリティーを、 sample データベースにバインドする必要があります。
アプリケーションの実行時にデータベースにアクセスするのにデータベース・マネージ
ャーが必要とするパッケージが、このバインドによって作成されます。バインドは、プ
リコンパイル時に作成されるバインド・ファイルに対して BIND ファイルを指定するこ
とによって明示的に実行できます。
手順:
使用するクライアント・ワークステーションのプラットフォームに応じて、データベー
ス・ユーティリティーは異なる仕方でバインドします。
第 2 章 セットアップ
47
UNIX クライアント・ワークステーションの場合:
1. 次のように入力して、sample データベースに接続します。
db2 connect to sample user userid using password
ここで、userid と password は、 sample データベースが置かれているインスタンス
のユーザー ID とパスワードを表します。
2. 次のように入力して、データベースにユーティリティーをバインドします。
db2 bind BNDPATH/@db2ubind.lst blocking all sqlerror continue ¥
messages bind.msg grant public
db2 bind BNDPATH/@db2cli.lst blocking all sqlerror continue ¥
messages cli.msg grant public
ここで、BNDPATH はバインド・ファイルが置かれているパスです。たとえば、
$HOME/sqllib/bnd ($HOME は DB2 インスタンス所有者のホーム・ディレクトリー)。
3. バインドが成功したかどうかを、バインド・メッセージ・ファイル bind.msg および
cli.msg を調べて確認します。
Windows オペレーティング・システムが実行されるクライアント・ワークステーション
の場合:
1. 「スタート」メニューから「プログラム」を選択します。
2. 「プログラム」(XP では「すべてのプログラム」) メニューで IBM DB2 を選択し
ます。
3. 「IBM DB2」メニューから、「DB2 コマンド・ウィンドウ (DB2 Command
Window)」を選択します。
コマンド・ウィンドウが表示されます。
4. 次のように入力して、sample データベースに接続します。
db2 connect to sample user userid using password
ここで、userid と password は、 sample データベースが置かれているインスタンス
のユーザー ID とパスワードを表します。
5. 次のように入力して、データベースにユーティリティーをバインドします。
db2 bind "%DB2PATH%¥bnd¥@db2ubind.lst" blocking all
sqlerror continue messages bind.msg grant public
db2 bind "%DB2PATH%¥bnd¥@db2cli.lst" blocking all
sqlerror continue messages cli.msg grant public
ここで %DB2PATH% は、DB2 のインストール先を示すパスです。
6. コマンド・ウィンドウを終了し、バインド・メッセージ・ファイル bind.msg および
cli.msg を調べて、バインドが成功したかどうかを確認します。
48
アプリケーションの構築および実行
ホスト・サーバーにアクセスするすべてのクライアントの場合、 db2ubind.lst ではな
く以下の .lst ファイルのうちの 1 つを指定します。
ddcsmvs.lst
DB2 for OS/390 and z/OS の場合
ddcsvm.lst
DB2 (VM 版) の場合
ddcsvse.lst
DB2 (VSE 版) の場合
ddcs400.lst
DB2 for AS/400 and iSeries の場合
たとえば:
v UNIX クライアントから DB2 for OS/390 and z/OS サーバーにアクセスするには、
以下を入力します。
db2 bind BNDPATH/@ddcsmvs.lst blocking all sqlerror continue ¥
messages bind.msg grant public
v Windows クライアントから DB2 for OS/390 and z/OS サーバーにアクセスするに
は、以下を入力します。
db2 bind "%DB2PATH%¥bnd¥@ddcsmvs.lst" blocking all
sqlerror continue messages bind.msg grant public
関連資料:
v コマンド・リファレンス の『BIND コマンド』
アプリケーションの移行
DB2 バージョン 8 では以下の DB2 バージョンの移行がサポートされます。
v DB2 バージョン 6
v DB2 バージョン 7.1
v DB2 バージョン 7.2
v DataJoiner® バージョン 2.1.x
上記より後のバージョンの DB2 に移行すると、データベースとノードのディレクトリ
ーは自動的に移行されます。上記以外の旧バージョンの DB2 から移行するには、移行
をサポートしている上記のサポート対象バージョンのいずれかにまず移行してから、そ
のバージョンから DB2 バージョン 8 に移行する必要があります。
以下のような特定の環境からの移行では、次の点に気をつける必要があります。
Java
これまで 'net' ドライバーと呼ばれていたタイプ 3 ドライバーは、今後は使用
すべきではありません。 DB2 Java アプレットは、タイプ 4 ドライバーに移
第 2 章 セットアップ
49
行する必要があります。新規のタイプ 4 ドライバーを使用するためにタイプ 3
JDBC アプレットを変換するには、次のような変更を行います。
1. タイプ 4 ドライバーのアーカイブは db2jcc.jar です。このアプレットに
関連した .html ファイル内で、アーカイブを db2java.zip から
db2jcc.jar に変更します。 db2jcc.jar を Web サーバーにコピーしま
す。
2. タイプ 4 ドライバーのクラス名は com.ibm.db2.jcc.DB2Driver です。アプ
レット .java ファイル中のタイプ 3 ドライバーのクラス名
COM.ibm.db2.jdbc.net.DB2Driver をタイプ 4 クラス名に変更します。アプ
レットが javax.sql.DataSource を使用して接続を確立する場合は、このド
ライバー・クラスへの参照があってはなりません。
3. タイプ 3 とタイプ 4 のどちらのドライバーも、
jdbc:db2://server:portnumber/dbname という同じ形式のデータ・ソース
URL を使用します。ただし、server、portnumber、および dbname の 3 つ
の部分は、ドライバーによって意味が異なります。
タイプ 3 ドライバーは、クライアント (アプレットを実行するブラウザ
ー)、JDBC アプレット・サーバー、および DB2 サーバーから成る 3 層モ
デルです。 URL 内の server と portnumber は JDBC アプレット・サー
バーを指します。 dbname は、JDBC アプレット・サーバーを実行するシス
テムでカタログされたデータベース別名です。
タイプ 4 ドライバー・クライアントは DB2 サーバーに直接接続するの
で、 server と portnumber は DB2 サーバーの TCP/IP Listener のものを
指します。 dbname は、DB2 サーバー・システムでカタログされたデータ
ベース別名です。
アプレットが DriverManager.getConnection を使用して DB2 に接続する
場合、 .java ファイルと (必要な場合) .html ファイルを、タイプ 4 ドラ
イバー用の別の URL に更新します。
4. アプレットが COM.ibm.db2.jdbc.DB2DataSource を使用する場合、クラス
com.ibm.jcc.db2.DB2SimpleDataSource の新規の javax.sql.DataSource オ
ブジェクトを作成する必要があります。その新規のクラスを使用するには、
アプレットを更新する必要があります。
注: タイプ 4 ドライバーでは、接続プール
(javax.sql.ConnectionPoolDataSource、javax.sql.PooledConnection) 用
の JDBC 2.0 オプション・パッケージ API はサポートされません。アプ
レットがタイプ 3 のそのような機能を利用する場合、そのアプレットをタ
イプ 4 ドライバーに移行することはできません。
32 ビットから 64 ビットへの環境
アプリケーションを 32 ビットから 64 ビットへ移行する必要はありません。
DB2 バージョン 8 では、Linux IA64 を除いて、既存の 32 ビット・ローカ
ル・アプリケーションの 64 ビット DB2 インスタンスでの実行はサポートさ
50
アプリケーションの構築および実行
れます。そのような実行のためには、ユーザーは 32 ビット・アプリケーショ
ンを再バインドしてから、該当するライブラリー・パスを使用してそれを実行
する必要があります。たとえば、AIX 上の 64 ビットの DB2 インスタンス内
で 32 ビット・アプリケーションを実行するには、次のようにします。
v bash または korn シェルの場合
export LIBPATH=$HOME/sqllib/lib32
my32bitapp
v C シェルの場合
setenv LIBPATH $HOME/sqllib/lib32
my32bitapp
32 ビット・サーバーでの実行を続けながら、 64 ビット・オペレーティング環
境に 32 ビット・アプリケーションを移行したい場合、 LONGERROR プリコ
ンパイル・オプションを使用してアプリケーションの移植の準備をします。 32
ビット環境で LONGERROR を YES に設定して、長いタイプのホスト変数の
検出のたびにプリコンパイラーからエラーが戻されるようにします。その後、
次のステップを行います。
1. 長いタイプが必要でない限り、ホスト変数での長いタイプの使用を控えま
す。その代わりに、sqlint32 や sqluint32 などの新規の移植可能ホスト変数
を使用します。たとえば、次のようにします。
EXEC SQL BEGIN DECLARE SECTION;
long y;
/* this declaration generates an error on 64 bit */
sqlint32 x; /* this declaration is acceptable for 64 bit */
EXEC SQL END DECLARE SECTION;
2. 64 ビット・サーバー上のデータベースに対してアプリケーションをプリコ
ンパイルします。これで、移植しようとしているアプリケーション用の新し
いパッケージが作成されます。
3. 64 ビット・モードでアプリケーションをコンパイルします。
4. アプリケーションを新規の 64 ビット DB2 ライブラリーにリンクします。
5. 64 ビット・サーバー上のデータベースに対してアプリケーションをバイン
ドします。
HP-UX
HP-UX バージョン 10 または HP-UX バージョン 11 以前から DB2 を移行し
ている場合、 DB2 プログラムは HP-UX バージョン 11 (組み込み SQL があ
る場合) 上の DB2 で再びプリコンパイルして、再コンパイルしなければなり
ません。これには、すべての DB2 アプリケーション、ストアード・プロシー
ジャー、ユーザー定義関数、およびユーザー出口プログラムが含まれます。さ
らに、HP-UX バージョン 11 上でコンパイルされた DB2 プログラムは、
HP-UX バージョン 10 以前の上では実行できない可能性があります。 HP-UX
バージョン 10 上でコンパイルされ実行される DB2 プログラムは、 HP-UX
バージョン 11 サーバーにリモートで接続することができます。
第 2 章 セットアップ
51
Micro Focus COBOL
DB2 バージョン 2.1.1 またはそれ以前を使用してプリコンパイルし、 Micro
Focus COBOL を使用してコンパイルした既存アプリケーションは、現行バー
ジョンの DB2 を使用して再プリコンパイルした後、 Micro Focus COBOL を
使用して再コンパイルする必要があります。 IBM® プリコンパイラーの旧バー
ジョンを使用して構築したアプリケーションを再プリコンパイルしないと、異
常終了時にデータベースが破壊される恐れがあります。
以下に、アプリケーションを開発するときに気をつける必要のある点を示します。これ
らの点を参考にすれば、アプリケーションの移植化に役に立ちます。
v UNIX では、デフォルトのライブラリー検索パス /usr/lib:/lib だけをアプリケー
ションで使用してください。 Windows® オペレーティング・システムでは、以下を使
用して LIB 環境変数が %DB2PATH%¥lib を指していることを確認してください。
set LIB=%DB2PATH%¥lib;%LIB%
また、使用している DB2 のデフォルトのパスとバージョンとの間にシンボリック・
リンクを作成します。そのリンク先が、アプリケーションが必要とする DB2 の最低
レベルであることを確認してください。リンクの設定については、ご使用のプラット
フォーム用の概説およびインストール を参照してください。
v アプリケーションが特定のバージョンの DB2 を必要とする場合、アプリケーション
中で DB2 バージョンを指定するパスをコーディングします。たとえば、AIX® アプ
リケーションが DB2 バージョン 5 を必要とするなら、 /usr/lpp/db2_05_00/lib をコ
ーディングしてください。 普通は、これを行う必要はありません。
v 内部開発ではなく、実動のためのアプリケーションを構築しているとき、通常、アプ
リケーション中のパスは、 UNIX 上の sqllib/lib ディレクトリー、 Windows オペ
レーティング・システム上の sqllib¥lib ディレクトリーのインスタンス所有者のコ
ピーを指さないようにしてください。 このようにすると、アプリケーションは特定
のユーザー名と環境にかなり依存するようになります。
v 一般的に、 LIBPATH (AIX)、SHLIB_PATH (HP-UX 32-bit)、LD_LIBRARY_PATH
(HP-UX 64 ビット、Linux、および Solaris)、および LIB (Windows) といった一部の
環境では、検索パスを変更するのに次に示す環境変数を使用しないでください。これ
らの変数は、環境内で実行するアプリケーションに指定されている検索パスをオーバ
ーライドするため、アプリケーションが、必要とするライブラリーまたはファイルを
検出できなくなる可能性があります。
v DB2 Universal Database™ バージョン 6、7、および 8 では、ストリング・セマンテ
ィクスのあるすべての文字配列項目は、 unsigned char などの他のバリエーションの
代わりにタイプ char をもっています。 DB2 Universal Database バージョン 6 また
は 7 で作成するアプリケーションはすべて、この方式に従ってください。
unsigned char を使う DB2 バージョン 1 アプリケーションの場合、バージョン 1 ア
プリケーションの unsigned char と、バージョン 6.1、バージョン 7、またはバージ
ョン 8 の関数プロトタイプの char との間でタイプの衝突が起きるため、コンパイラ
52
アプリケーションの構築および実行
ーが警告またはエラーを生成する可能性があります。これが起きた場合、コンパイラ
ー・オプション -DSQLOLDCHAR を使用して問題を取り除いてください。
UNIX プラットフォームの場合に、旧バージョンの DB2 のアプリケーションが存在し
ていて、しかもそれを旧バージョンのデータベース・インスタンスと、同じマシン上の
DB2 バージョン 8 のインスタンスのどちらでも実行したければ、環境に若干の変更を
加える必要があるかもしれません。どのような変更を行うかを判別するには、以下の質
問に答え、『条件』の節を検討して、現状に当てはまる条件があるかどうかを調べてく
ださい。
挙げられた点を説明するために、AIX システムが使われています。同じ概念が他の
UNIX プラットフォームにも当てはまりますが、詳細な点 (環境変数と特定のコマンド
など) は異なる可能性があります。
質問
質問 1: どのように以前のバージョンのアプリケーションを、 DB2 クライアントのラ
ンタイム・ライブラリー (AIX 上の libdb2.a など) にリンクしましたか ?
実行可能ファイルの組み込み共用ライブラリーの探索パスを判別するには、実行可能フ
ァイルが置かれているディレクトリー (/usr/bin またはインスタンス・ディレクトリー
など) 内の以下のようなシステム・コマンドの 1 つを使用します。
AIX
dump -H executable_filename
HP-UX chatr executable_filename
Linux
objdump -p executable_filename
Solaris dump -Lv executable_filename
executable_filename はアプリケーションの実行可能ファイルの名前です。
以下に、AIX の C サンプル・アプリケーション dbcat 用の DB2 バージョン 7.2 の
サンプル・ダンプ・リストを示します。これは、DB2 インスタンスのサンプル・サブデ
ィレクトリー /home/dbinst/samples/c 内に取り込まれたものです。
第 2 章 セットアップ
53
C アプリケーション dbcat のサンプル・ダンプ・リスト
──────────────────────────────────────────────────────────────────────────
dbcat:
VERSION#
0x00000001
***Loader Section***
Loader Header Information
#SYMtableENT
#RELOCent
0x0000000f
0x00000015
LENidSTR
0x00000047
#IMPfilID
0x00000003
OFFidSTR
0x00000284
OFFstrTBL
0x000002cb
LENstrTBL
0x0000007f
***Import File Strings***
INDEX PATH
BASE
0
/home/db2inst/sqllib/lib:/usr/lib:/lib
MEMBER
1
2
shr.o
shr.o
libc.a
libdb2.a
──────────────────────────────────────────────────────────────────────────
ライン 0 (ゼロ) は、リンクされている共用ライブラリーを検出するために、実行可能
が検索するディレクトリー・パスを示します。ライン 1 および 2 は、アプリケーショ
ンがリンクされている共用ライブラリーを示しています。
アプリケーションが構築された方法によって、以下のパスを検索できます。
/usr/lpp/db2_07_01_0000/lib、 INSTHOME/sqllib/lib (INSTHOME はデータベース・イ
ンスタンス所有者のホーム・ディレクトリー)、または /usr/lib:/lib の組み合わせ。
質問 2: どのような方法でシステムの DB2 ランタイム・ライブラリーを構成しました
か ?
DB2 バージョン 1、2、5、6.1、または 7 がインストールされている場合、 DB2 クラ
イアント・ランタイム・ライブラリーを含むシステム・デフォルト共用ライブラリー・
パス /usr/lib から、 DB2 クライアント・ランタイム・ライブラリーを含む DB2 イ
ンストール・パスへのシンボリック・リンクを作成するステップ (オプション) があり
ます。
AIX での DB2 の各バージョンのインストール・パスは、以下のとおりです。
バージョン 1
/usr/lpp/db2_01_01_0000/lib
54
アプリケーションの構築および実行
バージョン 2
/usr/lpp/db2_02_01/lib
バージョン 5
/usr/lpp/db2_05_00/lib
バージョン 6.1
/usr/lpp/db2_06_01/lib
バージョン 7
/usr/lpp/db2_07_01/lib
バージョン 8
/usr/opt/db2_08_01/lib
いずれの場合も、ランタイム共用ライブラリーの名前は、libdb2.a です。
これらのライブラリーのバージョンは、一度に 1 つしかデフォルトになりません。
DB2 がこのデフォルトを提供するので、アプリケーションを構築するときに DB2 の特
定のバージョンに依存することはありません。
質問 3: 環境の中でさまざまな検索パスを指定しますか ?
LIBPATH 環境変数 (AIX 上)、SHLIB_PATH (HP-UX 上)、および
LD_LIBRARY_PATH (Linux および Solaris 上) を使用して、アプリケーションでコー
ディングされている共用ライブラリーの検索パスをオーバーライドすることができま
す。ライブラリー検索パスは、質問 1 の答えの中で与えられたプラットフォーム用の適
切なシステム・コマンドを使用して、調べることができます。
条件
前述の質問に答えたならば、環境を変更する必要があります。下記に挙げた条件をお読
みください。いずれかの条件が現状に当てはまるならば、変更が必要です。
条件 1: バージョン 7 アプリケーションが、 AIX のデフォルト共用ライブラリー・パ
ス /usr/lib/libdb2.a 以外の共用ライブラリーをロードし、以下の条件が当てはまる場
合。
v /usr/lib/libdb2.a から /usr/lpp/db2_07_01/lib/libdb2.a へのシンボリック・リ
ンクがあり、データベース・サーバーが DB2 Universal Database (AIX 版) バージョ
ン 8 の場合、以下のどれかを行います。
– 以下のものを示すシンボリック・リンクを変更します。
/usr/opt/db2_08_01/lib/libdb2.a
root で、次のように ″db2ln″ コマンドを使用してリンクを変更できます。
/usr/opt/db2_08_01/cfg/db2ln
第 2 章 セットアップ
55
– LIBPATH 環境変数が /usr/opt/db2_08_01/lib または INSTHOME/sqllib/lib を指
すように設定します。 INSTHOME はバージョン 8 DB2 インスタンス所有者のホ
ーム・ディレクトリーです。
– アプリケーション (クライアント) からサーバー・インスタンスへの TCP/IP 接続
を構成します。
v /usr/lib/libdb2.a から /usr/opt/db2_08_01/lib/libdb2.a へのシンボリック・リ
ンクがあり、データベース・サーバーが DB2 バージョン 7 の場合、アプリケーショ
ン (クライアント) インスタンスからサーバー・インスタンスへの TCP/IP 接続を構
成します。
条件 2: バージョン 7 アプリケーションが、 DB2 バージョン 7 インスタンス所有者
($HOME/sqllib/lib/libdb2.a) の $HOME パス以外の共用ライブラリーをロードし、デ
ータベース・サーバーが DB2 Universal Database (AIX 版) バージョン 8 の場合、以下
のどれかを行います。
v データベース・サーバー・インスタンスとして、アプリケーション・インスタンスを
同じバージョンへ移行します。
v LIBPATH 環境変数が /usr/opt/db2_08_01/lib または INSTHOME/sqllib/lib を示す
ように設定します。 INSTHOME はバージョン 8 インスタンス所有者のホーム・ディ
レクトリーです。
v アプリケーション (クライアント) からサーバー・インスタンスへの TCP/IP 接続を
構成します。
条件 3: バージョン 7 アプリケーションが、 DB2 バージョン 7 インストール・パス
(/usr/lpp/db2_07_01/lib/libdb2.a) 以外の共用ライブラリーをロードし、データベー
ス・サーバーが DB2 Universal Database (AIX 版) バージョン 7 の場合、以下のどちら
かを行います。
v LIBPATH 環境変数が /usr/opt/db2_08_01/lib または INSTHOME/sqllib/lib を示す
ように設定します。 INSTHOME はデータベース・インスタンス所有者のホーム・ディ
レクトリーです。
v アプリケーション (クライアント) からサーバー・インスタンスへの TCP/IP 接続を
構成します。
条件 4: バージョン 7 アプリケーションが、 DB2 Universal Database (AIX 版) バージ
ョン 8 のインストール・パス (/usr/opt/db2_08_01/lib/libdb2.a) 以外の共用ライブ
ラリーをロードし、データベース・サーバーが DB2 バージョン 7 の場合、アプリケー
ション (クライアント) インスタンスからサーバー・インスタンスへの TCP/IP 接続を
構成します。
関連概念:
v DB2 Universal Database サーバー機能 概説およびインストール の『移行に関する推
奨事項』
56
アプリケーションの構築および実行
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『DB2 JDBC Type 4 ドライバーによるJDBC 2.1 コア API 制約事項』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『DB2 JDBC Type 4 ドライバーでサポートされる JDBC 2.1 オプション・パッケー
ジ API』
関連タスク:
v 19 ページの『アプリケーション開発環境のセットアップ』
v インストールおよび構成 補足 の『DB2 ファイルのためのリンクの作成』
v DB2 Universal Database サーバー機能 概説およびインストール の『データベースの
移行』
v DB2 Universal Database サーバー機能 概説およびインストール の『Explain 表の移
行』
v DB2 Universal Database サーバー機能 概説およびインストール の『インスタンスの
移行 (UNIX)』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 移行のた
めに V6 または V7 DB2 サーバーをオフラインにする』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 の移行
(Windows)』
v DB2 Universal Database サーバー機能 概説およびインストール の『DB2 の移行
(UNIX)』
関連資料:
v DB2 Universal Database サーバー機能 概説およびインストール の『移行の注意点』
v 管理ガイド: プランニング の『バージョン 8 のリリース間の非互換性』
v 管理ガイド: プランニング の『バージョン 7 のリリース間の非互換性』
次に行うこと
環境をセットアップしたなら、DB2 アプリケーションを作成する準備ができました。以
下の章では、ビルド・ファイルを含むサンプル・プログラムおよび関連ファイルについ
て説明します。この後に続く章では、ご使用のプログラミング環境でアプリケーション
をコンパイル、リンク、および実行する方法を示すビルド・ファイルおよびサンプルを
使用します。特定のアプリケーション開発における必要については、その該当の章を参
照してください。
第 2 章 セットアップ
57
58
アプリケーションの構築および実行
第 3 章 サンプル・プログラムおよび関連ファイル
サンプル・ファイル . . . . . . . .
サンプル・プログラム: 構造と設計 . . .
言語およびアプリケーション・インターフェ
ース別のサンプル・プログラム. . . . .
C/C++ のサンプル . . . . . . . .
DB2 CLI のサンプル . . . . . . .
JDBC のサンプル . . . . . . . .
SQLJ のサンプル . . . . . . . .
Java WebSphere のサンプル . . . . .
Java プラグインのサンプル . . . . .
COBOL のサンプル . . . . . . .
SQL プロシージャーのサンプル . . .
Visual Basic のサンプル . . . . . .
Visual C++ のサンプル . . . . . .
. 59
. 65
.
.
.
.
.
.
.
.
.
.
.
73
73
76
78
81
83
83
84
89
91
93
Windows Management Instrumentation のサ
ンプル . . . . . . . . . . . . . 93
オブジェクトのリンクと埋め込み (OLE) の
サンプル . . . . . . . . . . . . 94
オブジェクトのリンクと埋め込みデータベ
ース (OLE DB) 表関数のサンプル . . . 95
コマンド行プロセッサー (CLP) のサンプル 95
REXX のサンプル . . . . . . . . . 96
ログ管理ユーザー出口サンプル. . . . . 98
ビルド・ファイル、makefile、およびエラ
ー・チェック・ユーティリティー . . . . 100
ビルド・ファイル . . . . . . . . . 100
makefile . . . . . . . . . . . . 104
エラー・チェック・ユーティリティー . . 108
この章では、DB2 がサポートするすべてのプラットフォーム用のプログラム言語のサン
プル・プログラムおよび関連ファイルを記載しています。この章では、DB2 のコンポー
ネント構造に基づくサンプルの設計を提供し、それぞれのサンプルの説明がある DB2
サンプルのリストを提供します。この章では、DB2 に付属しているビルド・ファイル、
makefile、およびエラー・チェック・ユーティリティーの使用についても説明します。
サンプル・ファイル
サンプル・プログラムは、DB2® Application Development (DB2 AD) Client に付属して
います。すべてのプラットフォームまたはサポート対象のプログラミング言語で、すべ
てのサンプル・プログラムを利用できるわけではありません。サンプル・プログラムを
テンプレートとして使用して、独自のアプリケーションを作成したり、理解を深めるた
めのツールとして DB2 の機能を習得したりすることができます。
DB2 サンプル・プログラムは、どのような保証も付帯されずに「現状のまま」提供され
ています。品質、パフォーマンス、何らかの欠陥の訂正のすべてのリスクはすべて、
IBM ではなくユーザー側で負っていただきます。
DB2 では、サンプル・プログラム・ファイルの他に、 sqllib/samples (UNIX) の下ま
たは sqllib¥samples (Windows) の下のサンプル・ディレクトリーに他のサンプル・フ
ァイルも用意されています。そのようなファイルには、サンプル・プログラムのコンパ
イルとリンクのためのビルド・ファイルと makefile、たいていのサンプル・プログラム
にリンクしているエラー・チェック・ユーティリティー・ファイル、およびアプリケー
ション開発で役に立つ各種スクリプト・ファイルが組み込まれています。たとえば、い
© Copyright IBM Corp. 1993 - 2002
59
くつかの言語サブディレクトリー内にストアード・プロシージャーと UDF のカタログ
とアンカタログを行うためのスクリプトが備えられています。どのサンプル・ディレク
トリーにも、ディレクトリーに置かれているファイルを説明した README ファイルが
あります。
大半のサンプル・プログラム・ファイルには HTML バージョンが用意されています
が、それにはオンライン文書でアクセスすることができます。このような「HTML のサ
ンプル」は、文書内のトピックにリンクされていて、そこで説明されている機能が分か
るようになっています。 SQL ステートメントや DB2 API といったキーワードが
HTML のサンプルにホット・リンクされているので、ユーザーはその説明文に直接移動
することができます。 HTML のサンプルの大半において、コンパイル済みのサンプ
ル・プログラムの通常の実行結果を示したサンプルへのリンクがファイルの最上部のコ
メント・セクションに設けられています。多くの場合、実際の出力はマシンとプラット
フォームに依存するため、同じプログラムを実行しても得られる出力は異なる可能性が
あることに注意してください。
以下は、サポートされるメインのプログラミング言語 /API のサンプル・ディレクトリ
ーと README ファイルをプラットフォーム別に示した表です。 README ファイルは
オンライン文書にホット・リンクされていて、その中のサンプル・リストは、サンプ
ル・ファイルのソース・コードにホット・リンクされています。そのリスト中のサンプ
ル・ディレクトリー内のサンプル・ファイルにアクセスすることもできます。ディレク
トリー・パスに関しては、 samples/c のように UNIX 形式のスラッシュが使用されま
す。ただし、samples¥VB¥ADO といった Windows 専用のディレクトリーの場合を除きま
す。
60
アプリケーションの構築および実行
表 1. プラットフォーム別のサンプル の README ファイル
プラットフォーム —>
言語
AIX
HP-UX
Linux
Solaris
Windows
C
samples/c
README
README
README
README
README
C++
samples/cpp
README
README
README
README
README
CLI
samples/cli
README
README
README
README
README
JDBC
samples/java
README
README
README
README
README
SQLJ
samples/java
README
README
README
README
README
IBM COBOL
samples/cobol
README
n/a
n/a
n/a
README
Micro Focus COBOL
samples/cobol_mf
README
README
n/a
README
README
Visual Basic
samples¥VB¥ADO
n/a
n/a
n/a
n/a
ReadMe.txt
SQL プロシージャー
samples/sqlproc
README
README
README
README
README
CLP
samples/clp
README
README
README
README
README
サンプル・プログラムのファイル拡張子は、サポートされる各言語ごとに異なり、各言
語内でも、組み込み SQL プログラムと非組み込み SQL プログラムとでは異なりま
す。さらには、各言語内のプログラム・グループごとにも異なっています。これらのサ
ンプル・ファイル拡張子を分類したのが、次の表です。
言語別のサンプル・ファイル拡張子
62 ページの表 2
プログラム・グループ別のサンプル・ファイル拡張子
62 ページの表 3
第 3 章 サンプル・プログラムおよび関連ファイル
61
表 2. 言語別のサンプル・ファイル拡張子
言語
ディレクトリー
組み込み SQL を含むプロ
グラム
組み込み SQL を含まない
プログラム
C
samples/c
samples/cli
(CLI プログラム)
.sqc
.c
C++
samples/cpp
.sqC (UNIX)
.sqx (Windows)
.C (UNIX)
.cxx (Windows)
COBOL
samples/cobol
samples/cobol_mf
.sqb
.cbl
JAVA
samples/java/jdbc
samples/java/sqlj
samples/java/WebSphere
samples/java/plugin
.sqlj
.java
REXX
samples/rexx
.cmd
.cmd
Visual Basic
samples¥VB¥ADO
samples¥VB¥MTS
samples¥VB¥RDO
.bas .frm .vbp
Visual C++
samples¥VC¥ADO
.cpp .dsp .dsw
表 3. プログラム・グループ別のサンプル・ファイル拡張子
サンプル・グループ ディレクトリー
ファイル拡張子
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 (SQL プロシージャー・スクリプ
ト) .c (CLI クライアント・アプリケー
ション) .sqc (組み込み C クライアン
ト・アプリケーション) .java (JDBC ク
ライアント・アプリケーション)
ユーザー出口
samples/c
.cadsm
.cdisk
.ctape
.cxbsa
62
アプリケーションの構築および実行
(UNIX および Windows)
(UNIX および Windows)
(UNIX)
(UNIX および Windows)
注:
ディレクトリー区切り文字
UNIX® でのディレクトリーの区切り文字は / です。 Windows® では ¥
です。ディレクトリーが Windows でのみ使用可能でない限り、表の中で
は UNIX の区切り文字が使用されます。
組み込み SQL プログラム
このプログラムは、プリコンパイルが必要です。 REXX 組み込み SQL プ
ログラムは、プログラムのランタイムに組み込み SQL ステートメントが
解釈されるので例外になります。
IBM® COBOL サンプル
AIX® および Windows 32 ビットのオペレーティング・システムの場合に
のみ、 cobol サブディレクトリーに用意されています。
Micro Focus COBOL サンプル
AIX、HP-UX、Solaris オペレーティング環境、および Windows 32 ビット
のオペレーティング・システム用にのみ、 cobol_mf サブディレクトリー
に用意されています。
Java™ サンプル
JDBC (Java Database Connectivity) アプレット、アプリケーション、およ
びルーチン、Java Embedded SQL (SQLJ) アプレット、アプリケーショ
ン、およびルーチンです。さらに、WebSphere サンプルと、DB2 コントロ
ール・センターのプラグイン例のファイルが入っています。 Java サンプ
ルは、サポートされるすべての DB2 プラットフォーム上で使用可能で
す。
REXX サンプル
AIX および Windows 32 ビット・オペレーティング・システム用のものの
みが提供されています。
CLP サンプル
SQL ステートメントを実行するコマンド行プロセッサーのスクリプトで
す。
OLE サンプル
Microsoft® Visual Basic および Microsoft Visual C++ のオブジェクトのリ
ンクと埋め込み (OLE) のためのサンプルで、 Windows オペレーティン
グ・システム上でのみ提供されます。
Visual Basic サンプル
ActiveX Data Object、Remote Data Objects、および Microsoft Transaction
Server サンプル (Windows オペレーティング・システムでのみ提供されま
す)。
第 3 章 サンプル・プログラムおよび関連ファイル
63
Visual C++ サンプル
ActiveX Data Object サンプル。これは Windows オペレーティング・シス
テムでのみ提供されます。
ユーザー出口サンプル
データベース・ログ・ファイルを保存し検索するのに使用する、ログ管理
ユーザー出口プログラムです。ファイルは、.c 拡張子を付けて名前変更
し、 C 言語プログラムとしてコンパイルしなければなりません。
サンプル・プログラムは、DB2 がインストールされているディレクトリーの samples
サブディレクトリーに入っています。サポートされている各言語ごとにサブディレクト
リーがあります。以下の例では、サポートされている各プラットフォーム用に C また
は C++ で作成されたサンプルがある場所を探す方法を示しています。
v UNIX プラットフォームの場合:
組み込み SQL および DB2 API プログラムの C ソース・コードは、データベー
ス・インスタンス・ディレクトリーの下にある sqllib/samples/c にあります。 DB2
CLI プログラムの C ソース・コードは、 sqllib/samples/cli にあります。サンプ
ル表にあるプログラムの追加情報については、 DB2 インスタンスの下の該当する
samples サブディレクトリーの README ファイルを参照してください。 README ファ
イルには、本書でリストされていない追加のサンプルが含まれることがあります。
v Windows オペレーティング・システムの場合。
組み込み SQL と DB2 API プログラムの C ソース・コードは、 DB2 インストー
ル・ディレクトリーの下にある sqllib¥samples¥c にあります。 DB2 CLI プログラ
ムの C ソース・コードは、 sqllib¥samples¥cli にあります。 サンプル表にあるプ
ログラムの追加情報については、該当する sqllib¥samples サブディレクトリーの
README ファイルを参照してください。 README ファイルには、本書でリストされて
いない追加のサンプルが含まれることがあります。
サンプル・プログラム・ディレクトリーは、たいていのプラットフォームでは一般に読
み取り専用です。サンプル・プログラムは、変更または作成する前に、ユーザーの作業
ディレクトリーにコピーしてください。
関連概念:
v 100 ページの『ビルド・ファイル』
v 104 ページの『makefile』
v 108 ページの『エラー・チェック・ユーティリティー』
v 65 ページの『サンプル・プログラム: 構造と設計』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 76 ページの『DB2 CLI のサンプル』
v 78 ページの『JDBC のサンプル』
64
アプリケーションの構築および実行
v 81 ページの『SQLJ のサンプル』
v 89 ページの『SQL プロシージャーのサンプル』
v 91 ページの『Visual Basic のサンプル』
v 93 ページの『Visual C++ のサンプル』
v 94 ページの『オブジェクトのリンクと埋め込み (OLE) のサンプル』
v 95 ページの『オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数のサ
ンプル』
v 95 ページの『コマンド行プロセッサー (CLP) のサンプル』
v 98 ページの『ログ管理ユーザー出口サンプル』
v 84 ページの『COBOL のサンプル』
v 83 ページの『Java WebSphere のサンプル』
v 83 ページの『Java プラグインのサンプル』
v 93 ページの『Windows Management Instrumentation のサンプル』
v 96 ページの『REXX のサンプル』
サンプル・プログラム: 構造と設計
C、CLI、C++、Java、および Visual Basic ADO の DB2® サンプルの大半は、データベ
ース・コンポーネントのオブジェクト・ベースの設計モデルを反映するように編成され
ています。これらのサンプルは、さまざまなレベルの DB2 を表すカテゴリー別にグル
ープに分けられています。サンプルが属するレベルは、サンプル名の先頭に付く 2 文字
の接頭部で示されます (Java の場合、先頭文字は大文字になります)。各アプリケーショ
ン・プログラミング・インターフェースごとにすべてのレベルがサンプル内に提示され
るわけではありません。サンプルの場合はレベルはむしろ、次のように表されます。
接頭部 DB2 のレベル
il
インストール・イメージ・レベル
cl
クライアント・レベル
in
インスタンス・レベル
db
データベース・レベル
ts
表スペース・レベル
tb
表レベル
dt
データ・タイプ・レベル
レベルは階層構造を示します。インストール・イメージ・レベルは、DB2 の最上位レベ
ルです。このレベルの下では、クライアント・レベルのアプリケーションはさまざまな
インスタンスにアクセスすることができます。たとえばインスタンスは 1 つ以上のデー
第 3 章 サンプル・プログラムおよび関連ファイル
65
タベースをもつことができ、データベースは、テーブルが置かれた表スペースをもち、
さらにそれらのテーブルはさまざまなデータ・タイプのデータをもちます。
この設計には、すべての DB2 サンプルが組み込まれているわけではありません。一部
のサンプルの目的は、データにアクセスするさまざまな方式を示すことにあります。そ
のような方式がサンプルの主な目的であるため、上記のような方法でそれらの方式をサ
ンプルで紹介しています。
接頭部 プログラミング方式
fn
SQL 関数
sp
ストアード・プロシージャー
ud
ユーザー定義関数
これらのカテゴリーのほかに、データベース・プログラミングの基本概念を紹介するた
めの一連のチュートリアル・サンプルもあります。そのようなサンプルは、サンプル設
計に示されている簡単ないくつかの関数を使用し、 tut という文字で始まっています。
この設計に含まれていないその他のサンプルもあります。たとえば、ログ管理ユーザー
出口のサンプル、 COBOL のサンプル、Visual C++、REXX、オブジェクト・リンクお
よび埋め込み (OLE) サンプル、 CLP スクリプト、および SQL プロシージャーなどが
あります。
以下に、この設計内にインプリメントされているサンプル・プログラムを示してありま
す。
注: Java™ プログラム名では、最初の文字 (場合によっては他の文字も) は大文字にな
り、チュートリアル・サンプル名中では下線は使用されません。 Visual Basic サン
プルでは、一部の文字は大文字になります (ただし先頭文字ではありません)。
表 4. DB2 Universal Database サンプル・プログラムの設計
サンプル・プログラム 説明
チュートリアル・サンプル
tut_mod
表データの変更方法。
サポートされる言語 /API: C、C++、CLI、JDBC
tut_read
表の読み方。
サポートされる言語 /API: C、C++、CLI、JDBC
tut_use
データベースの使用方法。
サポートされる言語 /API: C、C++、CLI
インストール・イメージ・レベル
66
アプリケーションの構築および実行
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
ilinfo
インストール・レベル情報の取得/設定方法。
サポートされる言語 /API: CLI、JDBC
クライアント・レベル
cliExeSQL
SQL ステートメントの実行方法。
サポートされる言語 /API: Visual Basic/ADO
cli_info
クライアント・レベル情報の取得/設定方法。
サポートされる言語 /API: C、C++、CLI、Visual Basic/ADO
clihandl
ハンドルの割り当ておよび解放方法。
サポートされる言語 /API: CLI
clisqlca
SQLCA データの処理方法。
サポートされる言語 /API: CLI
clisnap
クライアント・レベルのスナップショットの取り込み方法。
サポートされる言語 /API: C、C++
インスタンス・レベル
inattach
インスタンスのアタッチ/切り離しの方法。
サポートされる言語 /API: C、C++
inauth
インスタンス・レベルでの権限の表示方法。
サポートされる言語 /API: C、C++
ininfo
インスタンス・レベル情報の入手および設定方法。
サポートされる言語 /API: C、C++、CLI
insnap
インスタンス・レベルのスナップショットの取り込み方法。
サポートされる言語 /API: C、C++
instart
現行ローカル・インスタンスの停止と始動の方法。
サポートされる言語 /API: C、C++
データベース・レベル
dbauth
データベース・レベルでの権限の付与/表示/取り消しの方法。
サポートされる言語 /API: C、C++、JDBC、SQLJ
第 3 章 サンプル・プログラムおよび関連ファイル
67
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
データベースとデータベース・マネージャー・パラメーターの構成方法。
dbcfg
サポートされる言語 /API: C、C++
dbconn
データベースの接続および切断方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ、Visual Basic/ADO
dbcreate
データベースの作成とドロップの方法。
サポートされる言語 /API: C、C++
dbinfo
データベース・レベルの情報の入手および設定方法。
サポートされる言語 /API: C、C++、CLI、JDBC、Visual Basic/ADO
dbinline
インライン SQL プロシージャー言語の使用方法。
サポートされる言語 /API: C
dbCommit
データベース・レベルでの自動コミットの動的コントロールの方法。
サポートされる言語 /API: Visual Basic/ADO
dbmcon
複数のデータベースの接続および切断方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
dbmconx
複数のデータベースの接続および切断方法。
サポートされる言語 /API: CLI
dbmigrat
データベースの移行方法。
サポートされる言語 /API: C、C++
dbnative
ODBC エスケープ文節をもったステートメントの変換方法。
サポートされる言語 /API: CLI、JDBC
パッケージの処理方法。
dbpkg
サポートされる言語 /API: C、C++
dbrecov
データベースのリカバリー方法。
サポートされる言語 /API: C、C++
dbsample
ホストおよび AS/400® の表およびビューを含めたサンプル・データベースの作成
方法。
サポートされる言語 /API: C
68
アプリケーションの構築および実行
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
DbSeq
データベース内のシーケンスの作成、変更、およびドロップの方法。
サポートされる言語 /API: JDBC
dbsnap
データベース・レベルのスナップショットの取り込み方法。
サポートされる言語 /API: C、C++
dbthrds
スレッドの使用方法。
サポートされる言語 /API: C、C++
dbuse
データベース・オブジェクトの使用方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
dbusemx
組み込み SQL を備えたデータベース・オブジェクトの使用方法。
サポートされる言語 /API: CLI
表スペース・レベル
tscreate
バッファー・プールと表スペースの作成/ドロップの方法。
サポートされる言語 /API: C、C++
tsinfo
表スペース・レベルの情報の入手方法。
サポートされる言語 /API: C、C++
表レベル
tbconstr
表の制約の処理方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
tbcreate
表の作成、変更、およびドロップ方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
TbGenCol
生成された列の使用方法。
サポートされる言語 /API: JDBC
tbident
ID 列の使用方法。
サポートされる言語 /API: C、JDBC、SQLJ
tbinfo
表レベルの情報の入手および設定方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
第 3 章 サンプル・プログラムおよび関連ファイル
69
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
表内の情報の修正方法。
tbmod
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
tbmove
表データの移動方法。
サポートされる言語 /API: C、C++
表レベル特権の付与/表示/取り消しの方法。
tbpriv
サポートされる言語 /API: C、C++、JDBC、SQLJ
表内の情報の読み取り方法。
tbread
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
tbreorg
表の再編成方法。
サポートされる言語 /API: C、C++
tbsavept
外部保管点の使用方法。
サポートされる言語 /API: C
tbtemp
宣言済み一時表の使用方法。
サポートされる言語 /API: C、JDBC
表でのトリガーの使用方法。
tbtrig
サポートされる言語 /API: C、C++、JDBC、SQLJ
データ・タイプ・レベル
dtformat
ロードおよびインポートのデータ・フォーマットの拡張子の使用方法。
サポートされる言語 /API: C
階層データの検索方法。
dtHier
サポートされる言語 /API: Visual Basic/ADO
データ・タイプに関する情報の入手方法。
dtinfo
サポートされる言語 /API: CLI、JDBC
LOB データの読み取りおよび書き込み方法。
dtlob
サポートされる言語 /API: C、C++、CLI、JDBC、Visual Basic/ADO
dtstruct
構造型および型付き表の階層の作成、使用、およびドロップの方法。
サポートされる言語 /API: C++
70
アプリケーションの構築および実行
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
dtudt
ユーザー定義特殊タイプの作成/使用/ドロップの方法。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
DB2 関数
fnuse
SQL 関数の使用方法。
サポートされる言語 /API: C、C++
ストアード・プロシージャー
spcall
ストアード・プロシージャーの呼び出し方法。
サポートされる言語 /API: CLI、Visual Basic/ADO
spclient
spserver においてストアード・プロシージャーを呼び出すクライアント・アプリケ
ーション。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
spserver
spclient によって呼び出されるストアード・プロシージャー・ルーチン。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
ユーザー定義関数
udfcli
udfsrv 内で UDF を呼び出すクライアント・アプリケーション。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
udfsrv
udfcli によって呼び出されるユーザー定義関数ライブラリー。
サポートされる言語 /API: C、C++、CLI、JDBC、SQLJ
udfjcli
udfjsrv 内で Parameter Style Java ユーザー定義関数を呼び出すクライアント・ア
プリケーション。
サポートされる言語 /API: JDBC、SQLJ
udfjsrv
udfjcli によって呼び出される Parameter Style Java ユーザー定義関数ライブラリ
ー。
サポートされる言語 /API: JDBC、SQLJ
udfsqlcl
udfsqlsv 内で Java ユーザー定義関数を呼び出すクライアント・アプリケーショ
ン。
サポートされる言語 /API: JDBC
第 3 章 サンプル・プログラムおよび関連ファイル
71
表 4. DB2 Universal Database サンプル・プログラムの設計 (続き)
サンプル・プログラム 説明
udfsqlsv
udfsqlcl によって呼び出される SQL ステートメントをもった Java ユーザー定義
関数。
サポートされる言語 /API: JDBC
udfUse
UDT と UDF の作成とその処理の方法。
サポートされる言語 /API: Visual Basic/ADO
関連概念:
v 100 ページの『ビルド・ファイル』
v 104 ページの『makefile』
v 108 ページの『エラー・チェック・ユーティリティー』
v 59 ページの『サンプル・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 76 ページの『DB2 CLI のサンプル』
v 78 ページの『JDBC のサンプル』
v 81 ページの『SQLJ のサンプル』
v 89 ページの『SQL プロシージャーのサンプル』
v 91 ページの『Visual Basic のサンプル』
v 93 ページの『Visual C++ のサンプル』
v 94 ページの『オブジェクトのリンクと埋め込み (OLE) のサンプル』
v 95 ページの『オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数のサ
ンプル』
v 95 ページの『コマンド行プロセッサー (CLP) のサンプル』
v 98 ページの『ログ管理ユーザー出口サンプル』
v 84 ページの『COBOL のサンプル』
v 83 ページの『Java WebSphere のサンプル』
v 83 ページの『Java プラグインのサンプル』
v 93 ページの『Windows Management Instrumentation のサンプル』
v 96 ページの『REXX のサンプル』
72
アプリケーションの構築および実行
言語およびアプリケーション・インターフェース別のサンプル・プログラム
C/C++ のサンプル
注: ファイル拡張子:
C
.c (非組み込み SQL)
.sqc (組み込み SQL)
C++
.C (非組み込み SQL )
.sqC (組み込み SQL)
表 5. C/C++ サンプル・プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
チュートリアル・サンプル - データベースの基本操作の例を示すプログラム。
tut_mod.sqc,
tut_mod.sqC
表データの変更方法。
tut_read.sqc,
tut_read.sqC
表の読み方。
tut_use.sqc,
tut_use.sqC
データベースの使用方法。
クライアント・レベル - クライアント・レベルの DB2 を扱うサンプル。
cli_info.c,
cli_info.C
クライアント・レベル情報の入手および設定方法。
clisnap.c, clisnap.C クライアント・レベルのスナップショットの取り込み方法。
インスタンス・レベル - DB2 のインスタンス・レベルを扱うサンプル。
inattach.c,
inattach.C
インスタンスのアタッチ/切り離しの方法。
inauth.sqc,
inauth.sqC
インスタンス・レベルでの権限の表示方法。
ininfo.c, ininfo.C
インスタンス・レベル情報の入手および設定方法。
insnap.c, insnap.C
インスタンス・レベルのスナップショットの取り込み方法。
instart.c, instart.C 現行ローカル・インスタンスの停止と始動の方法。
データベース・レベル - DB2 内のデータベース・オブジェクトを扱うサンプル。
dbauth.sqc,
dbauth.sqC
データベース・レベルでの権限の付与/表示/取り消しの方法。
dbcfg.sqc, dbcfg.sqC データベースとデータベース・マネージャー・パラメーターの構成方法。
第 3 章 サンプル・プログラムおよび関連ファイル
73
表 5. C/C++ サンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
dbconn.sqc,
dbconn.sqC
データベースからの接続および切断方法。
dbcreate.c,
dbcreate.C
データベースの作成とドロップの方法。
dbinfo.c, dbinfo.C
データベース・レベルの情報の入手および設定方法。
dbinline.sqc
インライン SQL プロシージャー言語の使用方法。
dbmcon.sqc,
dbmcon.sqC
データベースの接続および切断方法。
dbmcon1.h, dbmcon1.h dbmcon1.sqc、dbmcon1.sqC のヘッダー・ファイル。
dbmcon1.sqc,
dbmcon1.sqC
dbmcon.sqc、dbmcon.sqC のサポート・ファイル。
dbmcon2.h, dbmcon2.h dbmcon2.sqc、dbmcon2.sqC のヘッダー・ファイル。
dbmcon2.sqc,
dbmcon2.sqC
dbmcon.sqc、dbmcon.sqC のサポート・ファイル。
dbmigrat.c,
dbmigrat.C
データベースの移行方法。
dbpkg.sqc, dbpkg.sqC パッケージの処理方法。
dbrecov.sqc,
dbrecov.sqC
データベースのリカバリー方法。
dbsample.sqc
ホストおよび AS/400 の表およびビューを含めたサンプル・データベースの作成
方法。
dbsnap.c, dbsnap.C
データベース・レベルのスナップショットの取り込み方法。
dbthrds.sqc,
dbthrds.sqC
スレッドの使用方法。
dbuse.sqc, dbuse.sqC データベース・オブジェクトの使用方法。
表スペース・レベル - 表スペース・レベルの DB2 を扱うサンプル。
tscreate.sqc,
tscreate.sqC
バッファー・プールと表スペースの作成とドロップの方法。
tsinfo.sqc,
tsinfo.sqC
表スペース・レベルの情報の入手方法。
表レベル - DB2 内の表オブジェクトを扱うサンプル。
tbconstr.sqc,
tbconstr.sqC
74
表の制約の処理方法。
アプリケーションの構築および実行
表 5. C/C++ サンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
tbcreate.sqc,
tbcreate.sqC
表の作成、変更、およびドロップ方法。
tbident.sqc
ID 列の使用方法。
tbinfo.sqc,
tbinfo.sqC
表レベルの情報の入手および設定方法。
tbmod.sqc, tbmod.sqC 表内の情報の修正方法。
tbmove.sqc,
tbmove.sqC
表データの移動方法。
tbpriv.sqc,
tbpriv.sqC
表レベル特権の付与/表示/取り消しの方法。
tbread.sqc,
tbread.sqC
表内の情報の読み取り方法。
tbreorg.sqc,
tbreorg.sqC
表の再編成方法。
tbsavept.sqc
外部保管点の使用方法。
tbtemp.sqc
宣言済み一時表の使用方法。
tbtrig.sqc,
tbtrig.sqC
表でのトリガーの使用方法。
データ・タイプ・レベル - データ・タイプを扱うサンプル。
dtformat.sqc
ロードおよびインポートのデータ・フォーマットの拡張子の使用方法。
dtlob.sqc, dtlob.sqC LOB データの読み取りおよび書き込み方法。
dtstruct.sqC
構造型および型付き表の階層の作成、使用、およびドロップの方法。
dtudt.sqc, dtudt.sqC ユーザー定義特殊タイプの作成、使用、およびドロップ方法。
DB2 関数レベル
fnuse.sqc, fnuse.sqC SQL 関数の使用方法。
ストアード・プロシージャー・レベル - ストアード・プロシージャーを示すサンプル。
spcat
spserver プログラムのストアード・プロシージャー・カタログ・スクリプト。この
スクリプトは、spdrop.db2 と spcreate.db2 を呼び出します。
spcreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
spdrop.db2
カタログからストアード・プロシージャーをドロップするための CLP スクリプ
ト。
spclient.sqc,
spclient.sqC
spserver.sqc、spserver.sqC 内で宣言されたサーバー・ルーチンの呼び出しで使用さ
れるクライアント・プログラム。
第 3 章 サンプル・プログラムおよび関連ファイル
75
表 5. C/C++ サンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
spserver.sqc,
spserver.sqC
サーバー上で作成および実行されるストアード・プロシージャー・ルーチン。
UDF レベル - ユーザー定義関数を示すサンプル。
udfcli.sqc,
udfcli.sqC
udfsrv.c、udfsrv.C 内のユーザー定義関数を呼び出すクライアント・アプリケーシ
ョン。
udfsrv.c, udfsrv.C
udfcli.sqc、udfcli.sqC によって呼び出されるユーザー定義関数 ScalarUDF。
udfemcli.sqc,
udfemcli.sqC
組み込み SQL ユーザー定義関数ライブラリー udfemsrv を呼び出すクライアン
ト・アプリケーション。
udfemsrv.sqc,
udfemsrv.sqC
udfemcli によって呼び出される組み込み SQL ユーザー定義関数ライブラリー。
その他
utilsnap.c,
utilsnap.C
スナップショット・モニター・サンプル用のユーティリティー。
関連概念:
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
DB2 CLI のサンプル
表 6. サンプル CLI プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
チュートリアル・サンプル - データベースの基本操作の例を示すプログラム。
tut_mod.c
表データの変更方法。
tut_read.c
表の読み方。
tut_use.c
データベースの使用方法。
インストール・イメージ・レベル - DB2 と CLI のインストール・イメージ・レベルを扱うサンプル。
ilinfo.c
インストール・レベル情報 (CLI ドライバーのバージョンなど) の入手および設定
方法。
クライアント・レベル - クライアント・レベルの DB2 を扱うサンプル。
cli_info.c
クライアント・レベル情報の入手および設定方法。
clihandl.c
ハンドルの割り当ておよび解放方法。
clisqlca.c
SQLCA データの処理方法。
76
アプリケーションの構築および実行
表 6. サンプル CLI プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
インスタンス・レベル - DB2 のインスタンス・レベルを扱うサンプル。
ininfo.c
インスタンス・レベル情報の入手および設定方法。
データベース・レベル - DB2 内のデータベース・オブジェクトを扱うサンプル。
dbcongui.c
グラフィカル・ユーザー・インターフェース (GUI) にデータベースを接続する方
法。
dbconn.c
データベースからの接続および切断方法。
dbinfo.c
データベース・レベルの情報の入手および設定方法。
dbmcon.c
データベースからの接続および切断方法。
dbmconx.c
組み込み SQL をもった複数のデータベースへの接続および切断方法。
dbmconx1.h
dbmconx1.sqc 用のヘッダー・ファイル。
dbmconx1.sqc
dbmconx プログラム用の組み込み SQL ファイル。
dbmconx2.h
dbmconx2.sqc 用のヘッダー・ファイル。
dbmconx2.sqc
dbmconx プログラム用の組み込み SQL ファイル。
dbnative.c
ODBC エスケープ文節の入ったステートメントを、データ・ソース特有の形式に
変換する方法。
dbuse.c
データベース・オブジェクトの使用方法。
dbusemx.sqc
組み込み SQL を備えたデータベース・オブジェクトの使用方法。
表レベル - DB2 内の表オブジェクトを扱うサンプル。
tbconstr.c
表の制約の処理方法。
tbcreate.c
表の作成、変更、およびドロップ方法。
tbinfo.c
表レベルの情報の入手および設定方法。
tbmod.c
表内の情報の修正方法。
tbread.c
表内の情報の読み取り方法。
データ・タイプ・レベル - データ・タイプを扱うサンプル。
dtinfo.c
データ・タイプに関する情報の入手方法。
dtlob.c
LOB データの読み取りおよび書き込み方法。
dtudt.c
ユーザー定義特殊タイプの作成、使用、およびドロップ方法。
ストアード・プロシージャー・レベル - ストアード・プロシージャーを示すサンプル。
spcat
spserver プログラムのストアード・プロシージャー・カタログ・スクリプト。この
スクリプトは、spdrop.db2 と spcreate.db2 を呼び出します。
spcreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
第 3 章 サンプル・プログラムおよび関連ファイル
77
表 6. サンプル CLI プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
spdrop.db2
カタログからストアード・プロシージャーをドロップするための CLP スクリプ
ト。
spclient.c
spserver.c 内で宣言されるサーバー関数を呼び出すために使用されるクライアン
ト・プログラム。
spserver.c
サーバー上で構築および実行されるストアード・プロシージャー関数。
spclires.c
複数の結果セットの SQLMoreResults と SQLNextResults の相違を示すクライアン
ト・アプリケーション。
spcall.c
任意のストアード・プロシージャーを呼び出すためのクライアント・プログラ
ム。
UDF レベル - ユーザー定義関数を示すサンプル。
udfcli.c
udfsrv.c 内のユーザー定義関数を呼び出すクライアント・アプリケーション。
udfsrv.c
udfcli.c によって呼び出されるユーザー定義関数 ScalarUDF。
共通ユーティリティー・ファイル
utilcli.c
CLI サンプルで使用されるユーティリティー関数。
utilcli.h
CLI サンプルで使用されるユーティリティー関数用のヘッダー・ファイル。
関連概念:
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
JDBC のサンプル
表 7. サンプル JDBC プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
チュートリアル・サンプル - データベースの基本操作の例を示すプログラム。
TutMod.java
表データの変更方法。
TutRead.java
表の読み方。
インストール・イメージ・レベル - DB2 のインストール・イメージ・レベルを扱うサンプル。
IlInfo.java
インストール・レベル情報の入手および設定方法。
データベース・レベル - DB2 内のデータベース・オブジェクトを扱うサンプル。
DbAuth.java
データベース・レベルでの権限の付与/表示/取り消しの方法。
DbConn.java
データベースからの接続および切断方法。
78
アプリケーションの構築および実行
表 7. サンプル JDBC プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
DbInfo.java
データベース・レベルの情報の入手および設定方法。
DbMCon.java
データベースからの接続および切断方法。
DbNative.java
ODBC エスケープ文節の入ったステートメントを、データ・ソース特有の形式に
変換する方法。
DbSeq.java
データベース内のシーケンスの作成、変更、およびドロップの方法。
DbUse.java
データベース・オブジェクトの使用方法。
表レベル - DB2 内の表オブジェクトを扱うサンプル。
TbConstr.java
表の制約の処理方法。
TbCreate.java
表の作成、変更、およびドロップ方法。
TbGenCol.java
生成された列の使用方法。
TbIdent.java
ID 列の使用方法。
TbInfo.java
表レベルの情報の入手および設定方法。
TbMod.java
表内の情報の修正方法。
TbPriv.java
表レベル特権の付与/表示/取り消しの方法。
TbRead.java
表内の情報の読み取り方法。
TbTemp.java
宣言済み一時表の使用方法。
TbTrig.java
表でのトリガーの使用方法。
データ・タイプ・レベル - データ・タイプを扱うサンプル。
DtInfo.java
データ・タイプに関する情報の入手方法。
DtLob.java
LOB データの読み取りおよび書き込み方法。
DtUdt.java
ユーザー定義特殊タイプの作成、使用、およびドロップ方法。
アプレット - アプレットの例を示すサンプル。
Applt.java
アプレットの使用方法。
ストアード・プロシージャー - ストアード・プロシージャーの例を示すサンプル。
spcat
spserver プログラムのストアード・プロシージャー・カタログ・スクリプト。この
スクリプトは、SpDrop.db2 と SpCreate.db2 を呼び出します。
SpCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
SpDrop.db2
カタログからストアード・プロシージャーをドロップするための CLP スクリプ
ト。
SpClient.java
SpServer.java 内で宣言されたサーバー関数の呼び出しで使用されるクライアン
ト・プログラム。
SpServer.java
サーバー上で構築および実行されるストアード・プロシージャー関数。
第 3 章 サンプル・プログラムおよび関連ファイル
79
表 7. サンプル JDBC プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
UDF - ユーザー定義関数の例を示すサンプル。
UDFcli.java
ユーザー定義関数ライブラリー UDFsrv を呼び出すクライアント・アプリケーシ
ョン。
UDFsrv.java
UDFcli.java によって呼び出されるユーザー定義関数。
udfcat
UDFsrv プログラム用の UDF カタログ・スクリプト。このスクリプトは、
UDFDrop.db2 と UDFCreate.db2 を呼び出します。
UDFDrop.db2
UDF をカタログからドロップするための CLP スクリプト。
UDFCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
UDFjcli.java
ユーザー定義関数ライブラリー UDFjsrv を呼び出すクライアント・アプリケーシ
ョン。
UDFjsrv.java
UDFjcli.java によって呼び出されるユーザー定義関数。
udfjcat
UDFjsrv プログラム用の UDF カタログ・スクリプト。このスクリプトは、
UDFjDrop.db2 と UDFjCreate.db2 を呼び出します。
UDFjDrop.db2
UDF をカタログからドロップするための CLP スクリプト。
UDFjCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
UDFsCreate.db2
UDFsqlsv.java に入っている UDF をカタログする方法。
UDFsDrop.db2
UDFsqlsv.java に入っている UDF をアンカタログする方法。
UDFsqlcl.java
UDFsqlsv.java 内の UDF を呼び出します。
UDFsqlsv.java
UDFsqlcl.java によって呼び出される SQL ステートメント呼び出しを備えたユー
ザー定義関数。
Java bean - Java bean クラスの例を示すサンプル。
CreateEmployee.java
社員レコードの作成方法。
GeneratePayroll.java 部門別の給与計算レポートの生成方法。
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
関連資料:
v 81 ページの『SQLJ のサンプル』
v 83 ページの『Java WebSphere のサンプル』
v 83 ページの『Java プラグインのサンプル』
80
アプリケーションの構築および実行
SQLJ のサンプル
表 8. サンプル SQLJ プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
チュートリアル・サンプル - データベースの基本操作の例を示すプログラム。
TutMod.sqlj
表データの変更方法。
TutRead.sqlj
表の読み方。
データベース・レベル - DB2 内のデータベース・オブジェクトを扱うサンプル。
DbAuth.sqlj
データベース・レベルでの権限の付与/表示/取り消しの方法。
DbConn.sqlj
データベースからの接続および切断方法。
DbMCon.java
データベースからの接続および切断方法。
DbMCon1.sqlj
DbMCon.java 用のサポート・ファイル。
DbMCon2.sqlj
DbMCon.java 用のサポート・ファイル。
DbUse.sqlj
データベース・オブジェクトの使用方法。
表レベル - DB2 内の表オブジェクトを扱うサンプル。
TbConstr.sqlj
表の制約の処理方法。
TbCreate.sqlj
表の作成、変更、およびドロップ方法。
TbIdent.sqlj
ID 列の使用方法。
TbInfo.sqlj
表レベルの情報の入手および設定方法。
TbMod.sqlj
表内の情報の修正方法。
TbPriv.sqlj
表レベル特権の付与/表示/取り消しの方法。
TbRead.sqlj
表内の情報の読み取り方法。
TbTrig.sqlj
表でのトリガーの使用方法。
データ・タイプ・レベル - データ・タイプを扱うサンプル。
DtUdt.sqlj
ユーザー定義特殊タイプの作成、使用、およびドロップ方法。
アプレット・レベル - アプレットの例を示すサンプル。
Applt.sqlj
アプレットの使用方法。
ストアード・プロシージャー・レベル - ストアード・プロシージャーを示すサンプル。
spcat
SpServer プログラムのストアード・プロシージャー・カタログ・スクリプト。こ
のスクリプトは、SpDrop.db2 と SpCreate.db2 を呼び出します。
SpCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
SpDrop.db2
カタログからストアード・プロシージャーをドロップするための CLP スクリプ
ト。
SpClient.sqlj
SpServer.sqlj 内で宣言されたサーバー関数の呼び出しで使用されるクライアン
ト・プログラム。
第 3 章 サンプル・プログラムおよび関連ファイル
81
表 8. サンプル SQLJ プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
SpServer.sqlj
サーバー上で構築および実行されるストアード・プロシージャー関数。
SpIterat.sqlj
SpServer.sqlj 用の ITERATOR クラス・ファイル。
UDF レベル - ユーザー定義関数を示すサンプル。
UDFcli.sqlj
ユーザー定義関数ライブラリー UDFsrv を呼び出すクライアント・アプリケーシ
ョン。
UDFsrv.java
UDFcli によって呼び出されるユーザー定義関数。
udfcat
UDFsrv プログラム用の UDF カタログ・スクリプト。このスクリプトは、
UDFDrop.db2 と UDFCreate.db2 を呼び出します。
UDFDrop.db2
UDF をカタログからドロップするための CLP スクリプト。
UDFCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
UDFjcli.sqlj
ユーザー定義関数ライブラリー UDFjsrv を呼び出すクライアント・アプリケーシ
ョン。
UDFjsrv.java
UDFjcli によって呼び出されるユーザー定義関数。
udfjcat
UDFjsrv プログラム用の UDF カタログ・スクリプト。このスクリプトは、
UDFjDrop.db2 と UDFjCreate.db2 を呼び出します。
UDFjDrop.db2
UDF をカタログからドロップするための CLP スクリプト。
UDFjCreate.db2
CREATE PROCEDURE ステートメントを発行するための CLP スクリプト。
Java bean - Java bean クラスの例を示すサンプル。
CreateEmployee.sqlj
社員レコードの作成方法。
GeneratePayroll.sqlj 部門別の給与計算レポートの生成方法。
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
関連資料:
v 78 ページの『JDBC のサンプル』
v 83 ページの『Java WebSphere のサンプル』
v 83 ページの『Java プラグインのサンプル』
82
アプリケーションの構築および実行
Java WebSphere のサンプル
表 9. Java WebSphere のサンプル・ファイル
サンプル・
プログラム名
プログラムの説明
AccessEmployee.ear
この Enterprise ARchive (.EAR) ファイルは、 32 個の別々の .class、 .JSP、お
よび .HTML ファイルの入った 4 つのモジュールで構成されます。この EAR フ
ァイルは、IBM WebSphere Application Server を使用して簡単に配置できます。
Enterprise Java Beans (EJB) と対話して、 DB2 に保管されているデータに Java
クライアントからアクセスする方法がこのファイルによって示されます。
AccessEmployee.ear ファイルは、samples/java/WebSphere ディレクトリーに置
かれています。
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
関連資料:
v 78 ページの『JDBC のサンプル』
v 81 ページの『SQLJ のサンプル』
v 83 ページの『Java プラグインのサンプル』
Java プラグインのサンプル
表 10. Java コントロール・センター・プラグインのサンプル・ファイル
サンプル・
プログラム名
プログラムの説明
Example1.java
「コントロール・センター (Control Center)」ツールバーに新規のツールバー・ボ
タンを追加する方法。
Example2.java
コントロール・センター・データベース・オブジェクトに新規のメニュー・アク
ションを追加する方法。
Example3.java
コントロール・センター・ツリーのデータベース・オブジェクトの下に新規のオ
ブジェクトを追加する方法。
Example3Folder.java
コントロール・センター・ツリーのデータベース・オブジェクトの下に新規のオ
ブジェクトを追加する方法。
Example4.java
データベース・オブジェクトとインスタンス・オブジェクトの「構成
(Configure)」メニュー項目を除去する方法。
Example5.java
変更アクションを表から除去する方法。
第 3 章 サンプル・プログラムおよび関連ファイル
83
表 10. Java コントロール・センター・プラグインのサンプル・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
Example6.java
「データベース構成 (Database Configuration)」のデフォルト・ボタンを使用不可
にする方法。
関連概念:
v 管理ガイド: インプリメンテーション の『コントロール・センター用のプラグイン・
アーキテクチャーの紹介』
v 管理ガイド: インプリメンテーション の『コントロール・センターのプラグインのパ
フォーマンスに関する考慮事項』
v 管理ガイド: インプリメンテーション の『サンプル・プラグインのコンパイルおよび
実行』
v 113 ページの『Java サンプル・プログラム』
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
v 管理ガイド: インプリメンテーション の『コントロール・センターの拡張機能として
のプラグインの作成』
関連タスク:
v 管理ガイド: インプリメンテーション の『ツールバー・ボタンを追加するプラグイン
の作成』
v 管理ガイド: インプリメンテーション の『プラグイン・ツリー・オブジェクトの属性
の設定』
関連資料:
v 78 ページの『JDBC のサンプル』
v 81 ページの『SQLJ のサンプル』
v 83 ページの『Java WebSphere のサンプル』
COBOL のサンプル
注: COBOL サンプルは、C、CLI、C++、および Java サンプルで使用される DB2 レベ
ル設計の構造にはなっていません。
84
アプリケーションの構築および実行
表 11. 組み込み SQL なしの COBOL DB2 API サンプル・プログラム
サンプル・
プログラム
組み込み API
checkerr.cbl
v sqlaintp - エラー・メッセージの入手
v sqlogstt - SQLSTATE メッセージの入手
client.cbl
v sqleqryc - クライアントの照会
v sqlesetc - クライアントの設定
d_dbconf.cbl
v sqleatin - アタッチ
v sqledtin - 切り離し
v sqlfddb - データベース構成デフォルト値の入手
d_dbmcon.cbl
v sqleatin - アタッチ
v sqledtin - 切り離し
v sqlfdsys - データベース・マネージャー構成デフォルト値の入手
db_udcs.cbl
v sqleatin - アタッチ
v sqlecrea - データベースの作成
v sqledrpd - データベースのドロップ
dbcat.cbl
v sqlecadb - データベースのカタログ
v sqledcls - データベース・ディレクトリー・スキャンのクローズ
v sqledgne - 次のデータベース・ディレクトリー・エントリーの
入手
v sqledosd - データベース・ディレクトリー・スキャンのオープ
ン
v sqleuncd - データベースのアンカタログ
dbcmt.cbl
v sqledcgd - データベースのコメントの変更
v sqledcls - データベース・ディレクトリー・スキャンのクローズ
v sqledgne - 次のデータベース・ディレクトリー・エントリーの
入手
v sqledosd - データベース・ディレクトリー・スキャンのオープ
ン
v sqleisig - シグナル・ハンドラーのインストール
第 3 章 サンプル・プログラムおよび関連ファイル
85
表 11. 組み込み SQL なしの COBOL DB2 API サンプル・プログラム (続き)
サンプル・
プログラム
組み込み API
dbconf.cbl
v sqleatin - アタッチ
v sqlecrea - データベースの作成
v sqledrpd - データベースのドロップ
v sqlfrdb - データベース構成のリセット
v sqlfudb - データベース構成の更新
v sqlfxdb - データベース構成の入手
dbinst.cbl
v sqleatcp - アタッチおよびパスワードの変更
v sqleatin - アタッチ
v sqledtin - 切り離し
v sqlegins - インスタンス
dbmconf.cbl
v sqleatin - アタッチ
v sqledtin - 切り離し
v sqlfrsys - データベース・マネージャー構成のリセット
v sqlfusys - データベース・マネージャー構成の更新
v sqlfxsys - データベース・マネージャー構成の入手
dbsnap.cbl
v sqleatin - アタッチ
v sqlmonss - スナップショットの入手
dbstart.cbl
v sqlepstart - データベース・マネージャーの開始
dbstop.cbl
v sqlefrce - アプリケーションの強制
v sqlepstp - データベース・マネージャーの停止
dcscat.cbl
v sqlegdad - DCS データベースのカタログ
v sqlegdcl - DCS ディレクトリー・スキャンのクローズ
v sqlegdel - DCS データベースのアンカタログ
v sqlegdge - データベースの DCS ディレクトリー・エントリー
の入手
v sqlegdgt - DCS ディレクトリー・エントリーの入手
v sqlegdsc - DCS ディレクトリー・スキャンのオープン
ebcdicdb.cbl
v sqleatin - アタッチ
v sqlecrea - データベースの作成
v sqledrpd - データベースのドロップ
86
アプリケーションの構築および実行
表 11. 組み込み SQL なしの COBOL DB2 API サンプル・プログラム (続き)
サンプル・
プログラム
組み込み API
migrate.cbl
v sqlemgdb - データベースの移行
monreset.cbl
v sqleatin - アタッチ
v sqlmrset - モニターのリセット
monsz.cbl
v sqleatin - アタッチ
v sqlmonss - スナップショットの入手
v sqlmonsz - sqlmonss() 出力バッファーに必要なサイズの見積も
り
nodecat.cbl
v sqlectnd - ノードのカタログ
v sqlencls - ノード・ディレクトリー・スキャンのクローズ
v sqlengne - 次のノード・ディレクトリー・エントリーの入手
v sqlenops - ノード・ディレクトリー・スキャンのオープン
v sqleuncn - ノードのアンカタログ
restart.cbl
v sqlerstd - データベースの再始動
setact.cbl
v sqlesact - アカウンティング・ストリングの設定
sws.cbl
v sqleatin - アタッチ
v sqlmon - モニター・スイッチの入手/更新
表 12. COBOL DB2 API 組み込み SQL サンプル・プログラム
サンプル・
プログラム
組み込み API
dbauth.sqb
v sqluadau - 許可の入手
dbstat.sqb
v db2Reorg - 表の再編成
v db2Runstats - 統計の実行
expsamp.sqb
v sqluexpr - エクスポート
v sqluimpr - インポート
impexp.sqb
v sqluexpr - エクスポート
v sqluimpr - インポート
loadqry.sqb
v db2LoadQuery - 照会のロード
rebind.sqb
v sqlarbnd - 再バインド
第 3 章 サンプル・プログラムおよび関連ファイル
87
表 12. COBOL DB2 API 組み込み SQL サンプル・プログラム (続き)
サンプル・
プログラム
組み込み API
tabscont.sqb
v sqlbctcq - 表スペース・コンテナー照会のクローズ
v sqlbftcq - 表スペース・コンテナー照会の取り出し
v sqlbotcq - 表スペース・コンテナー照会のオープン
v sqlbtcq - 表スペース・コンテナー照会
v sqlefmem - 空きメモリー
tabspace.sqb
v sqlbctsq - 表スペース照会のクローズ
v sqlbftpq - 表スペース照会の取り出し
v sqlbgtss - 表スペース統計の入手
v sqlbmtsq - 表スペース照会
v sqlbotsq - 表スペース照会のオープン
v sqlbstpq - 単一表スペース照会
v sqlefmem - 空きメモリー
tload.sqb
v sqluexpr - エクスポート
v sqluload - ロード
v sqluvqdp - 表の表スペースの静止
tspace.sqb
v sqlbctcq - 表スペース・コンテナー照会のクローズ
v sqlbctsq - 表スペース照会のクローズ
v sqlbftcq - 表スペース・コンテナー照会の取り出し
v sqlbftpq - 表スペース照会の取り出し
v sqlbgtss - 表スペース統計の入手
v sqlbmtsq - 表スペース照会
v sqlbotcq - 表スペース・コンテナー照会のオープン
v sqlbotsq - 表スペース照会のオープン
v sqlbstpq - 単一表スペース照会
v sqlbstsc - 表スペース・コンテナーの設定
v sqlbtcq - 表スペース・コンテナー照会
v sqlefmem - 空きメモリー
88
アプリケーションの構築および実行
表 13. DB2 API なしの COBOL 組み込み SQL サンプル・プログラム
サンプル・
プログラム名
プログラムの説明
advsql.sqb
CASE、CAST、およびスカラー全選択などの拡張 SQL 式の使用例を示します。
cursor.sqb
静的 SQL を使用するカーソルの使用例を示します。
delet.sqb
データベースから項目を削除する静的 SQL の使用例を示します。
dynamic.sqb
動的 SQL を使用するカーソルの使用例を示します。
joinsql.sqb
拡張 SQL 結合式の使用例を示します。
lobeval.sqb
LOB ロケーターの使用例を示し、実際の LOB データの評価を遅らせます。
lobfile.sqb
LOB ファイル・ハンドルの使用例を示します。
lobloc.sqb
LOB ロケーターの使用例を示します。
openftch.sqb
静的 SQL を使用した行の取り出し、更新、および削除について示します。
static.sqb
情報を検索する静的 SQL を示します。
tabsql.sqb
拡張 SQL 表式の使用例を示します。
trigsql.sqb
拡張 SQL トリガーおよび制約の使用例を示します。
updat.sqb
データベースを更新する静的 SQL の使用例を示します。
varinp.sqb
パラメーター・マーカーを使用した組み込み動的 SQL ステートメント呼び出しへ
の変数入力を示します。
関連概念:
v 59 ページの『サンプル・ファイル』
SQL プロシージャーのサンプル
表 14. 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 プロシージャーを呼び出します。
第 3 章 サンプル・プログラムおよび関連ファイル
89
表 14. SQL プロシージャーのサンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
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 プロシージャーを呼び出します。
nestedsp.db2
OUT_AVERAGE、OUT_MEDIAN、および MAX_SALARY プロシージャーは、サン
プル・データベースの ″staff″ 表中の平均値、中央値、および最大値を戻します。
NestedSP.java
OUT_AVERAGE プロシージャーを呼び出します。
repeat.db2
REPEAT_STMT プロシージャーは、カーソルが行を検索できなくなるまで、繰り返
しステートメント内で実行される FETCH 操作の数をカウントします。条件ハンド
ラーは、制御の流れが繰り返しループから出て、ストアード・プロシージャーを完
了するようにします。
repeat.sqc
REPEAT_STMT プロシージャーを呼び出します。
90
アプリケーションの構築および実行
表 14. SQL プロシージャーのサンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
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 プロシージャーを呼び出します。
関連概念:
v 59 ページの『サンプル・ファイル』
Visual Basic のサンプル
表 15. Visual Basic ADO サンプル・プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
クライアント・レベル
cliExeSQL.bas
SQL ステートメントの実行方法。
cli_Info.bas
クライアント・レベル情報の取得/設定方法。
データベース・レベル
dbConn.bas
データベースの接続および切断方法。
dbInfo.bas
データベース・レベルの情報の入手および設定方法。
第 3 章 サンプル・プログラムおよび関連ファイル
91
表 15. Visual Basic ADO サンプル・プログラム・ファイル (続き)
サンプル・
プログラム名
プログラムの説明
dbCommit.bas
データベース・レベルでの自動コミットの動的コントロールの方法。
データ・タイプ・レベル
dtHier.bas
階層データの検索方法。
dtLob.bas
LOB データの読み取りおよび書き込み方法。
ストアード・プロシージャー
ストアード・プロシージャーの呼び出し方法。
spCall.bas
ユーザー定義関数
udfUse.bas
UDT と UDF の作成とその処理の方法。
表 16. Visual Basic RDO および MTS のサンプル・プログラム・ファイル
サンプル・
プログラム名
プログラムの説明
Bank.vbp
カスタマー・アカウントでトランザクションを実行する機能を使用して、銀行の支
店に関するデータを作成し、保守する RDO プログラム。このプログラムには、ア
プリケーションがデータを格納するために必要な表を作成する DDL が入っている
ので、ユーザーが指定する任意のデータベースに使用できます。このプログラムの
ファイルは、samples¥VB¥RDO にあります。
db2com.vbp
この Visual Basic プロジェクトは、Microsoft Transaction Server を使用した、デー
タベースの更新例を示します。また、クライアント・プログラム db2mts.vbp が使
用するサーバー DLL を作成します。 Visual Basic プロジェクトには、以下の 4 つ
のクラス・モジュールがあります。
v UpdateNumberColumn.cls
v UpdateRow.cls
v UpdateStringColumn.cls
v VerifyUpdate.cls
このプログラムの場合、一時表 DB2MTS が sample データベースに作成されます。
このプログラムのファイルは、samples¥VB¥MTS にあります。
db2mts.vbp
これは、Microsoft Transaction Server を使用して、 db2com.vbp から作成されたサー
バー DLL を呼び出す、クライアント・プログラム用の Visual Basic プロジェクト
です。このプログラムのファイルは、samples¥VB¥MTS にあります。
関連概念:
v 59 ページの『サンプル・ファイル』
v 65 ページの『サンプル・プログラム: 構造と設計』
92
アプリケーションの構築および実行
関連資料:
v 93 ページの『Windows Management Instrumentation のサンプル』
Visual C++ のサンプル
表 17. Visual C++ サンプル・プログラム・ファイル
サンプル・
プログラム名
BLOBAccess.dsw
プログラムの説明
このサンプルは、Microsoft Visual C++ を使用した ADO/Blob 強調表示アクセスを
示します。これは Visual Basic サンプル、Blob.vbp と類似しています。 BLOB サ
ンプルには次の 2 つの main 関数があります。
1. サンプル・データベースから BLOB を読み取り、画面に表示する
2. ファイルから BLOB を読み取り、データベースに挿入する (インポート)
VarCHAR.dsp
ADO を使用してテキスト・フィールドとして VarChar にアクセスする、 Visual
C++ プログラム。グラフィカル・ユーザー・インターフェースを提供するので、ユ
ーザーは sample データベースの ORG 表のデータを表示および更新できます。
関連概念:
v 59 ページの『サンプル・ファイル』
Windows Management Instrumentation のサンプル
表 18. Windows Management Instrumentation のサンプル・プログラム・ファイル
サンプル・
ファイル名
ファイルの説明
backupdb.vbs
データベースのバックアップ方法。
createdb.vbs
データベースの作成とドロップの方法。
listsvr.vbs
サーバー・インスタンスの列挙の方法と DB2 インスタンスの開始と停止の方法。
perfmon.mof
perfmon.vbs 用の MOF ファイル。
perfmon.vbs
DB2 パフォーマンス・カウンターの入手方法。注: 先に mofcomp perfmon.mof を実行
する必要があります。
regvar.mof
regvar.vbs 用の MOF ファイル。
regvar.vbs
DB2 レジストリー変数の入手方法。注: 先に mofcomp regvar.mof を実行する必要が
あります。
restoredb.vbs
データベースのリストア方法。
rollfwddb.vbs
データベースのロールフォワード方法。
updatedbcfg.vbs
データベース構成の入手と更新の方法。
updatedbmcfg.vbs データベース・マネージャー構成の入手と更新の方法。
第 3 章 サンプル・プログラムおよび関連ファイル
93
関連概念:
v 59 ページの『サンプル・ファイル』
v 313 ページの『Windows Management Instrumentation (WMI)』
関連資料:
v 91 ページの『Visual Basic のサンプル』
オブジェクトのリンクと埋め込み (OLE) のサンプル
表 19. オブジェクトのリンクと埋め込み (OLE) サンプル・プログラム
サンプル・
プログラム名
プログラムの説明
sales
Microsoft Excel スプレッドシート上でのロールアップ照会を示します (Visual Basic
で実現)。
names
Lotus Notes アドレス・ブックを照会します (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++ DB2 CLI
サンプル。
salarycltvb
Visual Basic ストアード・プロシージャー salarysrv を呼び出す Visual Basic DB2
CLI サンプル。
salsvado
32-bit Visual Basic および ADO でインプリメントされている OLE 自動ストアー
ド・プロシージャーは、新しく作成された表 STAFF2 内で給与の中央値を計算する
ことによって出力パラメーターを示し、さらにその表から給与を検索することによ
って結果セットを示します。
salclado
Visual Basic ストアード・プロシージャー salsvado を呼び出す Visual Basic クラ
イアント。
testcli
ストアード・プロシージャー tstsrv を呼び出す OLE オートメーション組み込み
SQL クライアント・アプリケーション (Visual C++ で実現)。
94
アプリケーションの構築および実行
表 19. オブジェクトのリンクと埋め込み (OLE) サンプル・プログラム (続き)
サンプル・
プログラム名
プログラムの説明
クライアントとストアード・プロシージャーの間での各種の受け渡しのデモを示す
OLE オートメーション・ストアード・プロシージャー (Visual C++ で実現)。
tstsrv
関連概念:
v 59 ページの『サンプル・ファイル』
関連資料:
v 95 ページの『オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数のサ
ンプル』
オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数のサンプル
表 20. オブジェクトのリンクと埋め込みデータベース (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 サーバー用)
関連概念:
v 59 ページの『サンプル・ファイル』
関連資料:
v 94 ページの『オブジェクトのリンクと埋め込み (OLE) のサンプル』
コマンド行プロセッサー (CLP) のサンプル
表 21. コマンド行プロセッサー (CLP) サンプル・スクリプト
サンプル・
ファイル名
ファイルの説明
const.db2
CHECK CONSTRAINT 文節がある表を作成します。
第 3 章 サンプル・プログラムおよび関連ファイル
95
表 21. コマンド行プロセッサー (CLP) サンプル・スクリプト (続き)
サンプル・
ファイル名
ファイルの説明
cte.db2
共通表式を示します。
flt.db2
再帰的照会を示します。
join.db2
表の外部結合を示します。
stock.db2
トリガーの使用例を示します。
testdata.db2
ランダムに生成されるテスト・データを表に入れるための RAND() および
TRANSLATE() などの DB2 組み込み関数を使用します。
関連概念:
v 59 ページの『サンプル・ファイル』
REXX のサンプル
表 22. REXX サンプル・プログラム・ファイル
サンプル・
ファイル名
ファイルの説明
blobfile.cmd
バイナリー・ラージ・オブジェクト (BLOB) の操作法の例を示します。
chgisl.cmd
CHANGE ISOLATION LEVEL API の例を示します。
client.cmd
SET CLIENT と QUERY CLIENT API の例を示します。
d_dbconf
GET DATABASE CONFIGURATION DEFAULTS の API の例を示します。
d_dbmcon
GET DATABASE MANAGER CONFIGURATION DEFAULTS の API の例を示しま
す。
db_udcs
CREATE DATABASE と DROP DATABASE API の例を示して、 DB2 for MVS/ESA
CCSID 500 (EBCDIC International) の照合シーケンスの照合動作をシミュレートしま
す。
dbauth
GET AUTHORIZATIONS API の例を示します。
dbcat
以下の API の例を示します。
CATALOG DATABASE
CLOSE DATABASE DIRECTORY SCAN
GET NEXT DATABASE DIRECTORY ENTRY
OPEN DATABASE DIRECTORY SCAN
UNCATALOG DATABASE
dbcmt
以下の API の例を示します。
CHANGE DATABASE COMMENT
GET ERROR MESSAGE
INSTALL SIGNAL HANDLER
96
アプリケーションの構築および実行
表 22. REXX サンプル・プログラム・ファイル (続き)
サンプル・
ファイル名
ファイルの説明
dbconf
以下の API の例を示します。
CREATE DATABASE
DROP DATABASE
GET DATABASE CONFIGURATION
RESET DATABASE CONFIGURATION
UPDATE DATABASE CONFIGURATION
dbinst
以下の API の例を示します。
ATTACH TO INSTANCE
DETACH FROM INSTANCE
GET INSTANCE
dbmconf
以下の API の例を示します。
GET DATABASE MANAGER CONFIGURATION
RESET DATABASE MANAGER CONFIGURATION
UPDATE DATABASE MANAGER CONFIGURATION
dbstart
START DATABASE MANAGER API の例を示します。
dbstat
以下の API の例を示します。
REORGANIZE TABLE
RUN STATISTICS
dbstop
以下の API の例を示します。
FORCE USERS
STOP DATABASE MANAGER
dcscat
以下の API の例を示します。
ADD DCS DIRECTORY ENTRY
CLOSE DCS DIRECTORY SCAN
GET DCS DIRECTORY ENTRY FOR DATABASE
GET DCS DIRECTORY ENTRIES
OPEN DCS DIRECTORY SCAN
UNCATALOG DCS DIRECTORY ENTRY
dynamic
動的 SQL を使用する CURSOR の使用方法の例を示します。
ebcdicdb
CREATE DATABASE と DROP DATABASE API の例を示して、 DB2 for MVS/ESA
CCSID 037 (EBCDIC 米国英語) の照合シーケンスの照合動作をシミュレートします。
impexp
EXPORT および IMPORT API の例を示します。
lobeval
データベース内での LOB の評価の据え置きの例を示します。
lobfile
LOB ファイル・ハンドルの使用例を示します
lobloc
LOB ロケーターの使用例を示します
lobval
LOB の使用例を示します
migrate
MIGRATE DATABASE API の例を示します。
第 3 章 サンプル・プログラムおよび関連ファイル
97
表 22. REXX サンプル・プログラム・ファイル (続き)
サンプル・
ファイル名
ファイルの説明
nodecat
以下の API の例を示します。
CATALOG NODE
CLOSE NODE DIRECTORY SCAN
GET NEXT NODE DIRECTORY ENTRY
OPEN NODE DIRECTORY SCAN
UNCATALOG NODE
quitab
QUIESCE TABLESPACES FOR TABLE の API の例を示します。
rechist
以下の API の例を示します。
CLOSE RECOVERY HISTORY FILE SCAN
GET NEXT RECOVERY HISTORY FILE ENTRY
OPEN RECOVER HISTORY FILE SCAN
PRUNE RECOVERY HISTORY FILE ENTRY
UPDATE RECOVERY HISTORY FILE ENTRY
restart
RESTART DATABASE API の例を示します。
sqlecsrx
照合シーケンスの例。
updat
動的 SQL を使用してデータベースを更新します。
関連概念:
v 59 ページの『サンプル・ファイル』
関連タスク:
v 206 ページの『AIX での REXX アプリケーションの作成』
v 346 ページの『Windows でのオブジェクト REXX アプリケーションの作成』
ログ管理ユーザー出口サンプル
注: ログ管理ユーザー出口プログラムのコンパイル方法の解説は、以下の表に一覧で示
されている各ソース・ファイルの冒頭に述べられています。
98
アプリケーションの構築および実行
表 23. ログ管理ユーザー出口サンプル・プログラム・ファイル
サンプル・
ファイル名
ファイルの説明
db2uext2.cadsm
これは、 Tivoli Storage Manager (TSM) API を使用してデータベース・ログ・ファイ
ルの保存と検索を行うサンプル・ユーザー出口です。このサンプルは、タイム・スタ
ンプと受け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のフ
ァイルに保存) を提供します。また、エラーのタイム・スタンプとエラー分離ストリン
グを含め、エラーになった呼び出しの証跡も問題判別用として示します。これらのオ
プションは使用不能であることがあります。このファイルは、db2uext2.c に名前変更
し、C プログラムとしてコンパイルしなければなりません。 UNIX および Windows
オペレーティング・システムで使用可能です。
注: AIX で TSM API クライアントを使用するアプリケーションは、そのアプリケー
ションがシングル・スレッドであるとしても、xlc や xlC ではなく xlc_r もしくは
xlC_r コンパイラーで作成されている必要があります。 これによりライブラリーがス
レッド・セーフであることが保証されます。非スレッド・セーフ・ライブラリーでコ
ンパイルされたアプリケーションをお持ちの場合は、フィックス・テスト IC21925E
を適用するかアプリケーション・ プロバイダーに連絡します。このフィックス・テス
トは、匿名 ftp サーバーの index.storsys.ibm.com で使用可能です。
db2uext2.cdisk
これは、出荷時の特定のプラットフォームに合わせた、システム・コピー・コマンド
を使用するサンプル・ユーザー出口です。このプログラムは、タイム・スタンプと受
け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイルに
保存) を提供します。また、問題判別のために、エラーのタイム・スタンプとエラー分
離ストリングを含む呼び出しのエラー証跡も提供します。これらのオプションは使用
不能であることがあります。このファイルは、db2uext2.c に名前変更し、C プログラ
ムとしてコンパイルしなければなりません。 UNIX および Windows オペレーティン
グ・システムで使用可能です。
db2uext2.ctape
これは、出荷時の特定の UNIX プラットフォームに合わせた、システム・テープ・コ
マンドを使用するサンプル・ユーザー出口です。プログラムは、データベース・ロ
グ・ファイルをアーカイブおよび検索します。システム・テープ・コマンドの制限す
べてが、このユーザー出口の制限になります。このサンプルは、タイム・スタンプと
受け取ったパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイル
に保存) を提供します。また、問題判別のために、エラーのタイム・スタンプとエラー
分離ストリングを含む呼び出しのエラー証跡も提供します。これらのオプションは使
用不能であることがあります。このファイルは、db2uext2.c に名前変更し、C プログ
ラムとしてコンパイルしなければなりません。 UNIX プラットフォームでのみ使用可
能です。
第 3 章 サンプル・プログラムおよび関連ファイル
99
表 23. ログ管理ユーザー出口サンプル・プログラム・ファイル (続き)
サンプル・
ファイル名
ファイルの説明
db2uext2.cxbsa
これは、データベース・ログ・ファイルを保存して検索するために、XBSA API を使
用するサンプル・ユーザー出口です。このサンプルは、タイム・スタンプと受け取っ
たパラメーターを含む呼び出しの監査証跡 (オプションごとに別々のファイルに保存)
を提供します。また、問題判別のために、エラーのタイム・スタンプとエラー分離ス
トリングを含む呼び出しのエラー証跡も提供します。これらのオプションは使用不能
であることがあります。このファイルは、db2uext2.c に名前変更し、C プログラムと
してコンパイルしなければなりません。 UNIX および Windows オペレーティング・
システムで使用可能です。
関連概念:
v 59 ページの『サンプル・ファイル』
関連資料:
v データ・リカバリーと高可用性 ガイドおよびリファレンス の『Tivoli Storage
Manager』
ビルド・ファイル、makefile、およびエラー・チェック・ユーティリティー
ビルド・ファイル
サンプル・プログラムの作成の例を示すのに使用するファイルは、 UNIX ではスクリプ
ト・ファイル、Windows ではバッチ・ファイルと呼ばれます。本書では、これらのファ
イルを総称してビルド・ファイルと呼ぶことにします。このファイルには、サポートさ
れているプラットフォーム・コンパイラー用に推奨されるコンパイルとリンクのコマン
ドが入っています。
DB2 では、ビルド・ファイルが、各言語のサンプル・プログラムと同じディレクトリー
の中で、構築されるプログラムを使用できるプラットフォームの各言語ごとに用意され
ています。以下の表に、さまざまなタイプのプログラムを作成するためのさまざまなタ
イプのビルド・ファイルを一覧で示してあります。他に明記されていない限り、これら
のビルド・ファイルは、サポートされているすべてのプラットフォーム上のサポートさ
れている言語用のファイルです。 Windows ではこのビルド・ファイルには .bat (バッ
チ) の拡張子が付いていますが、この表では付けられていません。 UNIX プラットフォ
ームの場合には、拡張子はありません。
表 24. DB2 ビルド・ファイル
100
ビルド・ファイル
構築されるプログラムのタイプ
bldapp
アプリケーション・プログラム
アプリケーションの構築および実行
表 24. DB2 ビルド・ファイル (続き)
ビルド・ファイル
構築されるプログラムのタイプ
bldrtn
ルーチン (ストアード・プロシージャーと UDF)
bldsqlj
Java SQLJ アプリケーション
bldsqljs
Java SQLJ ルーチン (ストアード・プロシージャーと UDF)
bldmc
C/C++ 複数接続アプリケーション
bldmt
UNIX C/C++ マルチスレッド・アプリケーション
bldcli
sqlproc サンプル・サブディレクトリー内の SQL プロシージャー
用の CLI クライアント・アプリケーション
bldevm
AIX および Windows のイベント・モニター・プログラム evm (C
言語のみ)
注: bldcli ファイルは、 samples/cli ディレクトリー内の bldapp ファイルと同じで
す。これに別の名前が付いているのは、組み込み C の bldapp ファイルは
samples/sqlproc ディレクトリーにも入っているからです。
以下の表は、プラットフォーム別およびプログラム言語別のビルド・ファイルと、それ
が置かれているディレクトリーを一覧で示しています。オンライン文書では、ビルド・
ファイルの名前が HTML のソース・ファイルにホット・リンクされています。該当す
るサンプル・ディレクトリー内のテキスト・ファイルにアクセスすることもできます。
第 3 章 サンプル・プログラムおよび関連ファイル
101
表 25. 言語別およびプラットフォーム別のビルド・ファイル
プラットフォーム —>
言語
AIX
HP-UX
Linux
Solaris
Windows
C
samples/c
bldapp
bldrtn
bldmt
bldmc
bldevm
bldapp
bldrtn
bldmt
bldmc
bldapp
bldrtn
bldmt
bldmc
bldapp
bldrtn
bldmt
bldmc
bldapp.bat
bldrtn.bat
bldmc.bat
bldevm.bat
C++
samples/cpp
bldapp
bldrtn
bldmt
bldmc
bldapp
bldrtn
bldmt
bldmc
bldapp
bldrtn
bldmt
bldmc
bldapp
bldrtn
bldmt
bldmc
bldapp.bat
bldrtn.bat
bldmc.bat
CLI
samples/cli
bldapp
bldrtn
bldmc
bldapp
bldrtn
bldmc
bldapp
bldrtn
bldmc
bldapp
bldrtn
bldmc
bldapp.bat
bldrtn.bat
bldmc.bat
SQLJ
samples/java/sqlj
bldsqlj
bldsqljs
bldsqlj
bldsqljs
bldsqlj
bldsqljs
bldsqlj
bldsqljs
bldsqlj.bat
bldsqljs.bat
IBM COBOL
samples/cobol
bldapp
bldrtn
n/a
n/a
n/a
bldapp.bat
bldrtn.bat
Micro Focus COBOL
samples/cobol_mf
bldapp
bldrtn
bldapp
bldrtn
n/a
bldapp
bldrtn
bldapp.bat
bldrtn.bat
本書でアプリケーションとルーチンの作成にビルド・ファイルが使われているのは、
DB2 がサポートされているコンパイラーに対しお勧めする、コンパイルおよびリンクの
オプションが、それによって明らかに実体として示されるからです。通常はこれらの他
にも使用できるコンパイルとリンクのオプションは多数あり、ユーザーはそれらを自由
に試すことができます。用意されているコンパイルとリンクのすべてのオプションにつ
いて知りたい場合は、ご使用のコンパイラーのマニュアルを参照してください。開発者
はそれらのビルド・ファイルを使用してサンプル・プログラムを構築するだけでなく、
自分のプログラムを構築することも可能です。サンプル・プログラムをユーザーが変更
できるテンプレートとして利用することにより、プログラム開発に役立てることができ
ます。
都合のよいことに、コンパイラーで許容される任意のファイル名でソース・ファイルを
構築できるようにビルド・ファイルは設計されています。これは、プログラム名がファ
イル中にハードコーディングされる makefile とは異なります。 makefile は、作成した
プログラムのコンパイルとリンクのためにビルド・ファイルにアクセスします。ビル
ド・ファイルは、UNIX の場合には $1 変数、 Windows オペレーティング・システム
の場合には %1 変数を使用して、プログラム名を内部的に置き換えます。このような変
数名中の数字は、順に大きくなって、他の引き数が必要となるごとに入れ換わります。
102
アプリケーションの構築および実行
たとえばスタンドアロン・アプリケーション、ルーチン (ストアード・プロシージャー
および UDF)、または複数接続あるいはマルチスレッド・プログラムなどのもっと特殊
なプログラム・タイプといった、個々の種類のプログラム作成に対して個々のビルド・
ファイルがそれぞれ適応しているため、迅速かつ簡単にビルド・ファイルを試してみる
ことができます。ビルド・ファイルの設計目的に沿った種類のプログラムがコンパイラ
ーでサポートされてさえいれば、どこででもすべてのタイプのビルド・ファイルを利用
することができます。
ビルド・ファイルが作成するオブジェクト・ファイルや実行可能ファイルは、ソース・
ファイルが修正されない場合でさえ、プログラムが構築されるたびに自動的に上書きさ
れます。それは、makefile を使用する場合には当てはまりません。つまり、開発者は以
前のオブジェクト・ファイルや実行可能ファイルを削除したり、またはソースを修正し
たりすることなく、既存のプログラムを再構築することができます。
ビルド・ファイルには、サンプル・データベース用のデフォルト設定が組み込まれてい
ます。ユーザーが別のデータベースにアクセスする場合は、別のパラメーターを指定し
てデフォルトの指定を変更するだけで済みます。 その別のデータベースを一貫して使用
する予定であれば、ビルド・ファイルの中にある sample を置き換えて、このデータベ
ースの名前をハードコーディングすることができます。
組み込み SQL プログラムに使用されるビルド・ファイルは別のファイル embprep を呼
び出しますが、これらの組み込み SQL プログラムが使用するプリコンパイルとバイン
ドのステップがその中に入っています。 これらのステップでは、組み込み SQL プログ
ラムをどこに作成するかによって、ユーザー ID とパスワード用のオプションのパラメ
ーターが必要になる場合があります。
SQLJ の場合を除いて、データベースが置かれているサーバー・インスタンス上で開発
者がプログラムを構築する場合は、ユーザー ID とパスワードはどちらにも共通である
ため、指定する必要はありません。 その一方で、開発者が別のインスタンスで作業する
場合、たとえばサーバー・データベースへリモート・アクセスするクライアント・マシ
ン上で作業する場合などは、ビルド・ファイルを実行するときにこれらのパラメーター
を指定しておくことが必要です。
SQLJ ビルド・ファイルの場合、ローカル・データベースへのアクセスであっても、
db2profc カスタマイザー用のユーザー ID とパスワードが必要です。これは、タイプ 4
ドライバーの規則に準拠しています。
最後の点として、ビルド・ファイルは開発者が自分の都合に合わせて修正することが可
能です。開発者は (前述のように) ビルド・ファイル中のデータベース名を変更できる
だけでなく、他のパラメーターをファイル内にハードコーディングしたり、コンパイル
とリンクのオプションを変更したり、デフォルトの DB2 インスタンス・パスを変更し
たりすることが簡単に行えます。ビルド・ファイルはその性質上、簡単で分かりやす
く、具体的であるため、自分の必要に応じてそれらのファイルに手を加えるのが容易で
す。
第 3 章 サンプル・プログラムおよび関連ファイル
103
関連概念:
v 104 ページの『makefile』
v 108 ページの『エラー・チェック・ユーティリティー』
v 59 ページの『サンプル・ファイル』
関連資料:
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
makefile
サポートされているコンパイラー用の各サンプル・ディレクトリーには、付属のサンプ
ル・プログラムの大半をディレクトリー内で構築するための makefile が入っています。
makefile はビルド・ファイルを呼び出して各プログラムをコンパイルおよびリンクしま
す。 makefile の構文とそのコマンドからの出力は、ビルド・ファイルのものとはいくつ
かの重要な点で異なっています。ただし、以下のようにビルド・ファイルの「フロント
エンド」として makefile を使用すれば、 makefile の簡略かつ有能なコマンドを活用す
ることができます。
make <program_name>
指定したプログラムのコンパイルとリンクを実行します。
make all
makefile に記述されているすべてのプログラムのコンパイルとリンクを実行し
ます。
make clean
makefile に記述されているすべてのプログラムの中間ファイル (オブジェク
ト・ファイルなど) を削除します。
make cleanall
makefile に記述されているすべてのプログラムの中間ファイルと実行可能ファ
イルをすべて削除します。
Java™ では通常は makefile を使用しないので、 Java Development Kit (JDK) には
make 実行可能ファイルは付属されていません。ただし DB2® には、 make コマンドの
104
アプリケーションの構築および実行
利便性を望むユーザーのために Java サンプル用のオプションとして makefile が装備さ
れています。 Java makefile を使用するには、通常は別の言語のコンパイラーで使用す
る make 実行可能ファイルを使用可能にしておく必要があります。
以下に、DB2 に用意されているメインのプログラミング言語 /API 用のプラットフォー
ム別の makefile と、それが置かれるサンプル・ディレクトリーを示してあります。オン
ライン文書ではこれらはホット・リンクされていて、これらが作成するサンプル・プロ
グラムはそこにリンクされています。サンプル・ディレクトリー内のこれらのファイル
にアクセスすることもできます。
表 26. プラットフォーム別のサンプル makefile
プラットフォーム —>
言語
AIX
HP-UX
Linux
Solaris
Windows
C
samples/c
makefile
makefile
makefile
makefile
makefile
C++
samples/cpp
makefile
makefile
makefile
makefile
makefile
CLI
samples/cli
makefile
makefile
makefile
makefile
makefile
JDBC
samples/java/jdbc
makefile
makefile
makefile
makefile
makefile
SQLJ
samples/java/sqlj
makefile
makefile
makefile
makefile
makefile
IBM COBOL
samples/cobol
makefile
n/a
n/a
n/a
makefile
Micro Focus COBOL
samples/cobol_mf
makefile
makefile
n/a
makefile
makefile
SQL プロシージャー
samples/sqlproc
makefile
makefile
makefile
makefile
makefile
ビルド・ファイルとは異なり、 makefile はその中に記述されているプログラムの既存の
中間ファイルと実行可能ファイルを上書きしません。 make all コマンドを使用した場
合、他のファイルに実行可能ファイルがすでにあると make all はそれらのファイルを
単に無視するだけなので、いくつかのファイルの実行可能ファイルを作成するのであれ
ば makefile による処理の方が高速です。ただし、既存のオブジェクト・ファイルと実行
可能ファイルが不要な場合には、 make clean および make cleanall コマンドを使用し
てそれらのファイルを除去しなければなりません。
makefile はプログラム開発に使用することができます。 makefile では、ファイルそのも
のの中でプログラム名をハードコーディングする必要があるため、ビルド・ファイルほ
第 3 章 サンプル・プログラムおよび関連ファイル
105
ど便利ではないと思われるかもしれませんが、 make コマンドの有用性と利便性が必要
な場合には検討対象とすることができます。
makefile は呼び出すプログラムを、変数によって表されるサーバー・クライアントとサ
ーバー・プログラムのいくつかのカテゴリーに分けて編成します (詳細は、makefile の
項を参照してください)。プログラムを makefile に追加する場合、必ず正しい変数によ
ってアクセスされるように追加してください。たとえば、任意のクライアント (サーバ
ーに対してローカルまたはリモートのクライアント) で実行できるプログラムは、
client_run 変数のもとに置かれます。
また、作成した実行可能ファイルを make cleanall コマンドで必ず削除できるように、
cleanall 変数の下にプログラム名を指定する必要もあります。また、組み込み SQL プ
ログラムの場合は、プリコンパイルの結果として作成された非組み込み SQL ファイル
を clean 変数の下に指定して、 make clean コマンド (およびそれを呼び出す make
cleanall コマンド) がその非組み込み SQL ファイルを削除するようにします。
さらに、正しい構文の新規のファイルを指定して、プログラムをコンパイルおよびリン
クするのに適したビルド・ファイルを呼び出す必要もあります。
サンプルの makefile のどれに新規ファイルを追加する必要があるかを判断するために、
以下に AIX® C makefile 内での組み込み SQL プログラム dbauth が置かれているすべ
ての場所を示してあります。
#****************************************************************************
#
2f - make client_run
#****************************************************************************
client_run : ¥
cli_info clisnap ¥
dbauth dbconn dbcreate dbinfo dbmcon ¥
. . .
#****************************************************************************
#
2g - make clean
#****************************************************************************
clean :
$(ERASE) *.o
$(ERASE) *.DEL *.TXT *.MSG
$(ERASE) dbauth.c dbcfg.c dbconn.c dbmcon.c dbmcon1.c dbmcon2.c
. . .
#****************************************************************************
#
2h - make cleanall
#****************************************************************************
cleanall : ¥
clean
$(ERASE) *.bnd
$(ERASE) cli_info clisnap
$(ERASE) dbauth dbcfg dbconn dbcreate dbinfo dbmcon dbmcon1 dbmcon2
. . .
106
アプリケーションの構築および実行
#****************************************************************************
#
3b - regular samples, embedded SQL
#****************************************************************************
dbauth :
$(BLDAPP) dbauth $(ALIAS) $(UID) $(PWD)
上記の最終行中のプログラム名の後に続く ALIAS、 UID、および PWD の 3 つの変数
は、それぞれデータベースの別名、ユーザー ID、およびデータベースのパスワードを表
します。これらの変数はビルド・ファイル (この場合は、 BLDAPP 変数によって表され
る bldapp ビルド・ファイル) に渡されます。プログラムが組み込み SQL を使用する
場合、ALIAS、 UID、および PWD は、ビルド・ファイルが呼び出す embprep プリコンパ
イルおよびバインド・スクリプトに次々に渡されます。 makefile を使用する前に、これ
らの変数の値を変更しなければならない場合があります。デフォルトでは、ALIAS は
sample データベースに設定され、 UID と PWD には値は設定されていません。
UID と PWD はオプショナル・パラメーターですが、ユーザーがすでにサーバー・データ
ベースと同じインスタンスで作業している場合には設定する必要はありません。しかし
そうではない場合に、たとえばユーザーがクライアント・マシンからサーバーにリモー
ト接続していれば、makefile を変更し、 UID 変数と PWD 変数に正しい値を設定してデ
ータベースにアクセスできるようにする必要があります。
複数接続のプログラムの場合、C、CLI、および C++ makefile には、 ALIAS2 というも
う 1 つ別のデータベース別名があります。これはデフォルトでは、 sample2 データベ
ースに設定されています。それに対応するユーザー ID とパスワードの変数 UID2 と
PWD2 には値は設定されていません。 UID と PWD 変数の場合と同様に、 2 番目のデー
タベースにローカル・アクセスする場合はこれらの変数には値は必要ありません。
makefile はまた、 make clean コマンドと make cleanall コマンドの呼び出し時にファ
イルを削除する ERASE 変数も定義します。これは UNIX では rm -f に、Windows® で
は del に設定されます。
関連概念:
v 100 ページの『ビルド・ファイル』
v 108 ページの『エラー・チェック・ユーティリティー』
v 59 ページの『サンプル・ファイル』
関連資料:
v 10 ページの『アプリケーションの作成と実行用として AIX でサポートされるソフト
ウェア』
v 11 ページの『アプリケーションの作成と実行用として HP-UX でサポートされるソ
フトウェア』
v 13 ページの『アプリケーションの作成と実行用として Linux でサポートされるソフ
トウェア』
第 3 章 サンプル・プログラムおよび関連ファイル
107
v 15 ページの『アプリケーションの作成と実行用として Solaris でサポートされるソフ
トウェア』
v 16 ページの『アプリケーションの作成と実行用として Windows でサポートされるソ
フトウェア』
エラー・チェック・ユーティリティー
DB2® AD クライアントは、いくつかのユーティリティー・ファイルを提供します。 こ
れらのファイルには、エラー・チェックとエラー情報の印刷出力を行う関数がありま
す。ユーティリティー・ファイルは、サンプル・ディレクトリーの中に、言語ごとに別
々のバージョンが用意されています。このユーティリティーはアプリケーション・プロ
グラムで使用するときに有用なエラー情報を提供し、 DB2 プログラムのデバッグの労
力を大幅に軽減します。 エラー・チェック・ユーティリティーのほとんどは、プログラ
ム実行中に検出した問題に直接関連した SQLSTATE および SQLCA 情報を取得するの
に、 DB2 API GET SQLSTATE MESSAGE (sqlogstt) および GETERROR MESSAGE (sqlaintp) を
使います。 DB2 CLI ユーティリティーである utilcli は、これらの DB2 API を使用
する代わりにそれらと同じ働きをする DB2 CLI ステートメントを使用します。どのエ
ラー・チェック・ユーティリティーを使用した場合でも詳細なエラー・メッセージが印
刷出力されるため、開発者は短時間で問題を把握することができます。
ルーチンなどの一部の DB2 プログラム (ストアード・プロシージャーやユーザー定義
関数など) では、これらのユーティリティーを使用する必要はありません。例外が発生
すると SQLException オブジェクトがスローされるので、このユーティリティーは
Java™ にも不要です。
以下に示すのは、DB2 がサポートしているコンパイラーが使用する、プログラム言語別
のエラー・チェック・ユーティリティー・ファイルです。
checkerr.cbl
IBM COBOL プログラム用
checkerr.cbl
Micro Focus COBOL プログラム用
utilcli.c
CLI プログラム用
utilcli.h
utilcli.c 用のヘッダー・ファイル
utilapi.c
C 組み込み SQL を含まないプログラム用
utilapi.h
utilapi.c 用のヘッダー・ファイル
108
アプリケーションの構築および実行
utilemb.sqc
C 組み込み SQL プログラム用
utilemb.h
utilemb.sqc 用のヘッダー・ファイル
utilapi.C
C++ 組み込み SQL を含まないプログラム用
utilapi.h
utilapi.C 用のヘッダー・ファイル
utilemb.sqC
C++ 組み込み SQL プログラム用
utilemb.h
utilemb.sqC 用のヘッダー・ファイル
ユーティリティー関数を使用するには、まず最初にユーティリティー・ファイルをコン
パイルした後、ターゲット・プログラムの実行可能ファイルの作成中にそのオブジェク
ト・ファイルをリンクしなければなりません。 samples ディレクトリー中の makefile
とビルド・ファイルは両方とも、エラー・チェック・ユーティリティーを必要とするプ
ログラムで使用することによってこの処理を行います。
以下の例は、エラー・チェック・ユーティリティーを DB2 プログラム中でどのように
使用するかを示しています。 utilemb.h ヘッダー・ファイルは、関数 SqlInfoPrint()
および TransRollback() の代わりに使用される EMB_SQL_CHECK マクロを定義します。
#define EMB_SQL_CHECK( MSG_STR )
¥
if( SqlInfoPrint( MSG_STR, &sqlca, __LINE__, __FILE__) != 0 )
TransRollback( );
¥
SqlInfoPrint() は SQLCODE フラグをチェックします。この関数は、このフラグが示
している特定のエラーに関連した、入手可能なすべての情報を印刷します。 また、この
関数は、ソース・コード内のどこでエラーが発生したかを示します。 TransRollback()
により、エラーが発生した場所にユーティリティー・ファイルがトランザクションを安
全にロールバックできるようになります。データベースに接続し、ロールバックを実行
するための組み込み SQL ステートメントが必要です。以下に、 C プログラム dbuse
がマクロを使用して、 SqlInfoPrint() 関数の MSG_STR パラメーターに値 "Delete
with host variables -- Execute" を提供することによって、ユーティリティー関数を
呼び出す方法の例を示します。
EXEC SQL DELETE FROM org
WHERE deptnumb = :hostVar1 AND
division = :hostVar2;
EMB_SQL_CHECK("Delete with host variables -- Execute");
第 3 章 サンプル・プログラムおよび関連ファイル
109
EMB_SQL_CHECK マクロは、 DELETE ステートメントが失敗すると、トランザクションが
安全にロールバックし、該当するエラー・メッセージが確実に印刷されるようにしま
す。
開発者の方々には DB2 プログラムの作成時に、これらのエラー・チェック・ユーティ
リティーを使用および拡張することをお勧めします。
関連概念:
v 100 ページの『ビルド・ファイル』
v 104 ページの『makefile』
v 59 ページの『サンプル・ファイル』
110
アプリケーションの構築および実行
第 2 部 プラットフォーム非依存アプリケーションの構築
および実行
© Copyright IBM Corp. 1993 - 2002
111
112
アプリケーションの構築および実行
第 4 章 Java
Java サンプル・プログラム . . . . . .
Java アプレットに関する考慮事項 . . . .
JDBC . . . . . . . . . . . . . .
JDBC アプレットの作成 . . . . . .
JDBC アプリケーションの構築 . . . .
JDBC ルーチンの作成 . . . . . . .
SQLJ . . . . . . . . . . . . . .
SQLJ プログラムの作成. . . . . . .
SQLJ アプレットの作成. . . . . . .
SQLJ アプリケーションの作成 . . . .
SQLJ アプリケーションおよびアプレット
の UNIX 構築スクリプト . . . . . .
UNIX の SQLJ アプリケーション・オプ
ション . . . . . . . . . . . .
113
115
117
117
119
120
122
122
124
126
127
SQLJ アプリケーションおよびアプレット
の Windows バッチ・ファイル . . . .
Windows の SQLJ アプリケーション・オ
プション . . . . . . . . . . . .
SQLJ ルーチンの作成 . . . . . . .
SQLJ ルーチンの UNIX 構築スクリプト
UNIX の SQLJ ストアード・プロシージ
ャー・オプション . . . . . . . . .
SQLJ ルーチンの Windows バッチ・ファ
イル . . . . . . . . . . . . .
Windows の SQLJ ストアード・プロシー
ジャー・オプション . . . . . . . .
129
131
132
134
135
136
138
128
この章は、Java アプレットおよびアプリケーションを構築するための詳細な情報を提供
します。 DB2 Java アプリケーション開発の最新の更新事項については、次の Web ペ
ージを参照してください。
http://www.ibm.com/software/data/db2/java
Java サンプル・プログラム
動的 SQL と、静的 SQL を使用する SQLJ プログラムのみを使用する JDBC プログラ
ムの構築と実行を例示するためのサンプル・プログラムが DB2® には用意されていま
す。 JDBC サンプルと SQLJ サンプルのディレクトリーは、 java サンプル・ディレ
クトリーの下にそれぞれ別々に置かれています。以下に、UNIX® と Windows® オペレ
ーティング・システムでの Java サンプル・ディレクトリーの構造を示してあります。
v UNIX の場合:
sqllib/samples/java
すべてのサブディレクトリー内の Java サンプル・プログラムの README
ファイルが入っています。
sqllib/samples/java/jdbc
JDBC サンプル・プログラム・ファイルが入っています。
sqllib/samples/java/sqlj
SQLJ サンプル・プログラムが入っています。
sqllib/samples/java/Websphere
WebSphere サンプル・プログラムが入っています。
© Copyright IBM Corp. 1993 - 2002
113
sqllib/samples/java/plugin
DB2 コントロール・センターのプラグイン例のファイルが入っています。
sqllib/samples/java/plugin/doc
プラグイン・インターフェース用の javadoc ファイルが入っています。
v Windows の場合;
sqllib¥samples¥java
すべてのサブディレクトリー内の Java サンプル・プログラムの README
ファイルが入っています。
sqllib¥samples¥java¥jdbc
JDBC サンプル・プログラムが入っています。
sqllib¥samples¥java¥sqlj
SQLJ サンプル・プログラムが入っています。
sqllib¥samples¥java¥Websphere
WebSphere サンプル・プログラムが入っています。
sqllib¥samples¥java¥plugin
DB2 コントロール・センターのプラグイン例のファイルが入っています。
sqllib¥samples¥java¥plugin¥doc
プラグイン・インターフェース用の javadoc ファイルが入っています。
SQLJ サンプル・ディレクトリーには、 Java プログラム用の組み込み SQL を作成する
ためのビルド・ファイル (UNIX ではスクリプト、 Windows ではバッチ・ファイル) が
入っています。 JDBC ディレクトリーにはビルド・ファイルは入っていません。 javac
を使用してコマンド行で JDBC プログラムを作成するのは非常に簡単なので、ビルド・
ファイルは必要ないからです。
JDBC および SQLJ のどちらのサンプル・ディレクトリーにも、オプションの makefile
が入っています。 makefile は Java では広く使用されていません。したがって Java
Development Kits (JDK) には make 実行可能ファイルは付属していません。ユーザーに
とって便利なように、DB2 には Java サンプル makefile が用意されています。 Java の
各 makefile は、付属のすべてのサンプル・プログラムを JDBC または SQLJ サンプ
ル・ディレクトリー内に作成します。別の言語コンパイラーで使用するための gnumake
などの make プログラムを使用することができます。
SQLJ アプレットとアプリケーションを作成するために、 UNIX では bldsqlj、
Windows では bldsqlj.bat、また、SQLJ ルーチン (ストアード・プロシージャーとユ
ーザー定義関数) を作成するために、 UNIX では bldsqljs、Windows では
bldsqljs.bat という 2 つの SQLJ ビルド・ファイルが用意されています。
関連タスク:
v 22 ページの『Java 環境のセットアップ』
114
アプリケーションの構築および実行
v 117 ページの『JDBC アプレットの作成』
v 119 ページの『JDBC アプリケーションの構築』
v 120 ページの『JDBC ルーチンの作成』
v 124 ページの『SQLJ アプレットの作成』
v 126 ページの『SQLJ アプリケーションの作成』
v 132 ページの『SQLJ ルーチンの作成』
v 122 ページの『SQLJ プログラムの作成』
関連資料:
v 78 ページの『JDBC のサンプル』
v 81 ページの『SQLJ のサンプル』
v 83 ページの『Java WebSphere のサンプル』
v 83 ページの『Java プラグインのサンプル』
Java アプレットに関する考慮事項
DB2® には、Java™ アプレットを使用してアクセスすることができます。これを使用す
る際は、以下の点に注意してください。
1. すでに使用すべきでなくなったタイプ 3 ドライバー ('net'ドライバーとも呼びます)
を使用している場合、 Java アプレットで使用される db2java.zip ファイルが、
JDBC アプレット・サーバーと同じフィックスパック・レベルにあることが不可欠で
す。通常の状況では、db2java.zip は、JDBC アプレット・サーバーが実行されてい
る Web サーバーからロードされます。それによってレベルは必ず同一になります。
ただし、構成が別の場所から db2java.zip をロードする Java アプレットを持って
いる場合は、不一致が起きることがあります。 2 つのファイル間でのフィックスパ
ック・レベルの一致は、接続時に厳しく強制されます。不一致が見つかると、接続は
リジェクトされ、クライアントは次の例外の 1 つを受け取ります。
v db2java.zip が DB2 バージョン 7 フィックスパック 2 以上の場合:
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver]
CLI0621E Unsupported JDBC server configuration.
v db2java.zip がフィックスパック 2 以前の場合:
COM.ibm.db2.jdbc.DB2Exception: [IBM][JDBC Driver]
CLI0601E Invalid statement handle or statement is closed.
SQLSTATE=S1000
不一致が起きた場合、JDBC アプレット・サーバーは次のメッセージの 1 つを
jdbcerr.log ファイルに記録します。
第 4 章 Java
115
v JDBC アプレット・サーバーが DB2 バージョン 7 フィックスパック 2 以降の場
合:
jdbcFSQLConnect: JDBC Applet Server and client (db2java.zip)
versions do not match. Unable to proceed with connection., einfo= -111
v JDBC アプレット・サーバーがフィックスパック 2 以前の場合:
jdbcServiceConnection(): Invalid Request Received., einfo= 0
JDBC 環境をテストするには、 sqllib¥samples¥java (Windows の場合) または
sqllib/samples/java (UNIX の場合) にあるサンプル・ファイル
db2JDBCVersion.java を使用します。 db2JDBCVersion プログラムは、現在使用され
ている DB2 JDBC ドライバーのバージョンを調べ、それに対して JDBC 環境が正
しく設定されているかどうかをチェックします。
タイプ 4 ドライバーにアプレットを移行することを強くお勧めします。
2. いくつかの Java クラスから成る大型の JDBC または SQLJ アプレットの場合は、
そのクラスすべてを単一の JAR ファイルにパッケージ化するよう選択できます。ま
た、SQLJ アプレットでは、そのクラスに加えて、順番に並べられたプロファイルを
パッケージしなければなりません。これを選択する場合、JAR ファイルを ″applet″
タグの archive パラメーターに追加します。詳細については、JDK バージョン 1.3
の資料を参照してください。
SQLJ アプレットの場合、ブラウザーによっては、アプレットに関連付けられたリソ
ース・ファイルからのシリアライズド・オブジェクトのロードをまだサポートしてい
ません。たとえば、そのようなブラウザーで付属のサンプル・アプレット Applt を
ロードしようとすると、次のようなエラー・メッセージが出されます。
java.lang.ClassNotFoundException: Applt_SJProfile0
これを回避する方法としては、逐次化プロファイルを変換して、 Java クラス形式で
格納したプロファイルにするユーティリティーを使用することができます。 このユ
ーティリティーは、sqlj.runtime.profile.util.SerProfileToClass という名前の
Java クラスです。これは逐次化プロファイルのリソース・ファイルを入力として取
り込み、そのプロファイルを含んだ Java クラスを出力として生成します。プロファ
イルは以下のいずれかのコマンドを使用して変換できます。
profconv Applt_SJProfile0.ser
または
java sqlj.runtime.profile.util.SerProfileToClass Applt_SJProfile0.ser
このコマンドの結果、クラス Applt_SJProfile0.class が作成されます。アプレット
が使用している .ser 形式のすべてのプロファイルを .class 形式のプロファイルに
置き換えれば、問題はなくなるはずです。
116
アプリケーションの構築および実行
3. ファイル db2java.zip (SQLJ アプレットの場合は、ファイル runtime.zip) を使用
している Web サイトからロードすることのできるいくつかのアプレットによって共
用されるディレクトリーに置くことができます。これらのファイルは、 Windows®
オペレーティング・システムの場合には sqllib¥java ディレクトリーに、また
UNIX の場合には sqllib/java ディレクトリーにあります。この場合、codebase パ
ラメーターを、そのディレクトリーを識別する HTML ファイルの ″applet″ タグに
追加する必要があることがあります。詳細については、JDK バージョン 1.3 の資料
を参照してください。
4. DB2 バージョン 5.2 以降、 JDBC アプレット・サーバー (listener) である db2jd
の機能を強化するために信号処理機能が追加されています。その結果、db2jd は
Ctrl-C で強制終了することができません。したがって、「kill -9」(Unix の場合)
または「タスク マネージャ」(Windows の場合) を使用してプロセスを強制終了する
のが、リスナーを終了させる唯一の方法です。
5. Web サーバー、特に Domino™ Go Webserver での DB2 Java アプレットの実行に
ついての詳細は、次のサイトを参照してください。
http://www.ibm.com/software/data/db2/db2lotus/gojava.htm
関連タスク:
v 22 ページの『Java 環境のセットアップ』
v 117 ページの『JDBC アプレットの作成』
v 124 ページの『SQLJ アプレットの作成』
JDBC
JDBC アプレットの作成
Applt は、 DB2 データベースにアクセスする動的 SQL Java アプレットの例を示しま
す。
手順:
すでに使用すべきでなくなったタイプ 3 ドライバー (net ドライバーとも呼びます) ま
たはタイプ 4 ドライバーのどちらを使用してもかまいません。この 2 種類のドライバ
ーでの接続については、この後の項に説明されています。アプレットをタイプ 4 ドライ
バーに移行することを強くお勧めします。
JDBC アプレット Applt を作成して、コマンド行にコマンドを入力して実行する場合、
DB2 マシン (サーバーまたはクライアント) に Web サーバーがインストール済みで実
行中であることを確認するか、または次のコマンドをクライアント・マシンの作業ディ
レクトリーで入力して、 Java Development Kit に付属のアプレット・ビューアーを使用
します。
appletviewer Applt.html
第 4 章 Java
117
タイプ 3 (net) ドライバーとの接続
タイプ 3 ドライバーに接続するには、まず Applt.html ファイルを、ファイル内の指示
に従って修正します。次に、Applt.html に指定されている TCP/IP ポートで JDBC ア
プレット・サーバーを開始します。たとえば Applt.html では、 param name=port
value=’6789’ と指定してから以下のように入力できます。
db2jstrt 6789
接続ストリング内の JDBC ポート番号は、推奨デフォルトの ″6789″ にしてください。
これは、番号が他のポート番号と競合しないと断定できる場合にだけ変更してくださ
い。データベースのポート番号 ″50000″ は使用しないでください。
タイプ 4 ドライバーとの接続
タイプ 4 ドライバーに接続するには、まず Applt.html ファイルを、ファイル内の指示
に従って修正します。ただし、指定する TCP/IP ポート番号をデータベース・ポート番
号の 50000 にしなければなりません。
アプレットの作成
1. 以下に示すコマンドで Applt.java をコンパイルし、ファイル Applt.class を生成
します。
javac Applt.java
2. Web ブラウザーが、作業ディレクトリーにアクセス可能であることを確認してくだ
さい。 アクセス可能ではない場合は、 Applt.class と Applt.html をアクセス可能
なディレクトリーにコピーします。
3. タイプ 3 ドライバーを使用する場合、Windows では sqllib¥java¥db2java.zip
を、 UNIX では sqllib/java/db2java.zip を、 Applt.class および Applt.html
と同じディレクトリーにコピーします。
タイプ 4 ドライバーを使用する場合、Windows では sqllib¥java¥db2jcc.jar を、
UNIX では sqllib/java/db2jcc.jar を、 Applt.class および Applt.html と同じ
ディレクトリーにコピーします。
4. クライアント・マシンで、 Web ブラウザー (Java 1.3 をサポートしていなければな
りません) を開始し、 Applt.html をロードします。
このプログラムは、Java の makefile を使用して構築することも可能です。
関連概念:
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 119 ページの『JDBC アプリケーションの構築』
v 120 ページの『JDBC ルーチンの作成』
118
アプリケーションの構築および実行
v 124 ページの『SQLJ アプレットの作成』
関連資料:
v 78 ページの『JDBC のサンプル』
関連サンプル:
v 『Applt.java -- A Java applet that use JDBC applet driver to access a database
(JDBC)』
JDBC アプリケーションの構築
DbInfo は、 DB2 データベースにアクセスする動的 SQL Java アプリケーションの例を
示します。
手順:
このアプリケーションを構築し実行するには、コマンド行で次のようにコマンドを入力
します。
1. 以下に示すコマンドで DbInfo.java をコンパイルし、ファイル DbInfo.class を生
成します。
javac DbInfo.java
2. 次のコマンドで、アプリケーションに対して Java インタープリターを実行します。
java DbInfo
このプログラムは、Java の makefile を使用して構築することも可能です。
注: UNIX 上で 64 ビットの DB2 インスタンス内で Java アプリケーションを実行する
場合に、 JDK が 32 ビットであると、アプリケーションを実行するにはまず DB2
ライブラリー・パスを変更する必要があります。 AIX の場合はたとえば次のよう
にします。
v bash または Korn シェルを使用する場合:
export LIBPATH=$HOME/sqllib/lib32
v C シェルを使用する場合:
setenv LIBPATH $HOME/sqllib/lib32
関連タスク:
v 117 ページの『JDBC アプレットの作成』
v 120 ページの『JDBC ルーチンの作成』
v 126 ページの『SQLJ アプリケーションの作成』
関連資料:
v 78 ページの『JDBC のサンプル』
第 4 章 Java
119
関連サンプル:
v 『DbInfo.java -- How to get/set info in a database (JDBC)』
JDBC ルーチンの作成
DB2 では、JDBC ルーチン (ストアード・プロシージャーおよびユーザー定義関数) の
例を示すサンプル・プログラムが、 UNIX の場合は samples/java/jdbc ディレクトリ
ーに、 Windows の場合は samples¥java¥jdbc ディレクトリーに用意されています。ル
ーチンは、サーバー上でコンパイルして保管します。そして、クライアント・アプリケ
ーションによって呼び出されるとサーバー・データベースにアクセスし、そのクライア
ント・アプリケーションに情報を戻します。
手順:
以下の例は、ルーチン構成を作成する方法を示しています。
v ストアード・プロシージャー
v SQL ステートメントを使用しないユーザー定義関数
v SQL ステートメントを使用するユーザー定義関数
ストアード・プロシージャー
Spserver は、動的 SQL PARAMETER STYLE JAVA ストアード・プロシージャーの
例を示します。
コマンド行から、このプログラムを作成してサーバー上で実行するには、次のようにし
ます。
1. 以下に示すコマンドで Spserver.java をコンパイルし、ファイル Spserver.class
を生成します。
javac Spserver.java
2. Spserver.class を、 Windows オペレーティング・システムの場合には
sqllib¥function ディレクトリーへ、また UNIX の場合には sqllib/function ディ
レクトリーへコピーします。
3. 次に、サーバーで spcat スクリプトを実行してルーチンをカタログします。次のよ
うに入力します。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば Spdrop.db2 を呼び出してルーチンをアンカタログし、次に
Spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、Spdrop.db2 スクリプトと Spcreate.db2 スクリプト
は、個別に実行することもできます。
120
アプリケーションの構築および実行
4. 次に、データベースを一度停止してから再始動し、新しい共用ライブラリーが認識さ
れるようにします。必要であれば、クラス・ファイルのファイル・モードを read に
設定して、分離ユーザーから読み取れるようにします。
5. Spclient クライアント・アプリケーションをコンパイルして実行し、ストアード・
プロシージャー・クラスにアクセスします。
SQL ステートメントを使用しないユーザー定義関数
UDFsrv は、SQL ステートメントの入っていないユーザー定義関数ライブラリーです。
DB2 には JDBC クライアント・アプリケーションである UDFcli と、 UDFsrv ライブ
ラリーにアクセスできる SQLJ クライアント・アプリケーションである UDFcli の両方
が用意されています。
コマンド行から、UDF プログラムを作成してサーバー上で実行するには、次のようにし
ます。
1. 以下に示すコマンドで UDFsrv.java をコンパイルし、ファイル UDFsrv.class を生
成します。
javac UDFsrv.java
2. UDFsrv.class を、 Windows オペレーティング・システムの場合には
sqllib¥function ディレクトリーへ、また UNIX の場合には sqllib/function ディ
レクトリーへコピーします。
3. UDFsrv ライブラリーへは、 JDBC または SQLJ のいずれのクライアント・アプリ
ケーションでもアクセスできます。どちらのバージョンのクライアント・プログラム
にも、 UDFsrv の中にある UDF をデータベースに登録するのに使用する CREATE
FUNCTION SQL ステートメントと、登録後の UDF を利用するための SQL ステート
メントが組み込まれています。
SQL ステートメントを使用するユーザー定義関数
UDFsqlsv は、SQL ステートメントの入っているユーザー定義関数ライブラリーです。
DB2 には、 UDFsqlsv ライブラリーにアクセスするための JDBC クライアント・アプ
リケーションである UDFsqlcl が用意されています。
コマンド行から、UDF プログラムを作成してサーバー上で実行するには、次のようにし
ます。
1. 以下に示すコマンドで UDFsqlsv.java をコンパイルし、ファイル UDFsqlsv.class
を生成します。
javac UDFsqlsv.java
2. UDFsqlsv.class を、 Windows オペレーティング・システムの場合には
sqllib¥function ディレクトリーへ、また UNIX の場合には sqllib/function ディ
レクトリーへコピーします。
第 4 章 Java
121
3. UDFsqlsv ライブラリーにアクセスするには、 UDFsqlsv の中にある UDF をデータ
ベースに登録するのに使用する CREATE FUNCTION SQL ステートメントの入ったクラ
イアント・プログラム UDFsqlcl を使用します。このクライアント・プログラムには
さらに、登録が済んだ UDF を利用するための SQL ステートメントも入っていま
す。
上記のプログラムは、Java の makefile を使用して作成することもできます。
関連タスク:
v 117 ページの『JDBC アプレットの作成』
v 119 ページの『JDBC アプリケーションの構築』
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 78 ページの『JDBC のサンプル』
関連サンプル:
v 『spcat -- To catalog SQLj stored procedures on UNIX』
v 『SpClient.java -- Call a variety of types of stored procedures from SpServer.java
(JDBC)』
v 『SpCreate.db2 -- How to catalog the stored procedures contained in SpServer.java 』
v 『SpDrop.db2 -- How to uncatalog the stored procedures contained in SpServer.java』
v 『SpServer.java -- Provide a variety of types of stored procedures to be called from
(JDBC)』
v 『UDFcli.java -- Call the UDFs in UDFsrv.java (JDBC)』
v 『UDFCreate.db2 -- How to catalog the Java UDFs contained in UDFsrv.java 』
v 『UDFDrop.db2 -- How to uncatalog the Java UDFs contained in UDFsrv.java 』
v 『UDFsCreate.db2 -- How to catalog the UDFs contained in UDFsqlsv.java 』
v 『UDFsDrop.db2 -- How to uncatalog the UDFs contained in UDFsqlsv.java 』
v 『UDFsqlcl.java -- Call the UDFs in UDFsqlsv.java (JDBC)』
v 『UDFsqlsv.java -- Provide UDFs to be called by UDFsqlcl.java (JDBC)』
v 『UDFsrv.java -- Provide UDFs to be called by UDFcli.java (JDBC)』
SQLJ
SQLJ プログラムの作成
DB2 には、SQLJ サンプル・プログラムを作成するためのビルド・ファイルが備えられ
ています。アプレットとアプリケーションの場合、 UNIX 上では bldsqlj スクリプト
を使用し、 Windows 上では bldsqlj.bat バッチ・ファイルを使用することができま
122
アプリケーションの構築および実行
す。ルーチン (ストアード・プロシージャーとユーザー定義関数) の場合、 UNIX 上で
は bldsqljs スクリプトを使用し、 Windows 上では bldsqljs.bat バッチ・ファイル
を使用することができます。
DB2 に付属している SQLJ 変換プログラムは、変換後の .java ファイルを .class フ
ァイルにコンパイルします。そのため、ビルド・ファイルは java コンパイラーを使用
しません。
注: 旧バージョンの DB2 では db2profc コマンドは -url=jdbc:db2:dbname のフォー
ムの URL を使用していました。ただし dbname は、ローカル・カタログされたデ
ータベース別名です。新しいフォーマットは、
-url=jdbc:db2://hostname:portnumber/dbname という DB2 のタイプ 4 JDBC ド
ライバーの規則に準じています。なお hostname は DB2 サーバーの名前、
portnumber は DB2 サーバーの TCP/IP Listener のポート番号、そして dbname は
DB2 サーバー上でカタログされたデータベースの別名です。つまり、DB2 サーバ
ーは、TCP/IP 接続用に構成する必要があるということです。
手順:
IBM Java Development Kit (UNIX および Windows オペレーティング・システム版) で
SQLJ プログラムを作成して実行するには、以下に示されている使用オペレーティン
グ・システム別のコマンドを使用して、 JDK のジャストインタイム・コンパイラーを
オフにしなければなりません。
UNIX:
bash または Korn シェルの場合
export JAVA_COMPILER=NONE
C シェルの場合
setenv JAVA_COMPILER NONE
Windows:
SET JAVA_COMPILER=NONE
別のタイプの DB2 SQLJ プログラムを作成する場合は、以下を参照してください。
v
SQLJ アプレットの作成
v
SQLJ アプリケーションの作成
v
SQLJ ルーチンの作成
関連概念:
v 113 ページの『Java サンプル・プログラム』
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 124 ページの『SQLJ アプレットの作成』
第 4 章 Java
123
v 126 ページの『SQLJ アプリケーションの作成』
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 81 ページの『SQLJ のサンプル』
SQLJ アプレットの作成
以下のステップでは、 DB2 データベースにアクセスする SQLJ アプレットの例を示す
Applt サンプルの作成方法が示されています。このステップでは、ビルド・ファイル
bldsqlj (UNIX)、または bldsqlj.bat (Windows) が使用されていますが、これには、
SQLJ アプレットまたはアプリケーションを作成するためのコマンドが入っています。
ビルド・ファイルは、UNIX では $1、$2、$3、$4、$5、および $6、 Windows では
%1、%2、%3、%4、%5、および %6 の、最大 6 個のパラメーターをとります。最初の
パラメーターは、プログラムの名前を指定します。 2 番目のパラメーターはデータベー
ス・インスタンスのユーザー ID を、 3 番目のパラメーターはパスワードを指定しま
す。 4 番目のパラメーターは、サーバー名を指定します。 5 番目のパラメーターはポ
ート番号を指定します。そして 6 番目のパラメーターはデータベース名を指定します。
最初のパラメーター (プログラム名) 以外のどのパラメーターでも、デフォルト値を使
用してもかまいません。デフォルトのパラメーター値の使用に関する詳細は、ビルド・
ファイルを参照してください。
手順:
すでに使用すべきでなくなったタイプ 3 ドライバー (net ドライバーとも呼びます) ま
たはタイプ 4 ドライバーのどちらを使用してもかまいません。この 2 種類のドライバ
ーでの接続については、この後の項に説明されています。アプレットをタイプ 4 ドライ
バーに移行することを強くお勧めします。
このアプレットを実行する場合、 DB2 マシン (サーバーまたはクライアント) に Web
サーバーがインストール済みで実行中であることを確認するか、または次のコマンドを
クライアント・マシンの作業ディレクトリーで入力して、 Java Development Kit に付属
のアプレット・ビューアーを使用することができます。
appletviewer Applt.html
タイプ 3 (net) ドライバーとの接続
タイプ 3 ドライバーに接続するには、まず Applt.html ファイルを、ファイル内の指示
に従って修正します。次に、Applt.html に指定されている TCP/IP ポートで JDBC ア
プレット・サーバーを開始します。たとえば Applt.html では、 param name=port
value=’6789’ と指定してから以下のように入力できます。
db2jstrt 6789
124
アプリケーションの構築および実行
接続ストリング内の JDBC ポート番号は、推奨デフォルトの ″6789″ にしてください。
これは、番号が他のポート番号と競合しないと断定できる場合にだけ変更してくださ
い。データベースのポート番号 ″50000″ は使用しないでください。
タイプ 4 ドライバーとの接続
タイプ 4 ドライバーに接続するには、まず Applt.html ファイルを、ファイル内の指示
に従って修正します。ただし、指定する TCP/IP ポート番号をデータベース・ポート番
号の 50000 にしなければなりません。
アプレットの作成
1. アプレットを次のコマンドで作成します。
bldsqlj Applt <userid> <password> <server_name> <port_number> <db_name>
ただし、ビルド・ファイルに説明されているとおり、プログラム名以外のどのパラメ
ーターにもデフォルト値を使用することができます。
2. Web ブラウザーからか、またはアプレット・ビューワー (使用している場合) から、
作業ディレクトリーにアクセスできることを確認してください。ディレクトリーにア
クセスできない場合、アクセス可能なディレクトリーに次のファイルをコピーしま
す。
Applt.html
Applt_Cursor1.class
Applt_SJProfileKeys.class
Applt.class
Applt_Cursor2.class
Applt_SJProfile0.ser
3. タイプ 3 ドライバーを使用する場合、 Windows では sqllib¥java¥runtime.zip お
よび sqllib¥java¥db2java.zip を、 UNIX では sqllib/java/runtime.zip および
sqllib/java/db2java.zip を、 Applt.class および Applt.html と同じディレクト
リーにコピーします。
タイプ 4 ドライバーを使用する場合、 Windows では sqllib¥java¥runtime.zip お
よび sqllib¥java¥db2jcc.jar を、 UNIX では sqllib/java/runtime.zip および
sqllib/java/db2jcc.jar を、 Applt.class および Applt.html と同じディレクトリ
ーにコピーします。
4. クライアント・マシンで、 Web ブラウザー (JDK 1.3 をサポートしていなければな
りません) を開始し、 Applt.html をロードします。
このプログラムは、Java の makefile を使用して作成することもできます。
関連概念:
v 115 ページの『Java アプレットに関する考慮事項』
関連タスク:
v 117 ページの『JDBC アプレットの作成』
v 126 ページの『SQLJ アプリケーションの作成』
第 4 章 Java
125
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 128 ページの『UNIX の SQLJ アプリケーション・オプション』
v 131 ページの『Windows の SQLJ アプリケーション・オプション』
v 81 ページの『SQLJ のサンプル』
関連サンプル:
v 『Applt.sqlj -- An SQLJ applet that uses a JDBC applet driver to access a database
(SQLj)』
v 『bldsqlj.bat -- Builds a Java embedded SQL (SQLJ) application or applet on
Windows』
v 『bldsqlj -- Builds Java embedded SQL (SQLJ) applications and applets on UNIX』
SQLJ アプリケーションの作成
以下のステップでは、 DB2 データベースにアクセスする SQLJ アプリケーションの例
を示す TbMod サンプルの作成方法が示されています。このステップでは、ビルド・ファ
イル bldsqlj (UNIX)、または bldsqlj.bat (Windows) が使用されていますが、これに
は、 SQLJ アプレットまたはアプリケーションを作成するためのコマンドが入っていま
す。
ビルド・ファイルは、UNIX では $1、$2、$3、$4、$5、および $6、 Windows では
%1、%2、%3、%4、%5、および %6 の、最大 6 個のパラメーターをとります。最初の
パラメーターは、プログラムの名前を指定します。 2 番目のパラメーターはデータベー
ス・インスタンスのユーザー ID を、 3 番目のパラメーターはパスワードを指定しま
す。 4 番目のパラメーターは、サーバー名を指定します。 5 番目のパラメーターはポ
ート番号を指定します。そして 6 番目のパラメーターはデータベース名を指定します。
最初のパラメーター (プログラム名) 以外のどのパラメーターでも、デフォルト値を使
用してもかまいません。デフォルトのパラメーター値の使用に関する詳細は、ビルド・
ファイルを参照してください。
手順:
ビルド・ファイル bldsqlj (UNIX) または bldsqlj.bat (Windows) を使用して TbMod
を作成するには、以下のコマンドを入力します。
bldsqlj TbMod <userid> <password> <server_name> <port_number> <db_name>
ただし、ビルド・ファイルに説明されているとおり、プログラム名以外のどのパラメー
ターにもデフォルト値を使用することができます。
次のコマンドで、アプリケーションに対して Java インタープリターを実行します。
java TbMod
126
アプリケーションの構築および実行
このプログラムは、Java の makefile を使用して作成することもできます。
注: UNIX 上で 64 ビットの DB2 インスタンス内で Java アプリケーションを実行する
場合に、 JDK が 32 ビットであると、アプリケーションを実行するにはまず DB2
ライブラリー・パスを変更する必要があります。 AIX の場合はたとえば次のよう
にします。
v bash または Korn シェルを使用する場合:
export LIBPATH=$HOME/sqllib/lib32
v C シェルを使用する場合:
setenv LIBPATH $HOME/sqllib/lib32
関連タスク:
v 119 ページの『JDBC アプリケーションの構築』
v 124 ページの『SQLJ アプレットの作成』
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 128 ページの『UNIX の SQLJ アプリケーション・オプション』
v 131 ページの『Windows の SQLJ アプリケーション・オプション』
v 81 ページの『SQLJ のサンプル』
関連サンプル:
v 『bldsqlj.bat -- Builds a Java embedded SQL (SQLJ) application or applet on
Windows』
v 『bldsqlj -- Builds Java embedded SQL (SQLJ) applications and applets on UNIX』
v 『TbMod.sqlj -- How to modify table data (SQLj)』
SQLJ アプリケーションおよびアプレットの UNIX 構築スクリプト
#! /bin/sh
# SCRIPT: bldsqlj
# Builds UNIX Java embedded SQL (SQLJ) applications
# Usage: bldsqlj prog_name (requires hardcoding user ID and password)
#
bldsqlj prog_name userid password
#
bldsqlj prog_name userid password server_name
#
bldsqlj prog_name userid password server_name port_number
#
bldsqlj prog_name userid password server_name port_number db_name
#
#
Defaults:
#
userid
= $USER variable
#
password
= $PSWD variable
#
server_name = local hostname
#
port_number = 50000
#
db_name
= sample
# To add defaults for user ID (USER) and password (PSWD)
第 4 章 Java
127
# Uncomment the following and add the values in the quotes
# USER=""
# PSWD=""
# Translate and compile the SQLJ source file
# and bind the package to the database.
if ( (( $# == 1 )) && [ $USER != "" && $PSWD != "" ] ) ||
(( $# >= 3 && $# <= 6 ))
then
sqlj $1.sqlj
if (($# == 1))
then
db2profc -url=jdbc:db2://$(hostname):50000/sample ¥
-user=$USER -password=$PSWD ¥
-prepoptions="package using $1" $1_SJProfile0
elif (($# == 3))
then
db2profc -url=jdbc:db2://$(hostname):50000/sample -user=$2 ¥
-password=$3 -prepoptions="package using $1" $1_SJProfile0
elif (($# == 4))
then
db2profc -url=jdbc:db2://$4:50000/sample -user=$2 -password=$3 ¥
-prepoptions="package using $1" $1_SJProfile0
elif (($# == 5))
then
db2profc -url=jdbc:db2://$4:$5/sample -user=$2 -password=$3 ¥
-prepoptions="package using $1" $1_SJProfile0
else
db2profc -url=jdbc:db2://$4:$5/$6 -user=$2 -password=$3 ¥
-prepoptions="package using $1" $1_SJProfile0
fi
else
echo ’Usage:
echo ’
echo ’
echo ’
echo ’
db_name’
echo ’’
echo ’
echo ’
echo ’
echo ’
echo ’
echo ’
fi
bldsqlj
bldsqlj
bldsqlj
bldsqlj
bldsqlj
prog_name
prog_name
prog_name
prog_name
prog_name
Defaults:’
userid
password
server_name
port_number
db_name
=
=
=
=
=
(requires hardcoding user ID and password)’
userid password’
userid password server_name’
userid password server_name port_number’
userid password server_name port_number
’$USER
’$PSWD
’$(hostname)
50000’
sample’
UNIX の SQLJ アプリケーション・オプション
以下の表は、 UNIX 上の bldsqlj ビルド・スクリプトで使用する SQLJ 変換プログラ
ム・オプションとプリコンパイル・オプションを示しています。これらは、 UNIX プラ
ットフォームでの SQLJ アプリケーションおよびアプレットの作成時に使用するようお
128
アプリケーションの構築および実行
勧めするオプションです。
bldsqlj の変換プログラム・オプションとプリコンパイル・オプション
sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。
$1.sqlj
SQLJ ソース・ファイル。
db2profc
Java プロファイル・カスタマイザーが使用する DB2。
-url
データベース接続を確立するための JDBC URL を
jdbc:db2://servername:50000/sample のように指定します。
-user
ユーザー ID を指定します。
-password
パスワードを指定します。
-prepoptions
データベースのパッケージ名をストリング "package using $1" で指定しま
す。 $1 は SQLJ ソース・ファイル名です。
$1_SJProfile0
プログラムのシリアル化プロファイルを指定します。
関連タスク:
v 124 ページの『SQLJ アプレットの作成』
v 126 ページの『SQLJ アプリケーションの作成』
関連資料:
v 135 ページの『UNIX の SQLJ ストアード・プロシージャー・オプション』
関連サンプル:
v 『bldsqlj -- Builds Java embedded SQL (SQLJ) applications and applets on UNIX』
SQLJ アプリケーションおよびアプレットの Windows バッチ・ファイル
@echo off
rem BATCH FILE: bldsqlj.bat
rem Builds Windows Java embedded SQL (SQLJ) applications and applets
rem To add defaults for user ID (USER) and password (PSWD)
rem Uncomment the following and add the appropriate values
rem set USER=
rem set PSWD=
goto start
:usage
echo Usage: bldsqlj prog_name (requires hardcoding user ID and password)
第 4 章 Java
129
echo
echo
echo
echo
echo.
echo
echo
echo
echo
echo
echo
goto exit
bldsqlj
bldsqlj
bldsqlj
bldsqlj
prog_name
prog_name
prog_name
prog_name
Defaults:
userid
password
server_name
port_number
db_name
=
=
=
=
=
userid
userid
userid
userid
password
password server_name
password server_name port_number
password server_name port_number db_name
%USER%
%PSWD%
%COMPUTERNAME%
50000
sample
:start
rem Translate and compile the SQLJ source file
rem and bind the package to the database.
if "%1" == "" goto usage
if "%2" == "" goto case1
if "%3" == "" goto usage
if "%4" == "" goto case3
if "%5" == "" goto case4
if "%6" == "" goto case5
if "%7" == "" goto case6
goto usage
:case1
if "%USER%" == "" goto usage
if "%PSWD%" == "" goto usage
if "%COMPUTERNAME%" == "" goto nohostname
sqlj %1.sqlj
db2profc -url=jdbc:db2://%COMPUTERNAME%:50000/sample -user=%USER%
-password=%PSWD% -prepoptions="package using %1" %1_SJProfile0
goto continue
:case3
if "%COMPUTERNAME%" == "" goto nohostname
sqlj %1.sqlj
db2profc -url=jdbc:db2://%COMPUTERNAME%:50000/sample -user=%2
-password=%3 -prepoptions="package using %1" %1_SJProfile0
goto continue
:case4
sqlj %1.sqlj
db2profc -url=jdbc:db2://%4:50000/sample -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
goto continue
:case5
sqlj %1.sqlj
db2profc -url=jdbc:db2://%4:%5/sample -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
goto continue
:case6
sqlj %1.sqlj
130
アプリケーションの構築および実行
db2profc -url=jdbc:db2://%4:%5/%6 -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
goto continue
:continue
rem Put any post building steps here
goto exit
:nohostname
echo Local server name (hostname) could not be determined.
echo.
goto usage
:exit
@echo on
Windows の SQLJ アプリケーション・オプション
以下の表は、 Windows オペレーティング・システム上の bldsqlj.bat バッチ・ファイ
ルで使用する SQLJ 変換プログラム・オプションとプリコンパイル・オプションを示し
ています。これらは、 SQLJ ルーチン (ストアード・プロシージャーとユーザー定義関
数) の作成時に使用するようお勧めするオプションです。
bldsqlj.bat の変換プログラムとプリコンパイル・オプション
sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。
%1.sqlj
SQLJ ソース・ファイル。
db2profc
Java プロファイル・カスタマイザーが使用する DB2。
-url
データベース接続を確立するための JDBC URL を
jdbc:db2://servername:50000/sample のように指定します。
-user
ユーザー ID を指定します。
-password
パスワードを指定します。
-prepoptions
データベースのパッケージ名をストリング "package using %1" で指定しま
す。 %1 は SQLJ ソース・ファイル名です。
%1_SJProfile0
プログラムのシリアル化プロファイルを指定します。
関連タスク:
v 124 ページの『SQLJ アプレットの作成』
v 126 ページの『SQLJ アプリケーションの作成』
第 4 章 Java
131
関連資料:
v 138 ページの『Windows の SQLJ ストアード・プロシージャー・オプション』
関連サンプル:
v 『bldsqlj.bat -- Builds a Java embedded SQL (SQLJ) application or applet on
Windows』
SQLJ ルーチンの作成
DB2 では、SQLJ ルーチン (ストアード・プロシージャーおよびユーザー定義関数) の
例を示すサンプル・プログラムが、 UNIX の場合は samples/java/sqlj ディレクトリ
ーに、 Windows の場合は samples¥java¥sqlj ディレクトリーに用意されています。ル
ーチンは、サーバー上でコンパイルして保管します。そして、クライアント・アプリケ
ーションによって呼び出されるとサーバー・データベースにアクセスし、そのクライア
ント・アプリケーションに情報を戻します。
また DB2 では、ルーチンを作成するためのコマンドの入ったビルド・ファイル
bldsqlj (UNIX)、または bldsqlj.bat (Windows) も同じディレクトリー内に用意され
ています。
ビルド・ファイルは、UNIX では $1、$2、$3、$4、$5、および $6、 Windows では
%1、%2、%3、%4、%5、および %6 の、最大 6 個のパラメーターをとります。最初の
パラメーターは、プログラムの名前を指定します。 2 番目のパラメーターはデータベー
ス・インスタンスのユーザー ID を、 3 番目のパラメーターはパスワードを指定しま
す。 4 番目のパラメーターは、サーバー名を指定します。 5 番目のパラメーターはポ
ート番号を指定します。そして 6 番目のパラメーターはデータベース名を指定します。
最初のパラメーター (プログラム名) 以外のどのパラメーターでも、デフォルト値を使
用することができます。デフォルトのパラメーター値の使用に関する詳細は、ビルド・
ファイルを参照してください。
手順:
以下の例は、ストアード・プロシージャーを使用してクラス・ファイルを作成する方法
を示しています。
Spserver は、 DB2 データベースにアクセスするために、 JDBC アプリケーション・
ドライバーを使用した PARAMETER STYLE JAVA ストアード・プロシージャーの例
を示します。
このストアード・プロシージャー・クラスをビルド・ファイル bldsqljs (UNIX) また
は bldsqljs.bat (Windows) で構築するには、以下に示すコマンドを入力します。
1. 次のコマンドを入力します。
bldsqljs Spserver <userid> <password> <server_name> ¥
<port_number> <db_name>
132
アプリケーションの構築および実行
ただし、ビルド・ファイルに説明されているとおり、プログラム名以外のどのパラメ
ーターにもデフォルト値を使用することができます。
2. 次に、サーバーで spcat スクリプトを実行してルーチンをカタログします。次のよ
うに入力します。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば Spdrop.db2 を呼び出してルーチンをアンカタログし、次に
Spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、Spdrop.db2 スクリプトと Spcreate.db2 スクリプト
は、個別に実行することもできます。
3. 次に、データベースを一度停止してから再始動し、新しい共用ライブラリーが認識さ
れるようにします。必要であれば、クラス・ファイルのファイル・モードを read に
設定して、分離ユーザーから読み取れるようにします。
4. Spclient クライアント・アプリケーションをコンパイルして実行し、ストアード・
プロシージャーを呼び出します。アプリケーションのビルド・ファイル bldsqlj
(UNIX) または bldsqlj.bat (Windows) を使用して、 Spclient を作成することが
できます。
上記のプログラムは、Java の makefile を使用して作成することもできます。
関連タスク:
v 120 ページの『JDBC ルーチンの作成』
v 124 ページの『SQLJ アプレットの作成』
v 126 ページの『SQLJ アプリケーションの作成』
関連資料:
v 135 ページの『UNIX の SQLJ ストアード・プロシージャー・オプション』
v 138 ページの『Windows の SQLJ ストアード・プロシージャー・オプション』
v 81 ページの『SQLJ のサンプル』
関連サンプル:
v 『bldsqljs.bat -- Builds a Java embedded SQL (SQLJ) stored procedure on Windows』
v 『bldsqljs -- Builds Java embedded SQL (SQLJ) stored procedures on UNIX』
v 『spcat -- To catalog SQLj stored procedures on UNIX』
v 『SpClient.sqlj -- Call a variety of types of stored procedures from SpServer.sqlj
(SQLj)』
v 『SpCreate.db2 -- How to catalog the stored procedures contained in SpServer.sqlj 』
v 『SpDrop.db2 -- How to uncatalog the stored procedures contained in SpServer.sqlj』
v 『SpIterat.sqlj -- Iterator class file for SpServer.sqlj (SQLj)』
第 4 章 Java
133
v 『SpServer.sqlj -- Provide a variety of types of stored procedures to be called from
(SQLj)』
SQLJ ルーチンの UNIX 構築スクリプト
#! /bin/sh
# SCRIPT: bldsqljs
# Builds UNIX Java embedded SQL (SQLJ) routines
# Usage: bldsqljs prog_name (requires hardcoding user ID and password)
#
bldsqljs prog_name userid password
#
bldsqljs prog_name userid password server_name
#
bldsqljs prog_name userid password server_name port_number
#
bldsqljs prog_name userid password server_name port_number db_name
#
#
Defaults:
#
userid
= $USER variable
#
password
= $PSWD variable
#
server_name = local hostname
#
port_number = 50000
#
db_name
= sample
#
#
#
#
To add defaults for user ID (USER) and password (PSWD)
Uncomment the following and add the values in the quotes
USER=""
PSWD=""
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Translate and compile the SQLJ source file
# and bind the package to the database.
if ( (( $# == 1 )) && [ $USER != "" && $PSWD != "" ] ) ||
(( $# >= 3 && $# <= 6 ))
then
sqlj $1.sqlj
if (($# == 1))
then
db2profc -url=jdbc:db2://$(hostname):50000/sample ¥
-user=$USER -password=$PSWD ¥
-prepoptions="package using $1" $1_SJProfile0
elif (($# == 3))
then
db2profc -url=jdbc:db2://$(hostname):50000/sample -user=$2 ¥
-password=$3 -prepoptions="package using $1" $1_SJProfile0
elif (($# == 4))
then
db2profc -url=jdbc:db2://$4:50000/sample -user=$2 -password=$3 ¥
-prepoptions="package using $1" $1_SJProfile0
elif (($# == 5))
then
db2profc -url=jdbc:db2://$4:$5/sample -user=$2 -password=$3 ¥
134
アプリケーションの構築および実行
-prepoptions="package using $1" $1_SJProfile0
else
db2profc -url=jdbc:db2://$4:$5/$6 -user=$2 -password=$3 ¥
-prepoptions="package using $1" $1_SJProfile0
fi
# Copy the *.class and *.ser files to the ’function’ directory.
rm -f $DB2PATH/function/$1*.class
rm -f $DB2PATH/function/$1*.ser
cp $1*.class $DB2PATH/function
cp $1*.ser $DB2PATH/function
else
echo ’Usage: bldsqljs prog_name (requires hardcoding user ID and password)’
echo ’
bldsqljs prog_name userid password’
echo ’
bldsqljs prog_name userid password server_name’
echo ’
bldsqljs prog_name userid password server_name port_number’
echo ’
bldsqljs prog_name userid password server_name port_number
db_name’
echo ’’
echo ’
Defaults:’
echo ’
userid
= ’$USER
echo ’
password
= ’$PSWD
echo ’
server_name = ’$(hostname)
echo ’
port_number = 50000’
echo ’
db_name
= sample’
fi
UNIX の SQLJ ストアード・プロシージャー・オプション
以下の表は、 UNIX 上の bldsqljs ビルド・スクリプトで使用する SQLJ 変換プログ
ラム・オプションとプリコンパイル・オプションを示しています。これらは、 UNIX プ
ラットフォームでの SQLJ ルーチン (ストアード・プロシージャーとユーザー定義関数)
の作成時に使用するようお勧めするオプションです。
第 4 章 Java
135
bldsqljs の変換プログラムとプリコンパイル・オプション
sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。
$1.sqlj
SQLJ ソース・ファイル。
db2profc
Java プロファイル・カスタマイザーが使用する DB2。
-url
データベース接続を確立するための JDBC URL を
jdbc:db2://servername:50000/sample のように指定します。
-user
ユーザー ID を指定します。
-password
パスワードを指定します。
-prepoptions
データベースのパッケージ名をストリング "package using $1" で指定しま
す。 $1 は SQLJ ソース・ファイル名です。
$1_SJProfile0
プログラムのシリアル化プロファイルを指定します。
関連タスク:
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 128 ページの『UNIX の SQLJ アプリケーション・オプション』
関連サンプル:
v 『bldsqljs -- Builds Java embedded SQL (SQLJ) stored procedures on UNIX』
SQLJ ルーチンの Windows バッチ・ファイル
@echo off
rem BATCH FILE: bldsqljs.bat
rem Builds Windows Java embedded SQL (SQLJ) routines
rem
rem
rem
rem
To add defaults for user ID (USER) and password (PSWD)
Uncomment the following and add the appropriate values
set USER=
set PSWD=
goto start
:usage
echo Usage:
echo
echo
echo
136
bldsqljs
bldsqljs
bldsqljs
bldsqljs
アプリケーションの構築および実行
prog_name
prog_name
prog_name
prog_name
(requires hardcoding user ID and password)
userid password
userid password server_name
userid password server_name port_number
echo
echo.
echo
echo
echo
echo
echo
echo
goto exit
bldsqljs prog_name userid password server_name port_number db_name
Defaults:
userid
password
server_name
port_number
db_name
=
=
=
=
=
%USER%
%PSWD%
%COMPUTERNAME%
50000
sample
:start
rem Translate and compile the SQLJ source file
rem and bind the package to the database.
if "%DB2PATH%" == "" goto nodb2cmd
if "%1" == "" goto usage
if "%2" == "" goto case1
if "%3" == "" goto usage
if "%4" == "" goto case3
if "%5" == "" goto case4
if "%6" == "" goto case5
if "%7" == "" goto case6
goto usage
:case1
if "%USER%" == "" goto usage
if "%PSWD%" == "" goto usage
if "%COMPUTERNAME%" == "" goto nohostname
sqlj %1.sqlj
db2profc -url=jdbc:db2://%COMPUTERNAME%:50000/sample -user=%USER%
-password=%PSWD% -prepoptions="package using %1" %1_SJProfile0
goto continue
:case3
if "%COMPUTERNAME%" == "" goto nohostname
sqlj %1.sqlj
db2profc -url=jdbc:db2://%COMPUTERNAME%:50000/sample -user=%2
-password=%3 -prepoptions="package using %1" %1_SJProfile0
goto continue
:case4
sqlj %1.sqlj
db2profc -url=jdbc:db2://%4:50000/sample -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
goto continue
:case5
sqlj %1.sqlj
db2profc -url=jdbc:db2://%4:%5/sample -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
goto continue
:case6
sqlj %1.sqlj
db2profc -url=jdbc:db2://%4:%5/%6 -user=%2 -password=%3
-prepoptions="package using %1" %1_SJProfile0
第 4 章 Java
137
goto continue
:continue
rem Copy the *.class and *.ser files to the ’function’ directory.
copy %1*.class %DB2PATH%¥function¥
copy %1*.ser %DB2PATH%¥function¥
goto exit
:nodb2cmd
echo DB2 command line environment not initialized.
and try again.
goto exit
Please run db2cmd
:nohostname
echo Local server name (hostname) could not be determined.
echo.
goto usage
:exit
@echo on
Windows の SQLJ ストアード・プロシージャー・オプション
以下の表は、 Windows オペレーティング・システム上の bldsqljs.bat バッチ・ファ
イルで使用する SQLJ 変換プログラム・オプションとプリコンパイル・オプションを示
しています。これらは、 SQLJ ルーチン (ストアード・プロシージャーとユーザー定義
関数) の作成時に使用するようお勧めするオプションです。
bldsqljs.bat の変換プログラムとプリコンパイル・オプション
sqlj
SQLJ 変換プログラム (プログラムのコンパイルも行います)。
%1.sqlj
SQLJ ソース・ファイル。
db2profc
Java プロファイル・カスタマイザーが使用する DB2。
-url
データベース接続を確立するための JDBC URL を
jdbc:db2://servername:50000/sample のように指定します。
-user
ユーザー ID を指定します。
-password
パスワードを指定します。
-prepoptions
データベースのパッケージ名をストリング "package using %1" で指定しま
す。 %1 は SQLJ ソース・ファイル名です。
%1_SJProfile0
プログラムのシリアル化プロファイルを指定します。
138
アプリケーションの構築および実行
関連タスク:
v 132 ページの『SQLJ ルーチンの作成』
関連資料:
v 131 ページの『Windows の SQLJ アプリケーション・オプション』
関連サンプル:
v 『bldsqljs.bat -- Builds a Java embedded SQL (SQLJ) stored procedure on Windows』
第 4 章 Java
139
140
アプリケーションの構築および実行
第 5 章 SQL プロシージャー
SQL プロシージャーの作成 . . . . . .
UNIX でのクライアント・アプリケーション
による SQL プロシージャーの呼び出し . .
Windows でのクライアント・アプリケーショ
ンによる SQL プロシージャーの呼び出し .
SQL プロシージャー用の中間ファイルの保存
SQL プロシージャーのプリコンパイル・オプ
ションとバインド・オプションのカスタマイ
ズ . . . . . . . . . . . . . . .
141
142
SQL プロシージャーのバックアップとリスト
ア . . . . . . . . . . . . . . . 148
コンパイル済み SQL プロシージャーの配布 149
SQL プロシージャーの再バインド . . . . 150
144
145
147
SQL プロシージャーの作成
UNIX では sqllib/samples/sqlproc ディレクトリーに、 Windows では
sqllib¥samples¥sqlproc ディレクトリーにある DB2 コマンド行プロセッサー・スクリ
プト (.db2 拡張子で終わるもの) は、 CREATE PROCEDURE ステートメントを実行し
てサーバー上にストアード・プロシージャーを作成します。どの CLP スクリプトに
も、対応する同一名のクライアント・アプリケーション・ファイルがあります。なおそ
の名前には、 .sqc (C 組み込み SQL の場合)、.c (DB2 CLI の場合)、または .java
(JDBC の場合) といった、言語とアプリケーション・インターフェースを表す拡張子が
付いています。
手順:
CREATE PROCEDURE CLP スクリプトを実行する際には、次のコマンドでサンプル・
データベースに接続してください。
db2 connect to sample user userid using password
ここで、userid と password は、 sample データベースが置かれているインスタンスの
ユーザー ID とパスワードを表します。
rsultset.db2 スクリプト・ファイルの CREATE PROCEDURE を実行するには、次の
コマンドを入力します。
db2 -td@ -vf rsultset.db2
これで、SQL プロシージャーを呼び出す準備ができました。
関連タスク:
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
© Copyright IBM Corp. 1993 - 2002
141
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
関連サンプル:
v 『rsultset.db2 -- To create the MEDIAN_RESULT_SET SQL procedure 』
UNIX でのクライアント・アプリケーションによる SQL プロシージャーの呼び出し
クライアント・アプリケーションを作成して実行すれば、UNIX 上で SQL プロシージ
ャーを呼び出すことができます。 DB2 では、 SQL プロシージャーを呼び出すための
サンプル・クライアント・プログラムが sqllib/samples/sqlproc ディレクトリー内に
用意されています。なおこのプロシージャーは、やはり DB2 に用意されているサンプ
ルのコマンド行プロセッサー・スクリプトから作成することができます。 DB2 CLI、C
組み込み SQL、および JDBC 用のクライアント・ソース・ファイルがあります。
また、そのようなアプリケーション・インターフェース用のクライアント・プログラム
を作成するための、以下のようなビルド・スクリプトも用意されています (JDBC のも
のを除く)。
v bldcli には、 SQL プロシージャー用の DB2 CLI クライアント・アプリケーション
を作成するためのコマンドが入っています。これは、 sqllib/samples/cli ディレク
トリー内の bldapp スクリプトと同じファイルです。
v bldapp には、 SQL プロシージャー用の C 組み込み SQL クライアント・アプリケ
ーションを作成するためのコマンドが入っています。これは、 sqllib/samples/c デ
ィレクトリー内の bldapp スクリプトと同じファイルです。
手順:
使用するアプリケーション・インターフェースによっては、以下の例のようにして、
SQL プロシージャーを呼び出すサンプル・クライアント・プログラムを作成して実行す
ることができます。
DB2 CLI
ソース・ファイル rsultset.c から DB2 CLI クライアント・アプリケーショ
ン rsultset を作成するには、次のように入力します。
bldcli rsultset
このコマンドによって実行可能ファイル rsultset が作成されます。
142
アプリケーションの構築および実行
ストアード・プロシージャーを呼び出すには、実行可能ファイルの名前、接続
しているデータベースの名前、そしてデータベース・インスタンスのユーザー
ID とパスワードを入力して、サンプル・クライアント・アプリケーションを実
行します。
rsultset database userid password
C 組み込み SQL
ソース・ファイル basecase.sqc から組み込み SQL クライアント・アプリケ
ーション basecase を作成するには、スクリプト・ファイル名、実行可能ファ
イル名、接続しているデータベース、およびデータベース・インスタンスのユ
ーザー ID とパスワードを入力します。
bldapp basecase database userid password
結果として、実行可能ファイル basecase が作成されます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプ
ル・クライアント・アプリケーションを実行します。
basecase database userid password
JDBC
ソース・ファイル NestedSP.java から JDBC クライアント・アプリケーショ
ン NestedSP を作成するには、次のようにソース・ファイルをコンパイルしま
す。
javac NestedSP.java
これで、クラス・ファイル NestedSP.class が作成されます。
ストアード・プロシージャーを呼び出すには、次のようにアプリケーションで
Java インタープリターを実行します。
java NestedSP userid password database
関連タスク:
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
関連サンプル:
v 『basecase.sqc -- To call the UPDATE_SALARY SQL procedure』
v 『rsultset.c -- To call the MEDIAN_RESULT_SET SQL procedure』
第 5 章 SQL プロシージャー
143
Windows でのクライアント・アプリケーションによる SQL プロシージャーの呼び
出し
クライアント・アプリケーションを作成して実行すれば、Windows 上で SQL プロシー
ジャーを呼び出すことができます。 DB2 では、 SQL プロシージャーを呼び出すため
のサンプル・クライアント・プログラムが sqllib¥samples¥sqlproc ディレクトリー内
に用意されています。なおこのプロシージャーは、やはり DB2 に用意されているサン
プルのコマンド行プロセッサー・スクリプトから作成することができます。 DB2
CLI、C 組み込み SQL、および JDBC 用のクライアント・ソース・ファイルがありま
す。
また、そのようなアプリケーション・インターフェース用のクライアント・プログラム
を作成するための、以下のようなバッチ・ファイルも用意されています (JDBC のもの
を除く)。
v bldcli.bat には、 SQL プロシージャー用の DB2 CLI クライアント・アプリケーシ
ョンを作成するためのコマンドが入っています。これは、 sqllib¥samples¥cli ディ
レクトリー内の bldapp.bat と同じファイルです。
v bldapp.bat には、 SQL プロシージャー用の C 組み込み SQL クライアント・アプ
リケーションを作成するためのコマンドが入っています。これは、
sqllib¥samples¥c ディレクトリー内の bldapp.bat と同じファイルです。
手順:
使用するアプリケーション・インターフェースによっては、以下の例のようにして、
SQL プロシージャーを呼び出すサンプル・クライアント・プログラムを作成して実行す
ることができます。
DB2 CLI
ソース・ファイル rsultset.c から DB2 CLI クライアント・アプリケーショ
ン rsultset を作成するには、次のように入力します。
bldcli rsultset
このコマンドによって実行可能ファイル rsultset.exe が作成されます。
ストアード・プロシージャーを呼び出すには、実行可能ファイルの名前、接続
しているデータベースの名前、そしてデータベース・インスタンスのユーザー
ID とパスワードを入力して、サンプル・クライアント・アプリケーションを実
行します。
rsultset database userid password
C 組み込み SQL
ソース・ファイル basecase.sqc から組み込み SQL クライアント・アプリケ
ーション basecase を作成するには、バッチ・ファイル名、実行可能ファイル
144
アプリケーションの構築および実行
名、接続しているデータベース、接続先のデータベース、およびデータベース
が置かれたインスタンスのユーザー ID とパスワードを入力します。
bldapp basecase database userid password
結果として、実行可能ファイル basecase.exe が作成されます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプ
ル・クライアント・アプリケーションを実行します。
basecase database userid password
JDBC
ソース・ファイル NestedSP.java から JDBC クライアント・アプリケーショ
ン NestedSP を作成するには、次のようにソース・ファイルをコンパイルしま
す。
javac NestedSP.java
これで、クラス・ファイル NestedSP.class が作成されます。
ストアード・プロシージャーを呼び出すには、次のようにアプリケーションで
Java インタープリターを実行します。
java NestedSP userid password database
関連タスク:
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
関連サンプル:
v 『basecase.sqc -- To call the UPDATE_SALARY SQL procedure』
v 『rsultset.c -- To call the MEDIAN_RESULT_SET SQL procedure』
SQL プロシージャー用の中間ファイルの保存
CREATE PROCEDURE ステートメントが出されると、 DB2 はいくつもの中間ファイ
ルを作成し、通常は、ステートメントが正常に完了されるとこれらを削除します。 SQL
プロシージャーが所定どおりに実行されなかった場合に、 DB2 で作成された
SQC、C、およびメッセージ・ログ・ファイルを調べられるように、ファイルを保存し
ておくことはよいことです。
手順:
第 5 章 SQL プロシージャー
145
CREATE PROCEDURE ステートメントが正常に実行された場合にも DB2 が作成した
ファイルを保管したい場合は、以下のコマンドに示されているように、サーバー上の
DB2_SQLROUTINE_KEEP_FILES DB2 レジストリー変数の値を ″1″、 ″y″、または
″yes″ に設定してください。
db2set DB2_SQLROUTINE_KEEP_FILES=1
次に DB2 をいったん停止してから再始動して、変更を有効化します。
その後、 SQL プロシージャーが正常に作成されなかった場合に残った中間ファイルを
手動で削除する必要があります。これらのファイルは次のディレクトリーに保存されま
す。
UNIX
$HOME/sqllib/function/routine/sqlproc/<db_name>/<schema_name>/tmp
Windows
sqllib¥function¥routine¥sqlproc¥<db_name>¥<schema_name>¥tmp
<db_name> および <schema_name> SQL プロシージャーの作成に使用されたデータベ
ースとスキーマを表しています。
関連タスク:
v 147 ページの『SQL プロシージャーのプリコンパイル・オプションとバインド・オプ
ションのカスタマイズ』
v 148 ページの『SQL プロシージャーのバックアップとリストア』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
146
アプリケーションの構築および実行
SQL プロシージャーのプリコンパイル・オプションとバインド・オプションのカスタ
マイズ
プリコンパイルおよびバインド・オプションは、 DB2_SQLROUTINE_PREPOPTS DB2
レジストリー変数を設定することによってカスタマイズできます。これらのオプション
を、プロシージャー・レベルでカスタマイズすることはできません。
手順:
SQL プロシージャーに、カスタマイズしたプリコンパイル・オプションを指定するに
は、次のコマンドを使用して、 DB2 プリコンパイラーで使用するプリコンパイル・オ
プションのリストを DB2 レジストリーに追加します。
db2set DB2_SQLROUTINE_PREPOPTS=options
ここで、options は、 DB2 プリコンパイラーで使用するプリコンパイル・オプションの
リストを示します。使用できるオプションは、次のものだけです。
BLOCKING {UNAMBIG | ALL | NO}
DATETIME {DEF | USA | EUR | ISO | JIS | LOC}
DEGREE {1 | degree-of-parallelism | ANY}
DYNAMICRULES {BIND | RUN}
EXPLAIN {NO | YES | ALL}
EXPLAINSNAP {NO | YES | ALL}
FEDERATED {NO | YES}
INSERT {DEF | BUF}
ISOLATION {CS |RR |UR |RS |NC}
QUERYOPT optimization-level
SYNCPOINT {ONEPHASE | TWOPHASE | NONE}
例。日付には ISO フォーマットを、分離レベルには反復可能読み取りをパッケージで
使用するには、以下のようにオプションを指定します。
db2set DB2_SQLROUTINE_PREPOPTS="DATETIME ISO ISOLATION RR"
次に DB2 をいったん停止してから再始動して、変更を有効化します。
関連タスク:
v 145 ページの『SQL プロシージャー用の中間ファイルの保存』
v 148 ページの『SQL プロシージャーのバックアップとリストア』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
第 5 章 SQL プロシージャー
147
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
SQL プロシージャーのバックアップとリストア
SQL プロシージャーが作成されると、生成された共用ダイナミック・リンク・ライブラ
リー (DLL) は、ソース・テキスト、パッケージ、およびそれらに関連したファイルと
一緒にデータベース・カタログに保管されます。したがって、データベース・バックア
ップを実行すれば、それらの情報はすべて保管されます。
手順:
データベースのリカバリー時には、リカバリー中のデータベースに属するファイル・シ
ステムにあるすべての SQL プロシージャー実行可能プログラムが除去されます。索引
作成構成パラメーター indexrec が RESTART に設定されていると、すべての SQL プ
ロシージャー実行可能プログラムは、カタログ表から抽出され、次の接続時にファイ
ル・システムに書き戻されます。設定されていないと、SQL 実行可能プログラムは、
SQL プロシージャーの最初の実行で抽出されます。
実行可能ファイルは、以下のディレクトリーに置かれます。
UNIX
$HOME/sqllib/function/routine/sqlproc/<database_name>
Windows
sqllib¥function¥routine¥sqlproc¥<database_name>
<database_name> は、 SQL プロシージャーが作成されたデータベースを表します。
リストア操作後にデータベースへの初めての接続を試みたときに以下のメッセージが返
された場合:
SQL2048N An error occurred while accessing object "SQL PROCEDURE FILES".
Reason code: "7".
db2stop を使用して DB2 をいったん停止してから db2start を使用して再始動しま
す。
関連タスク:
v 145 ページの『SQL プロシージャー用の中間ファイルの保存』
v 147 ページの『SQL プロシージャーのプリコンパイル・オプションとバインド・オプ
ションのカスタマイズ』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
148
アプリケーションの構築および実行
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
v 150 ページの『SQL プロシージャーの再バインド』
コンパイル済み SQL プロシージャーの配布
SQL プロシージャーが定義されると、C プログラムへの変換、プリコンパイル、ターゲ
ット・データベースに対するバインドが行われ、コンパイルおよびリンクされて共有ラ
イブラリーが作成されます。コンパイルおよびリンクのステップでは、C または C++
コンパイラーがデータベース・サーバー・マシンで使用可能でなければなりません。た
だし、SQL プロシージャーは一度定義されると、同じオペレーティング・システムと同
じバージョンの DB2 で実行されているが C または C++ コンパイラーに必ずしもアク
セスする必要のない DB2 データベース・サーバー・マシンに、コンパイルされた形式
で配布することができます。この条件のもとで、DB2 では、ユーザーは SQL プロシー
ジャーをコンパイル済みの形式でデータベースから抽出し、コンパイル済みの形式で別
のサーバー・マシン上の別のデータベースにインストールすることが可能です。
DB2 は、抽出およびインストールのためにコマンド行インターフェースとプログラミン
グ・インターフェースの両方を提供します。コマンド行インターフェースは、GET
ROUTINE と PUT ROUTINE の 2 つの CLP コマンドで構成されています。プログラミン
グ・インターフェースは、 GET_ROUTINE_SAR と PUT_ROUTINE_SAR の 2 つの標準装備ス
トアード・プロシージャーから構成されます。
手順:
コンパイルされた SQL プロシージャーを 1 つのデータベース・サーバーから別のデー
タベース・サーバーに配布するには、以下の手順を行います。
1. アプリケーションの一部である SQL プロシージャーの定義を含め、アプリケーショ
ンを構築します。
2. プロシージャーをテストした後、GET ROUTINE コマンドを発行するか、
GET_ROUTINE_SAR ストアード・プロシージャーを呼び出すことによって、各プロシー
ジャーのコンパイル済みバージョンを異なるファイルに抽出します。ファイルを配布
メディアへコピーします (必要な場合)。
例。 SCHEMA1.MYPROC は、ソース・サーバー上に置かれた SQL プロシージャーであ
ると仮定します。以下のコマンドは、プロシージャーの配布可能バージョンの入った
myproc.sar という名前のファイルを作成します。
GET ROUTINE INTO myproc.sar FROM PROCEDURE SCHEMA1.MYPROC
第 5 章 SQL プロシージャー
149
3. 前のステップで作成されたファイルを使用し、 PUT ROUTINE コマンドを発行する
か、 PUT_ROUTINE_SAR ストアード・プロシージャーを呼び出すことによって、各サ
ーバーにそれぞれのプロシージャーのコンパイル済みバージョンをインストールしま
す。
例。 以下のコマンドは、前記の例のプロシージャーをターゲット・サーバーにイン
ストールします。
PUT ROUTINE FROM myproc.sar
各データベース・サーバーのオペレーティング・システムと DB2 のレベルは同じで
なければなりません。
注: GET ROUTINE または PUT ROUTINE の操作 (またはそれに対応するプロシージ
ャー) の実行が正常に完了しないと、失敗の原因に関する情報を記した診断テキス
トを添付されたエラーが必ず戻されます。たとえば、GET ROUTINE に指定したプ
ロシージャー名が SQL プロシージャーを特定していないと、 ″-204, 42704″ とい
う診断テキストが戻されます。なお、-204 と 42704 はそれぞれ、問題の原因を示
す SQLCODE と SQLSTATE です。この例の SQLCODE と SQLSTATE は、GET
ROUTINE コマンドに指定されたプロシージャー名は未定義であることを示してい
ます。
関連タスク:
v 24 ページの『SQL プロシージャー環境のセットアップ』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 150 ページの『SQL プロシージャーの再バインド』
関連資料:
v SQL リファレンス 第 1 巻 の『GET_ROUTINE_SAR プロシージャー』
v SQL リファレンス 第 1 巻 の『PUT_ROUTINE_SAR プロシージャー』
v コマンド・リファレンス の『GET ROUTINE コマンド』
v コマンド・リファレンス の『PUT ROUTINE コマンド』
SQL プロシージャーの再バインド
手順:
150
アプリケーションの構築および実行
SQL プロシージャーに対応するパッケージを再バインドするには、
SYSPROC.REBIND_ROUTINE_PACKAGE 組み込みストアード・プロシージャーを呼び出しま
す。
たとえば、データベース内に MYSCHEMA.MYPROC というプロシージャーが存在する場合
に、そのパッケージをコマンド行プロセッサー (CLP) から再バインドするには、次のよ
うなコマンドを発行します。
CALL SYSPROC.REBIND_ROUTINE_PACKAGE(’P’, ’MYSCHEMA.MYPROC’, ’CONSERVATIVE’)
ただし ’P’ は、 ’MYSCHEMA.MYPROC’ がプロシージャー名であることを示します。最初
のパラメーターに ’SP’ が置かれていると、 ’MYSCHEMA.MYPROC’ は具体的なプロシージ
ャー名であることを示し、 ’CONSERVATIVE’ は、従来の再バインドのセマンティクスを
適用する必要があることを示します。従来の再バインドの詳細は、以下の関連リンクに
ある REBIND コマンドを参照してください。
関連タスク:
v 24 ページの『SQL プロシージャー環境のセットアップ』
v 145 ページの『SQL プロシージャー用の中間ファイルの保存』
v 147 ページの『SQL プロシージャーのプリコンパイル・オプションとバインド・オプ
ションのカスタマイズ』
v 148 ページの『SQL プロシージャーのバックアップとリストア』
v 141 ページの『SQL プロシージャーの作成』
v 153 ページの『CALL ステートメントによるストアード・プロシージャーの呼び出
し』
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
関連資料:
v コマンド・リファレンス の『REBIND コマンド』
第 5 章 SQL プロシージャー
151
152
アプリケーションの構築および実行
第 6 章 ストアード・プロシージャーの呼び出し
CALL ステートメントによるストアード・プ
ロシージャーの呼び出し . . . . . . . 153
この章では、コマンド行で CALL ステートメントを指定して DB2 ストアード・プロシ
ージャーを呼び出すための詳細情報を提供します。
DB2 アプリケーション開発の最新の更新事項については、次の Web ページを参照して
ください。
http://www.ibm.com/software/data/db2/udb/ad
CALL ステートメントによるストアード・プロシージャーの呼び出し
DB2 コマンド行プロセッサー・インターフェースから call SQL ステートメントを呼
び出せば、ストアード・プロシージャーを呼び出すことができます。呼び出すことがで
きるのは、カタログで定義されているストアード・プロシージャーだけです。
手順:
ストアード・プロシージャーを呼び出すには、まず以下を使用してデータベースへ接続
する必要があります。
db2 connect to sample user userid using password
ここで、userid と password は、 sample データベースが置かれているインスタンスの
ユーザー ID とパスワードを表します。
call ステートメントを使用するには、ストアード・プロシージャー名、IN または
INOUT パラメーター、および各 OUT パラメーターのプレースホルダーとしての ’?’
を入力します。
ストアード・プロシージャーのパラメーターは、プログラム・ソース・ファイルにあ
る、そのストアード・プロシージャーの CREATE PROCEDURE ステートメントに示されて
います。たとえば、SQL プロシージャーのソース・ファイル whiles.db2 内の
DEPT_MEDIAN プロシージャーの CREATE PROCEDURE ステートメントは、次のように始ま
っています。
CREATE PROCEDURE DEPT_MEDIAN
(IN deptNumber SMALLINT, OUT medianSalary DOUBLE)
この場合、このプロシージャーを呼び出すには、 IN パラメーター deptNumber に有効
な SMALLINT 値を、また OUT パラメーターに疑問符 ’?’ を入力する必要がありま
© Copyright IBM Corp. 1993 - 2002
153
す。 DEPT_MEDIAN プロシージャーは、サンプル・データベースの STAFF 表にアク
セスします。変数 deptNumber は、STAFF 表の DEPT 列に割り当てられているので、
たとえば値 51 などの有効値を DEPT 列から取り出すことができます。
次に、プロシージャー名、IN パラメーターの値、および OUT パラメーターの値とし
て疑問符 ? を指定した call ステートメントを入力することができます。プロシージャ
ーのパラメーターは、下の例のように必ず括弧で囲む必要があります。
db2 call dept_median (51, ?)
注: UNIX プラットフォームでは、括弧はコマンド・シェルにとって特別な意味がある
ので、前に ¥ 文字を付けるか、または以下のように引用符で囲まなければなりませ
ん。
db2 "call dept_median (51, ?)"
コマンド行プロセッサーを対話モードで使用する場合は、引用符を使用しません。
上記のコマンドを実行すると、以下の結果が生じるはずです。
Value of output parameters
-------------------------Parameter Name : MEDIANSALARY
Parameter Value : +1.76545000000000E+004
DB20000I
The SQL command completed successfully.
関連タスク:
v 142 ページの『UNIX でのクライアント・アプリケーションによる SQL プロシージ
ャーの呼び出し』
v 144 ページの『Windows でのクライアント・アプリケーションによる SQL プロシー
ジャーの呼び出し』
v 149 ページの『コンパイル済み SQL プロシージャーの配布』
関連サンプル:
v 『whiles.db2 -- To create the DEPT_MEDIAN SQL procedure 』
v 『whiles.sqc -- To call the DEPT_MEDIAN SQL procedure』
154
アプリケーションの構築および実行
第 3 部 プラットフォーム固有アプリケーションの構築お
よび実行
© Copyright IBM Corp. 1993 - 2002
155
156
アプリケーションの構築および実行
第 7 章 AIX
重要な考慮事項 . . . . . . . . . .
ルーチン用の AIX エクスポート・ファイ
ル . . . . . . . . . . . . . .
AIX ルーチンと CREATE ステートメン
ト . . . . . . . . . . . . . .
AIX 共用ライブラリーの置換 . . . . .
AIX での COBOL のインストールに関す
る考慮事項 . . . . . . . . . . .
IBM C . . . . . . . . . . . . .
AIX での C アプリケーションの作成 . .
C アプリケーションの構築スクリプト
AIX C アプリケーションのコンパイルと
リンクのオプション . . . . . . . .
AIX での C ルーチンの作成 . . . . .
C ルーチンの構築スクリプト . . . . .
AIX C ルーチンのコンパイルとリンクの
オプション . . . . . . . . . . .
AIX での C マルチスレッド・アプリケー
ションの作成 . . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
VisualAge C++ . . . . . . . . . . .
AIX での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
AIX C++ アプリケーションのコンパイル
とリンクのオプション . . . . . . .
AIX での C++ ルーチンの作成 . . . .
C++ ルーチンの構築スクリプト . . . .
AIX C++ ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
AIX での C++ マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
VisualAge C++ 構成ファイル . . . . . .
構成ファイルによる VisualAge C++ プロ
グラムの作成 . . . . . . . . . .
構成ファイルによる C++ DB2 API アプ
リケーションの作成 . . . . . . . .
© Copyright IBM Corp. 1993 - 2002
158
158
158
159
160
160
160
162
163
165
169
169
171
172
173
173
175
175
177
181
181
183
184
185
構成ファイルによる C++ 組み込み SQL
アプリケーションの作成 . . . . . .
構成ファイルによる C++ ストアード・プ
ロシージャーの作成 . . . . . . . .
構成ファイルによる C++ ユーザー定義関
数の作成 . . . . . . . . . . . .
IBM COBOL Set for AIX . . . . . . .
AIX での IBM COBOL コンパイラーの構
成 . . . . . . . . . . . . . .
AIX での IBM COBOL アプリケーション
の作成 . . . . . . . . . . . .
IBM COBOL アプリケーションの構築ス
クリプト . . . . . . . . . . . .
AIX IBM COBOL アプリケーションのコ
ンパイルとリンクのオプション . . . .
AIX での IBM COBOL ルーチンの作成
IBM COBOL ルーチンの構築スクリプト
AIX IBM COBOL ルーチンのコンパイル
とリンクのオプション . . . . . . .
Micro Focus COBOL . . . . . . . . .
AIX での Micro Focus COBOL コンパイ
ラーの構成 . . . . . . . . . . .
AIX での Micro Focus COBOL アプリケ
ーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
AIX Micro Focus COBOL アプリケーショ
ンのコンパイルとリンクのオプション . .
AIX での Micro Focus COBOL ルーチン
の作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
AIX Micro Focus COBOL ルーチンのコン
パイルとリンクのオプション . . . . .
REXX . . . . . . . . . . . . . .
AIX での REXX アプリケーションの作成
186
187
189
190
190
191
193
194
195
196
197
198
198
199
201
202
203
204
205
206
206
185
185
157
この章は、AIX でアプリケーションを構築するための詳細な情報を提供します。 AIX
用の DB2 アプリケーション開発の最新の更新事項については、次の Web ページを参
照してください。
http://www.ibm.com/software/data/db2/udb/ad
重要な考慮事項
この節では、サポートされている各種コンパイラーで DB2 アプリケーションを構築す
るための情報として、 AIX に固有の情報を提供します。
ルーチン用の AIX エクスポート・ファイル
外部ルーチンは、サーバー上でコンパイルされ、サーバー上の共用ライブラリーに保管
されて実行されます。これらの共用ライブラリーは、ルーチンをコンパイルするときに
作成されます。
AIX では、ライブラリー内のどのグローバル関数を外部から呼び出せるかを指定するエ
クスポート・ファイルをユーザーから提供する必要があります。そのファイルには、ラ
イブラリー内のすべてのルーチンの名前が入っていなければなりません。他の UNIX プ
ラットフォームは単に、ライブラリー内のすべてのグローバル関数をエクスポートする
だけです。次は、AIX エクスポート・ファイルの例です。
#! spserver export file
outlanguage
エクスポート・ファイルの spserver.exp には、ストアード・プロシージャー
outlanguage の一覧が示されます。リンカーは spserver.exp を使用して、
outlanguage ストアード・プロシージャーの入った共用ライブラリー spserver を作成
します。
AIX リンカーの資料には、エクスポート・ファイルに関する追加情報が記載されていま
す。
関連概念:
v 158 ページの『AIX ルーチンと CREATE ステートメント』
AIX ルーチンと CREATE ステートメント
ここでは、ルーチンのコンパイルおよびリンクと、 CREATE ステートメントの
EXTERNAL NAME 文節中に入力する情報との間の関係を説明します。
プログラムをコンパイルしてリンクするときには、 -bE: オプションで指定するエクス
ポート・ファイルを使用して外部関数を識別することができます。
158
アプリケーションの構築および実行
ライブラリー myrtns には、 modify、remove、および add の 3 つのルーチンが入って
いると仮定します。 modify をデフォルトのエントリー・ポイントと指定します。その
ためには、これを、リンクのステップでリンクしたエクスポート・ファイル内の最初の
エントリーに置きます。 remove と add 関数は、やはりエクスポート・ファイル内に配
置することで追加のエクスポート可能関数と指定します。
リンク・ステップにおいて、次のように指定します。
-bE:myrtns.exp
これは、エクスポート・ファイル myrtns.exp を指定します。
エクスポート・ファイルは、次のようになります。
modify
remove
add
modify、remove、および add 関数を使用してインプリメントされたルーチンの
EXTERNAL NAME 文節のコーディングは、最終的に次のようになります。
EXTERNAL NAME ’/u/mydir/routines/myrtns!modify’
および
EXTERNAL NAME ’/u/mydir/routines/myrtns!remove’
および
EXTERNAL NAME ’/u/mydir/routines/myrtns!add’
注: 使用するデフォルト・パスは sqllib/function です。その意味は次のとおりです。
たとえば EXTERNAL NAME 文節を次のように指定したとします。
EXTERNAL NAME ’myrtns!modify’
上記の場合、DB2 は sqllib/function からの myrtns のロードを試みます。
関連概念:
v 158 ページの『ルーチン用の AIX エクスポート・ファイル』
AIX 共用ライブラリーの置換
手順:
共用ライブラリーの作成が完了すると、通常は、DB2 からのそのライブラリーへのアク
セス先となるディレクトリーにコピーします。ルーチン共用ライブラリーを置換したい
場合は、 /usr/sbin/slibclean を実行して AIX 共用ライブラリーのキャッシュをフラ
ッシュするか、またはライブラリーをターゲット・ディレクトリーから除去したうえ
で、ソース・ディレクトリーからターゲット・ディレクトリーにライブラリーをコピー
第 7 章 AIX
159
する必要があります。そうしないと、参照されるライブラリーのキャッシュが AIX で
保持されて、ライブラリーを上書きできないため、コピー操作が失敗する可能性があり
ます。
AIX での COBOL のインストールに関する考慮事項
AIX でのルーチンのロードや、その中のライブラリー参照の解決の仕方に起因して、
COBOL をどのようにインストールすればよいかを規制する要件が生じます。これらの
要件は、 COBOL プログラムがランタイムに共用ライブラリー (ルーチン) をロードす
るときの要素となります。
ルーチンをロードするときには、それが参照する一連のライブラリーのチェーンもロー
ドする必要があります。プログラムで間接的にのみ参照するライブラリーを AIX が探
索するときには、言語プロバイダー (IBM COBOL または Micro Focus COBOL) の作
成した参照ライブラリーにコンパイルされたパスを使用する必要があります。このパス
は必ずしも、コンパイラーがインストールされたパスと同じとは限りません。チェーン
内でライブラリーが見つからないと、ルーチンのロードは失敗し、SQLCODE -444 を受
け取ります。
そのような事態にならないようにするには、必要なときには常にコンパイラーをインス
トールし、その後、すべての言語ライブラリーのシンボリック・リンクを、インストー
ル・ディレクトリーから /usr/lib (ライブラリーのロードが必要なときには、ほぼ必ず
探索されるディレクトリー) に作成します。ライブラリーを sqllib/function (ルーチ
ンのディレクトリー) にリンクできますが、これは、1 つのデータベース・インスタン
スに対してしか機能しません。 /usr/lib は、マシン上のすべてのデータベース・イン
スタンスに対して機能します。
関連タスク:
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
v 190 ページの『AIX での IBM COBOL コンパイラーの構成』
v 198 ページの『AIX での Micro Focus COBOL コンパイラーの構成』
IBM C
DB2 CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・
インターフェース ガイドおよびリファレンス 内にあります。
AIX での C アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
160
アプリケーションの構築および実行
ビルド・ファイル bldapp には、 DB2 アプリケーション・プログラムを作成するコマ
ンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースの置かれている
インスタンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.c から DB2 API 非組み込み SQL サンプル・プログラム
cli_info を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。
この実行可能ファイルを実行するには、ファイル名を入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqc から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
第 7 章 AIX
161
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 165 ページの『AIX での C ルーチンの作成』
関連資料:
v 163 ページの『AIX C アプリケーションのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldapp -- Builds AIX C application programs』
v 『cli_info.c -- Set and get information at the client level (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『tbmod.sqc -- How to modify table data (C)』
C アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds AIX C application programs
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
162
アプリケーションの構築および実行
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# If embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.c error-checking utility.
xlc $EXTRA_CFLAG -I$DB2PATH/include -c utilemb.c
else
# Compile the utilapi.c error-checking utility.
xlc $EXTRA_CFLAG -I$DB2PATH/include -c utilapi.c
fi
# Compile the program.
xlc $EXTRA_CFLAG -I$DB2PATH/include -c $1.c
if [ -f $1".sqc" ]
then
# Link the program with utilemb.o
xlc $EXTRA_CFLAG -o $1 $1.o utilemb.o -ldb2 -L$DB2PATH/lib
else
# Link the program with utilapi.o
xlc $EXTRA_CFLAG -o $1 $1.o utilapi.o -ldb2 -L$DB2PATH/lib
fi
AIX C アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、AIX IBM C コンパイラー
を使用して、 C 組み込み SQL および DB2 API アプリケーションを作成するのにお勧
めするコンパイルとリンクのオプションです。
第 7 章 AIX
163
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
xlc
IBM C コンパイラー。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。コンパイルとリンクは別個
のステップです。
リンク・オプション
xlc
コンパイラーをリンカーのフロントエンドとして使用します。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを含みます。
utilapi.o
組み込み SQL プログラムでない場合に、エラー・チェックを行う DB2 API
ユーティリティー・オブジェクト・ファイルを含みます。
-ldb2
DB2 ライブラリーとリンクします。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 160 ページの『AIX での C アプリケーションの作成』
関連資料:
v 169 ページの『AIX C ルーチンのコンパイルとリンクのオプション』
164
アプリケーションの構築および実行
関連サンプル:
v 『bldapp -- Builds AIX C application programs』
AIX での C ルーチンの作成
DB2 には、 C プログラムをコンパイルしてリンクするためのビルド・スクリプトが用
意されていて、このファイルを使用して作成できるサンプル・プログラムと一緒に
sqllib/samples/c ディレクトリーに置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーとユーザー定義関数)
を作成するためのコマンドが入っています。このスクリプトは、データベース・マネー
ジャーがロードできてしかもクライアント・アプリケーションから呼び出せるルーチン
を共用ライブラリー中でコンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqc からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・スクリプト名とプ
ログラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
スクリプトは、共用ライブラリーをサーバー上の sqllib/function というパスにコ
ピーします。
第 7 章 AIX
165
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。
spclient は、スクリプト bldapp を使用して構築することができます。
共用ライブラリーにアクセスするには、次のように入力してサンプル・クライアント・
アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.c から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプトは、 UDF を sqllib/function ディレクトリーにコピーします。
166
アプリケーションの構築および実行
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を構築できます。このプログラムの DB2 CLI および組み込み SQL バージョンが提供
されています。スクリプト bldapp を使用して、 sqllib/samples/cli 内のソース・フ
ァイル udfcli.c から DB2 CLI udfcli クライアント・プログラムを作成することがで
きます。
スクリプト bldapp を使用して、 sqllib/samples/c 内のソース・ファイル udfcli.sqc
から組み込み SQL udfcli クライアント・プログラムを作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqc から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプトは、 UDF を sqllib/function ディレクトリーにコピーします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を構築できます。スクリプト bldapp を使用して、 sqllib/samples/c 内のソ
ース・ファイル udfemcli.sqc から udfemcli クライアント・プログラムを作成するこ
とができます。
第 7 章 AIX
167
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 160 ページの『AIX での C アプリケーションの作成』
関連資料:
v 169 ページの『AIX C ルーチンのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldrtn -- Builds AIX C routines (stored procedures and UDFs)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spclient.sqc -- Call various stored procedures (C)』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
v 『spserver.sqc -- A variety of types of stored procedures (C)』
v 『udfcli.sqc -- Call a variety of types of user-defined functions (C)』
v 『udfemcli.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfemsrv.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
168
アプリケーションの構築および実行
v 『udfsrv.c -- Call a variety of types of user-defined functions (C)』
C ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds AIX C routines (stored procedures and UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2
fi
# Compile the program.
xlc_r $EXTRA_CFLAG -I$DB2PATH/include -c $1.c
# Link the program using the export file $1.exp,
xlc_r $EXTRA_CFLAG -qmkshrobj -o $1 $1.o -ldb2 -L$DB2PATH/lib -bE:$1.exp
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
AIX C ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、AIX IBM C コンパイラー
を使用して、 C ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成す
るのにお勧めするコンパイルとリンクのオプションです。
第 7 章 AIX
169
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
xlc_r
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、マルチスレ
ッド・バージョンの IBM C コンパイラーを使用してください。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。コンパイルとリンクは別個
のステップです。
リンク・オプション
xlc_r
リンカーのフロントエンドとしてマルチスレッド・バージョンのコンパイラー
を使用します。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-qmkshrobj
共用ライブラリーを作成します。
-o $1
出力ファイル名を指定します。
$1.o
オブジェクト・ファイルを指定します。
-ldb2
DB2 ライブラリーとリンクします。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-bE:$1.exp
エクスポート・ファイルを指定します。エクスポート・ファイルには、ルーチ
ンの一覧が入っています。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 165 ページの『AIX での C ルーチンの作成』
170
アプリケーションの構築および実行
関連資料:
v 163 ページの『AIX C アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds AIX C routines (stored procedures and UDFs)』
AIX での C マルチスレッド・アプリケーションの作成
AIX 上の C マルチスレッド・アプリケーションのコンパイルおよびリンクでは、 xlc
コンパイラーの代わりに xlc_r コンパイラーを、 C++ の場合は、 xlC コンパイラー
の代わりに xlC_r コンパイラーを使用する必要があります。 _r バージョンでは、マル
チスレッド用のコンパイルを定義している適当なプリプロセッサーが設定され、適当な
スレッド・ライブラリー名がリンカーに付けられます。
マルチスレッド・コンパイラーのフロントエンドを使用したコンパイラーおよびリン
ク・フラグの設定についてのさらに詳しい情報は、コンパイラーの資料を参照してくだ
さい。
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
sqllib/samples/c のスクリプト・ファイル bldmt には、組み込み SQL マルチスレッ
ド・プログラムを作成するためのコマンドが含まれています。第 1 パラメーター $1 に
は、ソース・ファイルの名前を指定します。 第 2 パラメーター $2 には、接続先のデ
ータベースの名前を指定します。パラメーター $3 はそのデータベースのユーザー ID
を、 $4 はデータベースのパスワードを指定します。第 1 パラメーター (ソース・ファ
イル名) だけが必須です。データベース名、ユーザー ID、およびパスワードは任意指定
です。データベース名を指定しない場合は、プログラムはデフォルトの sample データ
ベースを使用します。
xlc_r コンパイラーや、リンクされているユーティリティー・ファイルがないという点
だけでなく、コンパイルおよびリンク・オプションも、組み込み SQL スクリプト・フ
ァイル bldapp で使用されているものと同じです。
手順:
ソース・ファイル dbthrds.sqc からマルチスレッド・サンプル・プログラム dbthrds
を作成するには、
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次の実行可能ファイル名を入力します。
dbthrds
第 7 章 AIX
171
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 160 ページの『AIX での C アプリケーションの作成』
関連資料:
v 163 ページの『AIX C アプリケーションのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds AIX C multi-threaded applications』
v 『dbthrds.sqc -- How to use multiple context APIs on UNIX (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds AIX C multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# If embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
xlc_r $EXTRA_CFLAG -I$DB2PATH/include -c $1.c
# Link the program.
xlc_r $EXTRA_CFLAG -o $1 $1.o -L$DB2PATH/lib -ldb2
172
アプリケーションの構築および実行
VisualAge C++
AIX での C++ アプリケーションの作成
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
ビルド・ファイル bldapp には、 DB2 API と組み込み SQL アプリケーションを作成
するためのコマンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.C から非組み込み SQL サンプル・プログラム cli_info
を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。 sample データベースに対
してこの実行可能ファイルを実行するには、次のように入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqC から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
第 7 章 AIX
173
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 177 ページの『AIX での C++ ルーチンの作成』
関連資料:
v 175 ページの『AIX C++ アプリケーションのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldapp -- Builds AIX C++ applications』
v 『cli_info.C -- Set and get information at the client level (C++)』
v 『tbmod.sqC -- How to modify table data (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
174
アプリケーションの構築および実行
C++ アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds AIX C++ applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# If an embedded SQL program, precompile
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.C error-checking
xlC $EXTRA_CFLAG -I$DB2PATH/include -c
else
# Compile the utilapi.C error-checking
xlC $EXTRA_CFLAG -I$DB2PATH/include -c
fi
and bind it.
utility.
utilemb.C
utility.
utilapi.C
# Compile the program.
xlC $EXTRA_CFLAG -I$DB2PATH/include -c $1.C
if [ -f $1".sqC" ]
then
# Link the program with utilemb.o
xlC $EXTRA_CFLAG -o $1 $1.o utilemb.o -ldb2 -L$DB2PATH/lib
else
# Link the program with utilapi.o
xlC $EXTRA_CFLAG -o $1 $1.o utilapi.o -ldb2 -L$DB2PATH/lib
fi
AIX C++ アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、AIX IBM VisualAge C++
コンパイラーを使用して、 C++ 組み込み SQL および DB2 API アプリケーションを
作成するのにお勧めするコンパイルとリンクのオプションです。
第 7 章 AIX
175
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
xlC
VisualAge C++ コンパイラー。
EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。コンパイルとリンクは別個
のステップです。
リンク・オプション
xlC
コンパイラーをリンカーのフロントエンドとして使用します。
EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
utilapi.o
非組み込み SQL プログラムの場合に、 API ユーティリティー・オブジェク
ト・ファイルを含みます。
utilemb.o
組み込み SQL プログラムの場合に、組み込み SQL ユーティリティー・オブ
ジェクト・ファイルを含みます。
-ldb2
DB2 ライブラリーとリンクします。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 173 ページの『AIX での C++ アプリケーションの作成』
v 186 ページの『構成ファイルによる C++ 組み込み SQL アプリケーションの作成』
v 185 ページの『構成ファイルによる C++ DB2 API アプリケーションの作成』
176
アプリケーションの構築および実行
関連資料:
v 181 ページの『AIX C++ ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds AIX C++ applications』
AIX での C++ ルーチンの作成
DB2 には、 C++ プログラムをコンパイルしてリンクするためのビルド・スクリプトが
用意されていて、このファイルを使用して作成できるサンプル・プログラムと一緒に
sqllib/samples/cpp ディレクトリーに置かれています。
スクリプト・ファイル bldrtn には、ルーチンを作成するためのコマンドが入っていま
す。このスクリプト・ファイルは、データベース・マネージャーがロードできてしかも
クライアント・アプリケーションから呼び出せるルーチンを共用ライブラリー中でコン
パイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqC からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・スクリプト名とプ
ログラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
第 7 章 AIX
177
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function とい
うパスにコピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。spclient は、ス
クリプト・ファイル bldapp を使用して構築することができます。
共用ライブラリーにアクセスするには、次のように入力してサンプル・クライアント・
アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.C から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
178
アプリケーションの構築および実行
必要であれば、UDF にファイル・モードを設定してデータベース・マネージャーからア
クセスできるようにします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。スクリプト・ファイル bldapp を使用して、ソース・ファ
イル udfcli.sqC から udfcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqC から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト・ファイル bldapp を使用して、ソー
ス・ファイル udfemcli.sqC から udfemcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
第 7 章 AIX
179
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 173 ページの『AIX での C++ アプリケーションの作成』
関連資料:
v 181 ページの『AIX C++ ルーチンのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldrtn -- Builds AIX C++ routines (stored procedures and UDFs)』
v 『spclient.sqC -- Call various stored procedures (C++)』
v 『spserver.sqC -- A variety of types of stored procedures (C++)』
v 『udfcli.sqC -- Call a variety of types of user-defined functions (C++)』
v 『udfemcli.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfemsrv.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfsrv.C -- Call a variety of types of user-defined functions (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
180
アプリケーションの構築および実行
C++ ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds AIX C++ routines (stored procedures and UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2
fi
# Compile the program.
xlC_r $EXTRA_CFLAG -I$DB2PATH/include -c $1.C
# Link using export file $1.exp, creating shared library $1
xlC_r $EXTRA_CFLAG -qmkshrobj -o $1 $1.o -L$DB2PATH/lib -ldb2 -bE $1.exp
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
AIX C++ ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、AIX VisualAge C++ コン
パイラーを使用して、 C++ ルーチン (ストアード・プロシージャーとユーザー定義関
数) を作成するのにお勧めするコンパイルとリンクのオプションです。
第 7 章 AIX
181
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
xlC_r
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じたマルチスレッ
ド・バージョンの IBM VisualAge C++ コンパイラー。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。コンパイルとリンクは別個
のステップです。
リンク・オプション
xlC_r
リンカーのフロントエンドとしてマルチスレッド・バージョンのコンパイラー
を使用します。
$EXTRA_CFLAG
’BUILD_64BIT=true’ がコメント解除されている場合に、 ″-q64″ の値を含み
ます。それ以外の場合は、値を含みません。
-qmkshrobj
共有ライブラリーを生成します。
-o $1
出力を、共有ライブラリー・ファイルとして指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-L$DB2PATH/lib
DB2 ランタイム共有ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
DB2 ライブラリーとリンクします。
-bE $1.exp
エクスポート・ファイルを指定します。エクスポート・ファイルには、ルーチ
ンの一覧が入っています。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 165 ページの『AIX での C ルーチンの作成』
182
アプリケーションの構築および実行
v 187 ページの『構成ファイルによる C++ ストアード・プロシージャーの作成』
v 189 ページの『構成ファイルによる C++ ユーザー定義関数の作成』
関連資料:
v 175 ページの『AIX C++ アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds AIX C++ routines (stored procedures and UDFs)』
AIX での C++ マルチスレッド・アプリケーションの作成
AIX 上の C++ マルチスレッド・アプリケーションのコンパイルおよびリンクでは、
xlc コンパイラーの代わりに xlc_r コンパイラーを、 C の場合は、 xlC コンパイラ
ーの代わりに xlC_r コンパイラーを使用する必要があります。 _r バージョンでは、マ
ルチスレッド用のコンパイルを定義している適当なプリプロセッサーが設定され、適当
なスレッド・ライブラリー名がリンカーに付けられます。
マルチスレッド・コンパイラーのフロントエンドを使用したコンパイラーおよびリン
ク・フラグの設定についてのさらに詳しい情報は、コンパイラーの資料を参照してくだ
さい。
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
スクリプト bldmt には、マルチスレッド・アプリケーションを作成するためのコマンド
が入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。パラメーター $3 はそのデー
タベースのユーザー ID を、 $4 はデータベースのパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
上記の xlC_r コンパイラーや、リンクされているユーティリティー・ファイルがないと
いう点だけでなく、コンパイルおよびリンク・オプションも、組み込み SQL スクリプ
ト・ファイル bldapp で使用されているものと同じです。
手順:
ソース・ファイル dbthrds.sqC からマルチスレッド・サンプル・プログラム dbthrds
を作成するには、次のように入力します。
bldmt dbthrds
第 7 章 AIX
183
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次の実行可能ファイル名を入力します。
dbthrds
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 173 ページの『AIX での C++ アプリケーションの作成』
関連資料:
v 175 ページの『AIX C++ アプリケーションのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds AIX C++ multi-threaded applications』
v 『dbthrds.sqC -- How to use multiple context APIs on UNIX (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds AIX C++ multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Precompile and bind the program.
./embprep $1 $2 $3 $4
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG=-q64
else
EXTRA_CFLAG=
fi
# Compile the program.
xlC_r $EXTRA_CFLAG -I$DB2PATH/include -c $1.C
# Link the program.
xlC_r $EXTRA_CFLAG -o $1 $1.o -L$DB2PATH/lib -ldb2
184
アプリケーションの構築および実行
VisualAge C++ 構成ファイル
注: CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・イ
ンターフェース ガイドおよびリファレンス 内にあります。
構成ファイルによる VisualAge C++ プログラムの作成
VisualAge C++ バージョン 5.0 には、増分コンパイラーとバッチ・モード・コンパイラ
ーの両方が装備されています。バッチ・モード・コンパイラーは makefile とビルド・フ
ァイルを使用するのに対して、増分コンパイラーは構成ファイルを使用します。これに
関して詳しく知りたい場合は、VisualAge C++ バージョン 5.0 に添付されている資料を
参照してください。
DB2 は、 VisualAge C++ コンパイラーで作成できるさまざまなタイプの DB2 プログ
ラム用の構成ファイルを提供します。
手順:
DB2 構成ファイルを使用するためには、まず、コンパイルするプログラム名に合わせて
環境変数を設定します。次に、VisualAge C++ が提供しているコマンドを使用して、プ
ログラムをコンパイルします。以下のトピックに、DB2 に用意されている構成ファイル
を使用して各種のプログラムをコンパイルする方法が説明されています。
v 構成ファイルによる C++ 組み込み SQL アプリケーションの作成
v 構成ファイルによる C++ DB2 API アプリケーションの作成
v 構成ファイルによる C++ ストアード・プロシージャーの作成
v 構成ファイルによる C++ ユーザー定義関数の作成
関連タスク:
v 186 ページの『構成ファイルによる C++ 組み込み SQL アプリケーションの作成』
v 185 ページの『構成ファイルによる C++ DB2 API アプリケーションの作成』
v 187 ページの『構成ファイルによる C++ ストアード・プロシージャーの作成』
v 189 ページの『構成ファイルによる C++ ユーザー定義関数の作成』
v 160 ページの『AIX での C アプリケーションの作成』
v 165 ページの『AIX での C ルーチンの作成』
v 173 ページの『AIX での C++ アプリケーションの作成』
v 177 ページの『AIX での C++ ルーチンの作成』
構成ファイルによる C++ DB2 API アプリケーションの作成
sqllib/samples/c と sqllib/samples/cpp の中の構成ファイル api.icc を使用すれ
ば、 AIX 上で C または C++ の DB2 API プログラムを作成することができます。
第 7 章 AIX
185
手順:
構成ファイルを使用して、ソース・ファイル cli_info.c から DB2 API サンプル・プ
ログラム cli_info を作成するには、以下のようにします。
1. 次のように入力して、API 環境変数をプログラム名に設定します。
v bash または Korn シェルの場合
export API=cli_info
v C シェルの場合
setenv API cli_info
2. api.icc ファイルを使用して異なるプログラムを作成することによって生成された
api.ics ファイルが作業ディレクトリーにある場合は、次のコマンドで api.ics フ
ァイルを削除してください。
rm api.ics
既存の api.ics ファイルが、再構築するその同じプログラム用に生成されているの
であれば、削除する必要はありません。
3. サンプル・プログラムを以下のように入力してコンパイルします。
vacbld api.icc
注: vacbld コマンドは、 VisualAge C++ で提供されます。
結果として、実行可能ファイル cli_info が作成されます。 この実行可能ファイルを実
行するには、次の実行可能ファイル名を入力します。
cli_info
関連タスク:
v 186 ページの『構成ファイルによる C++ 組み込み SQL アプリケーションの作成』
v 187 ページの『構成ファイルによる C++ ストアード・プロシージャーの作成』
v 189 ページの『構成ファイルによる C++ ユーザー定義関数の作成』
構成ファイルによる C++ 組み込み SQL アプリケーションの作成
sqllib/samples/c と sqllib/samples/cpp の中の構成ファイル emb.icc を使用すれ
ば、 AIX 上で C および C++ の DB2 組み込み SQL アプリケーションを作成するこ
とができます。
手順:
構成ファイルを使用してソース・ファイル tbmod.sqc から組み込み SQL アプリケーシ
ョン tbmod を作成するには、次のようにします。
1. 次のように入力して、EMB 環境変数をプログラム名に設定します。
186
アプリケーションの構築および実行
v bash または Korn シェルの場合
export EMB=tbmod
v C シェルの場合
setenv EMB tbmod
2. emb.icc ファイルを使用して異なるプログラムを作成することによって生成された
emb.ics ファイルが作業ディレクトリーにある場合は、次のコマンドで emb.ics フ
ァイルを削除してください。
rm emb.ics
既存の emb.ics ファイルが、再構築するその同じプログラム用に生成されているの
であれば、削除する必要はありません。
3. サンプル・プログラムを以下のように入力してコンパイルします。
vacbld emb.icc
注: vacbld コマンドは、 VisualAge C++ で提供されます。
結果として、実行可能ファイル tbmod が作成されます。 この実行可能ファイルを実行
するには、次の実行可能ファイル名を入力します。
tbmod
関連タスク:
v 185 ページの『構成ファイルによる C++ DB2 API アプリケーションの作成』
v 187 ページの『構成ファイルによる C++ ストアード・プロシージャーの作成』
v 189 ページの『構成ファイルによる C++ ユーザー定義関数の作成』
構成ファイルによる C++ ストアード・プロシージャーの作成
sqllib/samples/c と sqllib/samples/cpp の中の構成ファイル stp.icc を使用すれ
ば、 AIX 上で C および C++ の DB2 組み込み SQL ストアード・プロシージャーを
作成することができます。
手順:
構成ファイルを使用して、ソース・ファイル spserver.sqc から組み込み SQL ストア
ード・プロシージャー spserver を作成するには、以下のようにします。
1. 次のように入力して、STP 環境変数をプログラム名に設定します。
v bash または Korn シェルの場合
export STP=spserver
v C シェルの場合
setenv STP spserver
第 7 章 AIX
187
2. stp.icc を使用して異なるプログラムを作成することによって生成された stp.ics
ファイルが作業ディレクトリーにある場合は、次のコマンドで stp.ics ファイルを
削除してください。
rm stp.ics
既存の stp.ics ファイルが、再構築するその同じプログラム用に生成されているの
であれば、削除する必要はありません。
3. サンプル・プログラムを以下のように入力してコンパイルします。
vacbld stp.icc
注: vacbld コマンドは、 VisualAge C++ で提供されます。
このストアード・プロシージャーの共用ライブラリーは、パス sqllib/function のサー
バーにコピーされます。
次に、次のようにサーバーで spcat スクリプトを実行してストアード・プロシージャー
をカタログします。
spcat
このスクリプトは、サンプル・データベースに接続し、ストアード・プロシージャーが
すでにカタログ済みであれば spdrop.db2 を呼び出してそれをアンカタログし、次に
spcreate.db2 を呼び出してそのストアード・プロシージャーをカタログし、そして最後
にデータベースへの接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2
スクリプトは、個別に実行することもできます。
カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライブ
ラリーが認識されるようにします。必要であれば、共用ライブラリーにファイル・モー
ドを設定して、 DB2 インスタンスからアクセスできるようにします。
ストアード・プロシージャーの共用ライブラリー spserver を作成し終わったら、その
中のストアード・プロシージャーを呼び出すクライアント・アプリケーション spclient
を作成することができます。 spclient は、構成ファイル emb.icc を使用して構築する
ことができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample またはそのリモート別名、
あるいはその他の名前にすることができます。
188
アプリケーションの構築および実行
userid 有効なユーザー ID です。
password
有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
関連タスク:
v 186 ページの『構成ファイルによる C++ 組み込み SQL アプリケーションの作成』
v 185 ページの『構成ファイルによる C++ DB2 API アプリケーションの作成』
v 189 ページの『構成ファイルによる C++ ユーザー定義関数の作成』
構成ファイルによる C++ ユーザー定義関数の作成
sqllib/samples/c と sqllib/samples/cpp の中の構成ファイル udf.icc を使用すれ
ば、 AIX 上で C および C++ のユーザー定義関数を作成することができます。
手順:
構成ファイルを使用して、ソース・ファイル udfsrv.c からユーザー定義関数プログラ
ム udfsrv を作成するには、以下のようにします。
1. 次のように入力して、UDF 環境変数をプログラム名に設定します。
v bash または Korn シェルの場合
export UDF=udfsrv
v C シェルの場合
setenv UDF udfsrv
2. udf.icc ファイルを使用して異なるプログラムを作成することによって生成された
udf.ics ファイルが作業ディレクトリーにある場合は、次のコマンドで udf.ics フ
ァイルを削除してください。
rm udf.ics
既存の udf.ics ファイルが、再構築するその同じプログラム用に生成されているの
であれば、削除する必要はありません。
3. サンプル・プログラムを以下のように入力してコンパイルします。
vacbld udf.icc
注: vacbld コマンドは、 VisualAge C++ で提供されます。
UDF ライブラリーは、サーバー上の sqllib/function というパスにコピーされます。
第 7 章 AIX
189
必要であれば、ユーザー定義関数にファイル・モードを設定して DB2 インスタンスが
それを実行できるようにしてください。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。 このプログラムの DB2 CLI および組み込み SQL バージ
ョンが提供されています。
構成ファイル cli.icc を使用して、 sqllib/samples/cli 内のソース・ファイル
udfcli.c から DB2 CLI udfcli プログラムを作成することができます。
構成ファイル emb.icc を使用して、 sqllib/samples/c 内のソース・ファイル
udfcli.sqc から組み込み SQL udfcli プログラムを作成することができます。
UDF を呼び出すには、次の実行可能ファイル名を入力して、サンプルの呼び出しアプリ
ケーションを実行します。
udfcli
この呼び出しアプリケーションは、 udfsrv ライブラリーから ScalarUDF 関数を呼び出
します。
関連タスク:
v 186 ページの『構成ファイルによる C++ 組み込み SQL アプリケーションの作成』
v 185 ページの『構成ファイルによる C++ DB2 API アプリケーションの作成』
v 187 ページの『構成ファイルによる C++ ストアード・プロシージャーの作成』
IBM COBOL Set for AIX
AIX での IBM COBOL コンパイラーの構成
組み込み SQL および DB2 API 呼び出しの入ったアプリケーションを開発する場合
に、 IBM COBOL Set for AIX コンパイラーを使用していれば、以下のステップを行う
必要があります。
手順:
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target ibmcob オプションを使用してください。
v ソース・ファイルの中でタブ文字を使用しないでください。
v コンパイル・オプションを設定するためには、ソース・ファイルの 1 行目で
PROCESS および CBL キーワードを使うことができます。
190
アプリケーションの構築および実行
v アプリケーションに組み込み SQL のみが含まれていて、 DB2 API 呼び出しは含ま
れない場合には、 pgmname(mixed) コンパイル・オプションを使う必要はありませ
ん。 DB2 API 呼び出しを使用する場合には、 pgmname(mixed) コンパイル・オプシ
ョンを使う必要があります。
v IBM COBOL Set for AIX コンパイラーの「システム/390 ホスト・データ・タイプ・
サポート」機能を使用している場合、アプリケーション用の DB2 組み込みファイル
は、次のディレクトリー中にあります。
$HOME/sqllib/include/cobol_i
提供されたスクリプト・ファイルを使用して DB2 サンプル・プログラムを作成して
いる場合、スクリプト・ファイルで指定された組み込みファイルのパスは、 cobol_a
ディレクトリーではなく、 cobol_i ディレクトリーを指すように変更しなければな
りません。
IBM COBOL Set for AIX コンパイラーの「システム/390 ホスト・データ・タイプ・
サポート」機能を使用していない場合、またはこのコンパイラーのそれよりも前のバ
ージョンを使用している場合、アプリケーション用の DB2 組み込みファイルは、次
のディレクトリー中にあります。
$HOME/sqllib/include/cobol_a
次のように、COPY ファイル名を .cbl 拡張子を含めて指定します。
COPY "sql.cbl".
関連概念:
v 160 ページの『AIX での COBOL のインストールに関する考慮事項』
関連タスク:
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
v 191 ページの『AIX での IBM COBOL アプリケーションの作成』
v 195 ページの『AIX での IBM COBOL ルーチンの作成』
AIX での IBM COBOL アプリケーションの作成
DB2 には、 COBOL 組み込み SQL と DB2 API プログラムをコンパイルしてリンク
するためのビルド・スクリプトが用意されていて、このファイルを使用して作成できる
サンプル・プログラムと一緒に sqllib/samples/cobol ディレクトリーに置かれていま
す。
ビルド・ファイル bldapp には、 DB2 アプリケーション・プログラムを作成するため
のコマンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
第 7 章 AIX
191
ラムを作成するためにはデータベースへの接続が必要なため、オプションとして 3 つの
パラメーターが用意されています。 2 番目のパラメーターは $2 で、接続するデータベ
ースの名前を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが $4 で、データベースのパスワードを指定しま
す。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client ができます。 sample データベースに対してこ
の実行可能ファイルを実行するには、次のように入力します。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp updat
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp updat database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
updat
192
アプリケーションの構築および実行
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
updat database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
updat database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 195 ページの『AIX での IBM COBOL ルーチンの作成』
関連資料:
v 194 ページの『AIX IBM COBOL アプリケーションのコンパイルとリンクのオプシ
ョン』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp -- Builds AIX COBOL applications』
v 『client.cbl -- How to set and query a client (IBM COBOL)』
v 『embprep -- To prep and bind a COBOL embedded SQL sample on AIX』
v 『updat.sqb -- How to update, delete and insert table data (IBM COBOL)』
IBM COBOL アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds AIX COBOL applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the checkerr.cbl error checking utility.
cob2 -qpgmname¥(mixed¥) -qlib -I$DB2PATH/include/cobol_a ¥
-c checkerr.cbl
# Compile the program.
cob2 -qpgmname¥(mixed¥) -qlib -I$DB2PATH/include/cobol_a ¥
第 7 章 AIX
193
-c $1.cbl
# Link the program.
cob2 -o $1 $1.o checkerr.o -L$DB2PATH/lib -ldb2
AIX IBM COBOL アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、AIX IBM COBOL Set コ
ンパイラーを使用して、 COBOL 組み込み SQL および DB2 API アプリケーションを
作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cob2
IBM COBOL Set コンパイラー。
-qpgmname¥(mixed¥)
コンパイラーに、大文字小文字混合の名前を持つライブラリーのエントリー・
ポイントの CALL を許可するように指示します。
-qlib
コンパイラーに COPY ステートメントを処理するように指示します。
-I$DB2PATH/include/cobol_a
DB2 組み込みファイルのロケーションを指定します。たとえば、
$HOME/sqllib/include/cobol_a。
-c
コンパイルのみを実行し、リンクは実行しません。コンパイルとリンクは別個
のステップです。
リンク・オプション
cob2
コンパイラーをリンカーのフロントエンドとして使用します。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
checkerr.o
エラー・チェック用のユーティリティー・オブジェクト・ファイルを組み込み
ます。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
データベース・マネージャー・ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
194
アプリケーションの構築および実行
v 191 ページの『AIX での IBM COBOL アプリケーションの作成』
関連資料:
v 197 ページの『AIX IBM COBOL ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds AIX COBOL applications』
AIX での IBM COBOL ルーチンの作成
DB2 には、 COBOL 組み込み SQL と DB2 API プログラムをコンパイルしてリンク
するためのビルド・スクリプトが用意されていて、このファイルを使用して作成できる
サンプル・プログラムと一緒に sqllib/samples/cobol ディレクトリーに置かれていま
す。
sqllib/samples/cobol にあるスクリプト・ファイル bldrtn には、ルーチン (ストアー
ド・プロシージャー) を作成するためのコマンドが入っています。このスクリプトは、
クライアント・アプリケーションから呼び出せるルーチンを共用ライブラリーの中でコ
ンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。共用ライブラリーは、データ
ベースが置かれているのと同じインスタンス上に作成する必要があるため、ユーザー ID
やパスワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。スクリプトは、ソー
ス・ファイル名 $1 を共用ライブラリー名として使用します。 データベース名は任意で
指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。
手順:
サンプル・データベースに接続している場合、ソース・ファイル outsrv.sqb からサン
プル・プログラム outsrv を作成するには、次のように入力します。
bldrtn outsrv
他のデータベースに接続しているときは、さらにデータベース名も含めます。
bldrtn outsrv database
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function というパ
スにコピーします。
第 7 章 AIX
195
ルーチンの共用ライブラリー outsrv を作成し終わったら、クライアント・アプリケー
ション outcli を作成することができます。これは、ライブラリー内のルーチンを呼び
出すアプリケーションです。 outcli は、スクリプト・ファイル bldapp を使用して構
築することができます。
ルーチンを呼び出すには、次のように入力してサンプル・クライアント・アプリケーシ
ョンを実行します。
outcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample またはそのリモート別名、
あるいはその他の名前にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー outsrv にアクセスし、同一名の
ルーチンをサーバー・データベース上で実行します。この出力は、クライアント・アプ
リケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 191 ページの『AIX での IBM COBOL アプリケーションの作成』
関連資料:
v 197 ページの『AIX IBM COBOL ルーチンのコンパイルとリンクのオプション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn -- Builds AIX COBOL routines (stored procedures)』
v 『embprep -- To prep and bind a COBOL embedded SQL sample on AIX』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (IBM COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (IBM
COBOL)』
IBM COBOL ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds AIX COBOL routines (stored procedures)
196
アプリケーションの構築および実行
# Usage:
bldrtn <program_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Precompile and bind the program.
./embprep $1 $2
# Compile the checkerr.cbl error checking utility.
cob2 -qpgmname¥(mixed¥) -qlib -I$DB2PATH/include/cobol_a ¥
-c checkerr.cbl
# Compile the program.
cob2 -qpgmname¥(mixed¥) -qlib -c -I$DB2PATH/include/cobol_a $1.cbl
# Link the program creating shared library $1 with export file $1.exp
cob2 -o $1 $1.o checkerr.o -bnoentry -bE:$1.exp ¥
-L$DB2PATH/lib -ldb2
# Copy the shared library to the sqllib/function directory of the DB2 instance.
# This assumes the user has write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
AIX IBM COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、AIX 上で IBM COBOL
Set コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシージャー) を作
成するのにお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cob2
IBM COBOL Set コンパイラー。
-qpgmname¥(mixed¥)
コンパイラーに、大文字小文字混合の名前を持つライブラリーのエントリー・
ポイントの CALL を許可するように指示します。
-qlib
コンパイラーに COPY ステートメントを処理するように指示します。
-c
コンパイルのみを実行し、リンクは実行しません。本書では、コンパイルとリ
ンクが別個のステップであることを前提としています。
-I$DB2PATH/include/cobol_a
DB2 組み込みファイルのロケーションを指定します。たとえば、
$HOME/sqllib/include/cobol_a。
第 7 章 AIX
197
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
cob2
リンク・エディットをするコンパイラーを使用します。
-o $1
出力を、共有ライブラリー・ファイルとして指定します。
$1.o
ストアード・プロシージャー・オブジェクト・ファイルを指定します。
checkerr.o
エラー・チェック用のユーティリティー・オブジェクト・ファイルを組み込み
ます。
-bnoentry
共有ライブラリーへのデフォルトのエントリー・ポイントを指定しません。
-bE:$1.exp
エクスポート・ファイルを指定します。エクスポート・ファイルには、ストア
ード・プロシージャーのリストが含まれています。
-L$DB2PATH/lib
DB2 ランタイム共有ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
データベース・マネージャー・ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 195 ページの『AIX での IBM COBOL ルーチンの作成』
関連資料:
v 194 ページの『AIX IBM COBOL アプリケーションのコンパイルとリンクのオプシ
ョン』
関連サンプル:
v 『bldrtn -- Builds AIX COBOL routines (stored procedures)』
Micro Focus COBOL
AIX での Micro Focus COBOL コンパイラーの構成
Micro Focus COBOL コンパイラーを使用して、組み込み SQL および DB2 API 呼び
出しの入ったアプリケーションを開発する場合は、次のようにします。
手順:
198
アプリケーションの構築および実行
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target mfcob オプションを使用してください。
v DB2 COBOL COPY ファイル・ディレクトリーを、 Micro Focus COBOL 環境変数
COBCPY に含める必要があります。 COBCPY 環境変数は、 COPY ファイルのロケ
ーションを指定します。 Micro Focus COBOL 用の DB2 COPY ファイルは、データ
ベース・インスタンス・ディレクトリーの下にある sqllib/include/cobol_mf にあ
ります。
このディレクトリーを含めるには、次のように入力します。
– bash または korn シェルの場合
export COBCPY=$COBCPY:$HOME/sqllib/include/cobol_mf
– C シェルの場合
setenv COBCPY $COBCPY:$HOME/sqllib/include/cobol_mf
注: COBCPY を .profile または .login ファイル中に設定することもできます。
関連概念:
v 160 ページの『AIX での COBOL のインストールに関する考慮事項』
関連タスク:
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
v 199 ページの『AIX での Micro Focus COBOL アプリケーションの作成』
v 203 ページの『AIX での Micro Focus COBOL ルーチンの作成』
AIX での Micro Focus COBOL アプリケーションの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
ビルド・ファイル bldapp には、 DB2 アプリケーション・プログラムを作成するため
のコマンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、オプションとして 3 つの
パラメーターが用意されています。 2 番目のパラメーターは $2 で、接続するデータベ
ースの名前を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが $4 で、データベースのパスワードを指定しま
す。
第 7 章 AIX
199
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client ができます。 sample データベースに対してこ
の実行可能ファイルを実行するには、次のように入力します。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp updat
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp updat database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
updat
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
updat database
200
アプリケーションの構築および実行
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
updat database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 203 ページの『AIX での Micro Focus COBOL ルーチンの作成』
関連資料:
v 202 ページの『AIX Micro Focus COBOL アプリケーションのコンパイルとリンクの
オプション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp -- Builds AIX Micro Focus COBOL applications』
v 『client.cbl -- How to set and query a client (MF COBOL)』
v 『updat.sqb -- How to update, delete and insert table data (MF COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds AIX Micro Focus COBOL applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
embprep $1 $2 $3 $4
fi
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
# Compile the checkerr.cbl error checking utility.
cob -c -x checkerr.cbl
# Compile the program.
cob -c -x $1.cbl
第 7 章 AIX
201
# Link the program.
cob -x -o $1 $1.o checkerr.o -L$DB2PATH/lib -ldb2 -ldb2gmf
AIX Micro Focus COBOL アプリケーションのコンパイルとリンクのオプシ
ョン
以下は、bldapp ビルド・スクリプトに示されているように、AIX 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL 組み込み SQL および DB2 API アプリケ
ーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cob
COBOL コンパイラー。
-c
コンパイルのみを実行し、リンクは実行しません。
-x
-c と一緒に使用すると、オブジェクト・ファイルが作成されます。
リンク・オプション
cob
コンパイラーをリンカーのフロントエンドとして使用します。
-x
実行可能プログラムを作成します。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
DB2 ライブラリーとリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 199 ページの『AIX での Micro Focus COBOL アプリケーションの作成』
関連資料:
v 205 ページの『AIX Micro Focus COBOL ルーチンのコンパイルとリンクのオプショ
ン』
関連サンプル:
202
アプリケーションの構築および実行
v 『bldapp -- Builds AIX Micro Focus COBOL applications』
AIX での Micro Focus COBOL ルーチンの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャー) を作成するための
コマンドが入っています。このスクリプトは、クライアント・アプリケーションから呼
び出せるルーチンのソース・ファイルを共用ライブラリーの中でコンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。スクリプトは、そ
のソース・ファイル名を共用ライブラリー名として使用します。 第 2 パラメーター $2
には、接続先のデータベースの名前を指定します。共用ライブラリーは、データベース
が置かれているのと同じインスタンス上で作成する必要があるため、ユーザー ID やパ
スワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。データベース名は任意
で指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。
手順:
サンプル・データベースに接続している場合、ソース・ファイル outsrv.sqb からサン
プル・プログラム outsrv を作成するには、次のように入力します。
bldrtn outsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn outsrv database
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function というパ
スにコピーします。
ストアード・プロシージャー outsrv を構築してしまえば、そのストアード・プロシー
ジャーを呼び出すクライアント・アプリケーション outcli を構築できます。outcli
は、スクリプト・ファイル bldapp を使用して構築することができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
outcli database userid password
ここで、
第 7 章 AIX
203
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー outsrv にアクセスし、ストアー
ド・プロシージャー関数をサーバー・データベース上で実行します。出力は、クライア
ント・アプリケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連タスク:
v 199 ページの『AIX での Micro Focus COBOL アプリケーションの作成』
関連資料:
v 205 ページの『AIX Micro Focus COBOL ルーチンのコンパイルとリンクのオプショ
ン』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn -- Builds AIX Micro Focus COBOL routines (stored procedures)』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (MF COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (MF
COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds AIX Micro Focus COBOL routines (stored procedures)
# Usage: bldrtn <program_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Precompile and bind the program.
./embprep $1 $2
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
204
アプリケーションの構築および実行
# Compile the program.
cob -c -x $1.cbl
# Link the program.
cob -x -o $1 $1.o -Q -bnoentry ¥
-Q -bI:$DB2PATH/lib/db2g.imp -L$DB2PATH/lib -ldb2 -ldb2gmf
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
AIX Micro Focus COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、AIX 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシージャー)
を作成するのにお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cob
COBOL コンパイラー。
-c
コンパイルのみを実行し、リンクは実行しません。本書では、コンパイルとリ
ンクが別個のステップであることを前提としています。
-x
-c オプションと一緒に使用すると、オブジェクト・モジュールへとコンパイ
ルします。
第 7 章 AIX
205
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
cob
コンパイラーをリンカーのフロントエンドとして使用します。
-x
共用ライブラリーを作成します。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-Q -bnoentry
共用ライブラリーへのデフォルトのエントリー・ポイントを指定しません。
-Q -bI:$DB2PATH/lib/db2g.imp
DB2 アプリケーション・ライブラリーへのエントリー・ポイントのリストを
提供します。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
DB2 ライブラリーとリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 203 ページの『AIX での Micro Focus COBOL ルーチンの作成』
関連資料:
v 202 ページの『AIX Micro Focus COBOL アプリケーションのコンパイルとリンクの
オプション』
関連サンプル:
v 『bldrtn -- Builds AIX Micro Focus COBOL routines (stored procedures)』
REXX
AIX での REXX アプリケーションの作成
以下に、 AIX 上で REXX アプリケーションを作成する方法を示してあります。 DB2
(AIX 版) では、オブジェクト REXX 以外に従来の REXX もサポートされます。オブ
206
アプリケーションの構築および実行
ジェクト REXX は、オブジェクト指向バージョンの REXX 言語です。オブジェクト指
向の拡張子が従来の REXX に追加されていますが、既存の関数および命令には変更は
ありません。 オブジェクト REXX インタープリターは、以下のサポートが加えられ、
前のバージョンの拡張バージョンとなっています。
v クラス、オブジェクト、およびメソッド
v メッセージ交換およびポリモアフィズム
v 単一および複数継承
オブジェクト REXX は、従来の REXX と完全な互換性があります。この節で REXX
と述べる場合は、オブジェクト REXX を含むすべての REXX のバージョンのことを言
います。
REXX プログラムはプリコンパイルまたはバインドしません。
手順:
AIX 上で DB2 REXX/SQL プログラムを実行するには、 DB2 インストール・ディレク
トリーの下に lib を組み込むように、 LIBPATH 環境変数を設定する必要があります。
bash または korn シェルの場合、以下を入力します。
export LIBPATH=$LIBPATH:/lib:/usr/lib:/usr/opt/db2_08_01/lib
C シェルの場合、以下を入力します。
setenv LIBPATH $LIBPATH:/lib:/usr/lib:/usr/opt/db2_08_01/lib
AIX 上で、アプリケーション・ファイルには、任意のファイル拡張子を付けることがで
きます。アプリケーションは、次の 2 つの方法で実行することができます。
1. シェル・コマンド・プロンプトで、rexx name と入力します。ただし name は
REXX プログラムの名前 (拡張子があればそれも付けます) です。
2. REXX プログラムの最初の行に「マジック・ナンバー」(#!) が含まれており、それ
が REXX/6000 インタープリターの常駐するディレクトリーを識別する場合は、シェ
ル・コマンド・プロンプトでその名前を入力すれば、 REXX プログラムを実行する
ことができます。たとえば、 REXX/6000 インタープリター・ファイルが /usr/bin
ディレクトリーにある場合は、次の行を、REXX プログラムの最初の行として組み
込みます。
#! /usr/bin/rexx
そうすれば、シェル・コマンド・プロンプトで次のコマンドを入力することによっ
て、プログラムを実行可能にできます。
chmod +x name
シェル・コマンド・プロンプトでファイル名を入力することによって、 REXX プロ
グラムを実行します。
第 7 章 AIX
207
REXX サンプル・プログラムは、 sqllib/samples/rexx ディレクトリーにあります。
サンプル REXX プログラム updat.cmd を実行するには、次のように入力します。
updat.cmd
関連タスク:
v 25 ページの『UNIX アプリケーション開発環境のセットアップ』
関連資料:
v 96 ページの『REXX のサンプル』
208
アプリケーションの構築および実行
第 8 章 HP-UX
HP-UX C . . . . . . . . . . . .
HP-UX での C アプリケーションの作成
C アプリケーションの構築スクリプト
HP-UX C アプリケーションのコンパイル
とリンクのオプション . . . . . . .
HP-UX での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
HP-UX C ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
HP-UX での C マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
HP-UX C++ . . . . . . . . . . . .
HP-UX での C++ アプリケーションの作
成 . . . . . . . . . . . . . .
C++ アプリケーションの構築スクリプト
HP-UX C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
HP-UX での C++ ルーチンの作成 . . .
C++ ルーチンの構築スクリプト . . . .
209
209
211
212
215
218
219
221
222
223
223
225
226
228
231
HP-UX C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
HP-UX での C++ マルチスレッド・アプ
リケーションの作成 . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
Micro Focus COBOL . . . . . . . . .
HP-UX での Micro Focus COBOL コンパ
イラーの構成 . . . . . . . . . .
HP-UX での Micro Focus COBOL アプリ
ケーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
HP-UX Micro Focus COBOL アプリケー
ションのコンパイルとリンクのオプション
HP-UX での Micro Focus COBOL ルーチ
ンの作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
HP-UX Micro Focus COBOL ルーチンの
コンパイルとリンクのオプション . . .
232
234
235
236
236
238
239
240
241
243
244
この章では、HP-UX で DB2 アプリケーションを構築するための詳細な情報を提供しま
す。 HP-UX 環境での DB2 アプリケーション開発の最新の更新事項については、次の
DB2 アプリケーション開発 Web ページを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
HP-UX C
DB2 CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・
インターフェース ガイドおよびリファレンス 内にあります。
HP-UX での C アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
ビルド・スクリプト bldapp には、 DB2 アプリケーション・プログラムを作成するコ
マンドが入っています。
© Copyright IBM Corp. 1993 - 2002
209
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.c から DB2 API 非組み込み SQL サンプル・プログラム
cli_info を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。
この実行可能ファイルを実行するには、ファイル名を入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqc から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
210
アプリケーションの構築および実行
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 212 ページの『HP-UX C アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds HP-UX C applications』
v 『cli_info.c -- Set and get information at the client level (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『tbmod.sqc -- How to modify table data (C)』
C アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds HP-UX C applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
EXTRA_CFLAG="+DAportable"
fi
第 8 章 HP-UX
211
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.c error-checking utility.
cc $EXTRA_CFLAG -Ae -I$DB2PATH/include -c utilemb.c
else
# Compile the utilapi.c error-checking utility.
cc $EXTRA_CFLAG -Ae -I$DB2PATH/include -c utilapi.c
fi
# Compile the program.
cc $EXTRA_CFLAG -Ae -I$DB2PATH/include -c $1.c
if [ -f $1".sqc" ]
then
# Link the program with
cc $EXTRA_CFLAG -o $1
else
# Link the program with
cc $EXTRA_CFLAG -o $1
fi
utilemb.o.
$1.o utilemb.o -L$DB2PATH/lib -ldb2
utilapi.o.
$1.o utilapi.o -L$DB2PATH/lib -ldb2
HP-UX C アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、HP-UX C コンパイラーを
使用して、 C 組み込み SQL および DB2 API アプリケーションを作成するのにお勧め
するコンパイルとリンクのオプションです。
212
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cc
C コンパイラー。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
-Ae
HP ANSI 拡張モードを使用可能にします。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
コンパイルのみを実行し、リンクは実行しません。 コンパイルとリンクは別
個のステップです。
第 8 章 HP-UX
213
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
cc
コンパイラーをリンカーのフロントエンドとして使用します。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを使用します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
-o $1 実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
非組み込み SQL プログラムの場合に、エラー・チェックを行う DB2 API ユ
ーティリティー・オブジェクト・ファイルを組み込みます。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
-L$DB2PATH/lib。 -L オプションを指定しないと、コンパイラーはパスとし
て /usr/lib:/lib を想定します。
-ldb2 DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 209 ページの『HP-UX での C アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds HP-UX C applications』
214
アプリケーションの構築および実行
HP-UX での C ルーチンの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト・ファイル bldrtn には、ルーチン (ストアード・プロシージャーとユーザ
ー定義関数) を作成するためのコマンドが入っています。このスクリプト・ファイル
は、データベース・マネージャーがロードできてしかもクライアント・アプリケーショ
ンから呼び出せるルーチンを共用ライブラリー中でコンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqc からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・ファイル名とプロ
グラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
スクリプト・ファイルは、共用ライブラリーをパス sqllib/function のサーバーに
コピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
第 8 章 HP-UX
215
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。
spclient は、スクリプト・ファイル bldapp を使用して構築することができます。
共用ライブラリーにアクセスするには、次のように入力してサンプル・クライアント・
アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.c から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。 このプログラムの DB2 CLI および組み込み SQL バージ
ョンが提供されています。スクリプト bldapp を使用して、 sqllib/samples/cli 内の
ソース・ファイル udfcli.c から DB2 CLI udfcli クライアント・プログラムを作成す
ることができます。
216
アプリケーションの構築および実行
スクリプト・ファイル bldapp を使用して、 sqllib/samples/c 内のソース・ファイル
udfcli.sqc から組み込み SQL udfcli クライアント・プログラムを作成することがで
きます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqc から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF ライブラリーを sqllib/function ディレクトリーにコ
ピーします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト・ファイル bldapp を使用して、
sqllib/samples/c 内のソース・ファイル udfemcli.sqc から udfemcli クライアント・
プログラムを作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
第 8 章 HP-UX
217
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 219 ページの『HP-UX C ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds HP-UX C routines (stored procedures and UDFs)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spclient.sqc -- Call various stored procedures (C)』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
v 『spserver.sqc -- A variety of types of stored procedures (C)』
v 『udfcli.sqc -- Call a variety of types of user-defined functions (C)』
v 『udfemcli.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfemsrv.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfsrv.c -- Call a variety of types of user-defined functions (C)』
C ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds HP-UX C routines (stored procedures and UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
218
アプリケーションの構築および実行
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
EXTRA_CFLAG="+DAportable"
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2
fi
# Compile the program.
cc $EXTRA_CFLAG +u1 +z -Ae -I$DB2PATH/include ¥
-D_POSIX_C_SOURCE=199506L -c $1.c
# Link the program to create a shared library
ld -b -o $1 $1.o -L$DB2PATH/lib -ldb2 -lpthread
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
HP-UX C ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、HP-UX C コンパイラーを
使用して、 C ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成する
のにお勧めするコンパイルとリンクのオプションです。
第 8 章 HP-UX
219
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cc
C コンパイラー。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
+u1
位置合わせしないデータ・アクセスを認めます。アプリケーションが位置合わ
せしないデータを使用する場合にのみ使用します。
+z
位置非依存コードを生成します。
-Ae
HP ANSI 拡張モードを使用可能にします。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。たとえば、
-I$DB2PATH/include。
-D_POSIX_C_SOURCE=199506L
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、
_REENTRANT が必ず定義されるようにするための POSIX スレッド・ライブ
ラリー・オプション。
-c
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルと
リンクが別個のステップであることを前提としています。
220
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
ld
リンクにリンカーを使用します。
-b
通常の実行可能ファイルではなく、共有ライブラリーを作成します。
-o $1 出力を、共有ライブラリー・ファイルとして指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-L$DB2PATH/lib
DB2 ランタイム共有ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーはパスとし
て /usr/lib:/lib を想定します。
-ldb2 DB2 ライブラリーとリンクします。
-lpthread
POSIX スレッド・ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 215 ページの『HP-UX での C ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds HP-UX C routines (stored procedures and UDFs)』
HP-UX での C マルチスレッド・アプリケーションの作成
HP-UX には、POSIX スレッド・ライブラリーと DCE スレッド・ライブラリーがあり
ます。 DB2 は、 POSIX スレッド・ライブラリーを使用するマルチスレッド・アプリ
ケーションだけをサポートします。
HP-UX のマルチスレッド・アプリケーションは、コンパイルするために _REENTRANT
定義が必要です。 HP-UX の資料では、 -D_POSIX_C_SOURCE=199506L でコンパイル
することをお勧めします。 _REENTRANT が定義されていることも必ず確認してくださ
い。また、アプリケーションは、-lpthread とリンクされていることも必要です。
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト・ファイル bldmt には、マルチスレッド・アプリケーションを作成するため
のコマンドが入っています。これは最大 4 個のパラメーターをとります。それらは、変
数 $1、$2、$3、および $4 で表されます。
第 8 章 HP-UX
221
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqc からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次の実行可能ファイル名を入力します。
dbthrds
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds HP-UX C multi-threaded applications』
v 『dbthrds.sqc -- How to use multiple context APIs on UNIX (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds HP-UX C multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# To compile 64-bit programs, uncomment the following line.
# BUILD_64BIT=true
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
222
アプリケーションの構築および実行
EXTRA_CFLAG="+DAportable"
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
cc $EXTRA_CFLAG -Ae -I$DB2PATH/include -D_POSIX_C_SOURCE=199506L -c $1.c
# Link the program
cc $EXTRA_CFLAG -o $1 $1.o -L$DB2PATH/lib -ldb2 -lpthread
HP-UX C++
HP-UX での C++ アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
ビルド・スクリプト bldapp には、 DB2 API と組み込み SQL アプリケーションを作
成するためのコマンドが入っています。このスクリプトは最大 4 個のパラメーターをと
ります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
第 8 章 HP-UX
223
ソース・ファイル cli_info.C から非組み込み SQL サンプル・プログラム cli_info
を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。 sample データベースに対
してこの実行可能ファイルを実行するには、次のように入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqC から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
224
アプリケーションの構築および実行
v 226 ページの『HP-UX C++ アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds HP-UX C++ applications』
v 『cli_info.C -- Set and get information at the client level (C++)』
v 『tbmod.sqC -- How to modify table data (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds HP-UX C++ applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
EXTRA_CFLAG="+DAportable"
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.C error-checking utility.
aCC $EXTRA_CFLAG -ext -I$DB2PATH/include -c utilemb.C
else
# Compile the utilapi.C error-checking utility.
aCC $EXTRA_CFLAG -ext -I$DB2PATH/include -c utilapi.C
fi
# Compile the program.
aCC $EXTRA_CFLAG -ext -I$DB2PATH/include -c $1.C
if [ -f $1".sqC" ]
then
# Link the program with utilemb.o.
aCC $EXTRA_CFLAG -o $1 $1.o utilemb.o -L$DB2PATH/lib -ldb2
else
# Link the program with utilapi.o.
aCC $EXTRA_CFLAG -o $1 $1.o utilapi.o -L$DB2PATH/lib -ldb2
fi
第 8 章 HP-UX
225
HP-UX C++ アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、HP-UX C++ コンパイラー
を使用して、 C++ 組み込み SQL および DB2 API アプリケーションを作成するのに
お勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
aCC
HP aC++ コンパイラー。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
-ext
″long long″ サポートを含むさまざまな C++ 拡張子を許可します。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。たとえば、
$HOME/sqllib/include。
-c
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルと
リンクが別個のステップであることを前提としています。
226
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
aCC
HP aC++ コンパイラーをリンカーのフロントエンドとして使用します。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを使用します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
-o $1 実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
非組み込み SQL プログラムの場合に、エラー・チェックを行う DB2 API ユ
ーティリティー・オブジェクト・ファイルを組み込みます。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーはパスとし
て /usr/lib:/lib を想定します。
-ldb2 DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 223 ページの『HP-UX での C++ アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds HP-UX C++ applications』
第 8 章 HP-UX
227
HP-UX での C++ ルーチンの作成
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーまたはユーザー定義
関数) を作成するためのコマンドが入っています。このスクリプトは、クライアント・
アプリケーションから呼び出せるルーチンを共用ライブラリーの中でコンパイルしま
す。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上に共用ライブラリーが作成される必要があるた
め、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqC からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・ファイル名とプロ
グラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
このスクリプトは、パス sqllib/function 内のサーバーにストアード・プロシージ
ャーをコピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
228
アプリケーションの構築および実行
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。
spclient は、スクリプト・ファイル bldapp を使用して構築することができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.C から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。スクリプト bldapp を使用して、ソース・ファイル
udfcli.sqC から udfcli を作成することができます。
第 8 章 HP-UX
229
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqC から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト bldapp を使用して、ソース・ファイ
ル udfemcli.sqC から udfemcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
230
アプリケーションの構築および実行
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 232 ページの『HP-UX C++ ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds HP-UX C++ routines (stored procedures and UDFs)』
v 『spclient.sqC -- Call various stored procedures (C++)』
v 『spserver.sqC -- A variety of types of stored procedures (C++)』
v 『udfcli.sqC -- Call a variety of types of user-defined functions (C++)』
v 『udfemcli.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfemsrv.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfsrv.C -- Call a variety of types of user-defined functions (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
C++ ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds HP-UX C++ routines (stored procedures and UDFs)
# Usage: bldsrv <prog_name> [ <db_name> ]
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
第 8 章 HP-UX
231
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
EXTRA_CFLAG="+DAportable"
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2
fi
# Compile the program. First ensure it is coded with extern "C".
aCC $EXTRA_CFLAG +u1 +z -ext -mt -I$DB2PATH/include -c $1.C
# Link the program to create a shared library.
aCC $EXTRA_CFLAG -mt -b -o $1 $1.o -L$DB2PATH/lib -ldb2
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
HP-UX C++ ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、HP-UX C++ コンパイラー
を使用して、 C++ ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成
するのにお勧めするコンパイルとリンクのオプションです。
232
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
aCC
HP aC++ コンパイラー。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
+u1
位置合わせしないデータ・アクセスを認めます。
+z
位置非依存コードを生成します。
-ext
″long long″ サポートを含むさまざまな C++ 拡張子を許可します。
-mt
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、 HP aC++
コンパイラーのマルチスレッド・サポートを使用可能にします。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。たとえば、
$DB2PATH/include。
-c
コンパイルのみを実行し、リンクは実行しません。 本書では、コンパイルと
リンクが別個のステップであることを前提としています。
第 8 章 HP-UX
233
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
aCC
HP aC++ コンパイラーをリンカーのフロントエンドとして使用します。
$EXTRA_CFLAG
32 ビットまたは 64 ビットのどちらのサポートを使用できるかに応じて、そ
れぞれ異なる値が入っています。 32 ビットの場合の値は +DAportable、 64
ビットの場合の値は +DA2.0W です。
+DAportable (32 ビットのみ)
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを使用します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+DA2.0W (64 ビットのみ)
64 ビット・コードを生成するのに使用する必要があります。
-mt
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、 HP aC++
コンパイラーのマルチスレッド・サポートを使用可能にします。
-b
通常の実行可能ファイルではなく、共用ライブラリーを作成します。
-o $1 実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
-L$DB2PATH/lib。 -L オプションを指定しないと、コンパイラーはパスとし
て /usr/lib:/lib を想定します。
-ldb2 DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 228 ページの『HP-UX での C++ ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds HP-UX C++ routines (stored procedures and UDFs)』
HP-UX での C++ マルチスレッド・アプリケーションの作成
HP-UX には、POSIX スレッド・ライブラリーと DCE スレッド・ライブラリーがあり
ます。 HP-UX 上の DB2 は、 POSIX スレッド・ライブラリーを使用するマルチスレ
ッド・アプリケーションだけをサポートします。
234
アプリケーションの構築および実行
HP-UX C++ コンパイラーの場合、コンパイルとリンクのどちらのステップでも、マル
チスレッド・アプリケーションには -mt を使用する必要があります。
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
スクリプト bldmt には、マルチスレッド・アプリケーションを作成するためのコマンド
が入っています。これは最大 4 個のパラメーターをとります。それらは、変数 $1、
$2、$3、および $4 で表されます。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqC からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次の実行可能ファイル名を入力します。
dbthrds
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds HP-UX C++ multi-threaded applications』
v 『dbthrds.sqC -- How to use multiple context APIs on UNIX (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds HP-UX C++ multi-threaded applications
第 8 章 HP-UX
235
# Usage:
bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
EXTRA_CFLAG="+DA2.0W"
else
EXTRA_CFLAG="+DAportable"
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
aCC $EXTRA_CFLAG -ext -mt -I$DB2PATH/include -c $1.C
# Link the program
aCC $EXTRA_CFLAG -mt -o $1 $1.o -L$DB2PATH/lib -ldb2
Micro Focus COBOL
HP-UX での Micro Focus COBOL コンパイラーの構成
組み込み SQL および DB2 API 呼び出しの入ったアプリケーションを開発する場合
に、 Micro Focus COBOL コンパイラーを使用するときは、気をつける点がいくつかあ
ります。
手順:
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target mfcob オプションを使用してください。
v 組み込みプリコンパイラー・フロントエンド、ランタイム・インタープリター、また
は Animator デバッガーを使うためには、次のように Micro Focus が提供する mkrts
コマンドを実行して、 DB2 Generic API 入り口点を Micro Focus ランタイム・モジ
ュール rts32 に追加する必要があります。 また、mkcheck を実行してチェック・フ
ァイルを更新する必要があります。これが実行されない場合、SQLGSTRT に 173 エ
ラーが戻されます。
COBOL アプリケーションを作成する前に環境をセットアップするには、 mkrts と
mkcheck を実行する必要があります。 mkrts および mkcheck を実行するには、次の
ステップに従って COBOPT を設定する必要があります。
236
アプリケーションの構築および実行
1. root としてログインします。
2. ディレクトリー $COBDIR/src/rts から次のように入力します。
COBOPT=/opt/IBM/db2/V8.1/lib/db2mkrts.args; export COBOPT
ksh mkrts
mv $COBDIR/rts32 $COBDIR/rts32.orig
cp rts32 $COBDIR/rts32
ただし $COBDIR は COBOL コンパイラーのインストール先のディレクトリーであ
り、通常それは /opt/cobol/cobdir です。
3. さらに、Hewlett-Packard 社が製品にあらかじめ配備している、 check 実行可能フ
ァイルを再作成する必要があります。 $COBDIR ディレクトリーの check 実行可
能ファイルを再作成しないで cob -C SQL を使用したコンパイルを試行すると、
DB2 プリプロセッサーは DB2 ライブラリーを呼び出すため、コンパイルは失敗
し、実行時システム 173 エラーが戻されます。 check を再作成するには、
$COBDIR ルート・ディレクトリーの下にある src/sql ディレクトリーに移動し、
mkcheck スクリプトを実行します。スクリプトが完了したら、結果として作成さ
れた check 実行可能ファイルを、 $COBDIR ディレクトリーに移動させる必要が
あります。ディレクトリー $COBDIR/src/sql から、次のように入力します。
COBOPT=/opt/IBM/db2/V8.1/lib/db2mkrts.args; export COBOPT
ksh mkcheck
mv $COBDIR/check $COBDIR/check.orig
cp check $COBDIR/check
これで、次のディレクトリーにある引き数を指定して、mkrts を実行することができ
ます。
/opt/IBM/db2/V8.1/lib/db2mkrts.args
v DB2 COBOL COPY ファイル・ディレクトリーを、 Micro Focus COBOL 環境変数
COBCPY に含める必要があります。 COBCPY 環境変数には、COPY ファイルのロ
ケーションを指定します。 Micro Focus COBOL 用の DB2 COPY ファイルは、デー
タベース・インスタンス・ディレクトリーの下にある sqllib/include/cobol_mf に
あります。
このディレクトリーを組み込むには
– bash または korn シェルでは以下を入力します。
export COBCPY=$COBCPY:$HOME/sqllib/include/cobol_mf
– C シェルでは以下を入力します。
setenv COBCPY ${COBCPY}:${HOME}/sqllib/include/cobol_mf
注: COBCPY を .profile または .login ファイル中に設定することもできます。
関連タスク:
v 241 ページの『HP-UX での Micro Focus COBOL ルーチンの作成』
v 238 ページの『HP-UX での Micro Focus COBOL アプリケーションの作成』
第 8 章 HP-UX
237
HP-UX での Micro Focus COBOL アプリケーションの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
ビルド・スクリプト bldapp には、 DB2 アプリケーション・プログラムを作成するコ
マンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、オプションとして 3 つの
パラメーターが用意されています。 2 番目のパラメーターは $2 で、接続するデータベ
ースの名前を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが $4 で、データベースのパスワードを指定しま
す。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのファイ
ル embprep にパラメーターを渡します。データベース名が指定されていない場合は、デ
フォルトの sample データベースが使用されます。なお、ユーザー ID とパスワードの
パラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタン
スが異なる場合にのみ必要になります。
手順:
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client ができます。 sample データベースに対してこ
の実行可能ファイルを実行するには、次のように入力します。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp updat
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
238
アプリケーションの構築および実行
bldapp updat database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
updat
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
updat database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
updat database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 240 ページの『HP-UX Micro Focus COBOL アプリケーションのコンパイルとリンク
のオプション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp -- Builds HP-UX Micro Focus COBOL applications』
v 『client.cbl -- How to set and query a client (MF COBOL)』
v 『updat.sqb -- How to update, delete and insert table data (MF COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds HP-UX Micro Focus COBOL applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
第 8 章 HP-UX
239
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
embprep $1 $2 $3 $4
fi
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
# Compile the checkerr.cbl error checking utility.
cob +DAportable -cx checkerr.cbl
# Compile the program.
cob +DAportable -cx $1.cbl
# Link the program.
cob +DAportable -x $1.o checkerr.o -L$DB2PATH/lib -ldb2 -ldb2gmf
HP-UX Micro Focus COBOL アプリケーションのコンパイルとリンクのオプ
ション
以下は、bldapp ビルド・スクリプトに示されているように、HP-UX 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL 組み込み SQL および DB2 API アプリケ
ーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cob
Micro Focus COBOL コンパイラー。
+DAportable
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
-cx
オブジェクト・モジュールにコンパイルします。
240
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
Link options:
cob
コンパイラーをリンカーのフロントエンドとして使用します。
+DAportable
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを使用します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
-x
実行可能プログラムを指定します。
$1.o
プログラムのオブジェクト・ファイルを組み込みます。
checkerr.o
エラー・チェック用のユーティリティー・オブジェクト・ファイルを組み込み
ます。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。
-ldb2 DB2 ライブラリーとリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 238 ページの『HP-UX での Micro Focus COBOL アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds HP-UX Micro Focus COBOL applications』
HP-UX での Micro Focus COBOL ルーチンの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャー) を作成するための
コマンドが入っています。このスクリプトは、クライアント・アプリケーションから呼
第 8 章 HP-UX
241
び出せるルーチンをサーバー上の共用ライブラリーの中でコンパイルします。これは 1
個または 2 個のパラメーターをとります。それらは、 bldrtn 内では変数 $1 と $2 で
表されます。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。共用ライブラリーは、データ
ベースが置かれているのと同じインスタンス上に作成する必要があるため、ユーザー ID
やパスワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。データベース名は任意
で指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。スクリプトは、ソース・ファイル名 $1 を共用ライブラリ
ー名として使用します。
手順:
サンプル・データベースに接続している場合、ソース・ファイル outsrv.sqb からサン
プル・プログラム outsrv を作成するには、次のように入力します。
bldrtn outsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn outsrv database
スクリプトは、共用ライブラリーを sqllib/function ディレクトリーにコピーします。
共用ライブラリー outsrv を作成し終わったら、その中のルーチンを呼び出すクライア
ント・アプリケーション outcli を作成することができます。 outcli は、スクリプ
ト・ファイル bldapp を使用して構築することができます。
ルーチンを呼び出すには、次のように入力してクライアント・アプリケーションを実行
します。
outcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
242
アプリケーションの構築および実行
クライアント・アプリケーションは共用ライブラリー outsrv にアクセスします。これ
は、同一名のルーチンをサーバー・データベース上で実行してから、クライアント・ア
プリケーションに出力を戻します。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 244 ページの『HP-UX Micro Focus COBOL ルーチンのコンパイルとリンクのオプシ
ョン』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn -- Builds HP-UX Micro Focus COBOL routines (stored procedures)』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (MF COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (MF
COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds HP-UX Micro Focus COBOL routines (stored procedures)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
embprep $1 $2
fi
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
# Compile the program.
cob +DAportable +z -cx $1.cbl
# Link the program.
ld -b -o $1 $1.o -L$DB2PATH/lib -ldb2 -ldb2gmf ¥
-L$COBDIR/coblib -lcobol -lcrtn
第 8 章 HP-UX
243
# Copy the shared library to the sqllib/function subdirectory.
# The user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
HP-UX Micro Focus COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、HP-UX 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシージャー)
を作成するのにお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cob
COBOL コンパイラー。
+DAportable
PA_RISC 1 および 2.0 のワークステーションとサーバー間での互換性を持つ
コードを生成します。アプリケーションの移植性が問題になる場合は、このオ
プションを使用する必要があります。このオプションを使用しないでコードを
作成すると、マシン構築におけるプロセッサー・レベルでのコードの最適化は
向上しますが、旧式の PA-RISC プロセッサー・レベルでは機能しなくなりま
す。詳細は、コンパイラーの資料を参照してください。
+z
位置非依存コードを生成します。
-cx
オブジェクト・モジュールにコンパイルします。
リンク・オプション
ld
リンクにリンカーを使用します。
-b
通常の実行可能ファイルではなく、共用ライブラリーを作成します。
-o $1 実行可能ファイルを指定します。
$1.o
プログラムのオブジェクト・ファイルを組み込みます。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。
-ldb2 DB2 共用ライブラリーにリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
-L$COBDIR/coblib
COBOL ランタイム・ライブラリーのロケーションを指定します。
-lcobol
COBOL ライブラリーにリンクします。
-lcrtn
crtn ライブラリーにリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
244
アプリケーションの構築および実行
関連タスク:
v 241 ページの『HP-UX での Micro Focus COBOL ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds HP-UX Micro Focus COBOL routines (stored procedures)』
第 8 章 HP-UX
245
246
アプリケーションの構築および実行
第 9 章 Linux
Linux C . . . . . . . . . . . . .
Linux での C アプリケーションの作成
C アプリケーションの構築スクリプト
Linux C アプリケーションのコンパイルと
リンクのオプション . . . . . . . .
Linux での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
Linux C ルーチンのコンパイルとリンクの
オプション . . . . . . . . . . .
Linux での C マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
247
247
249
250
251
255
256
257
258
Linux C++ . . . . . . . . . . . .
Linux での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
Linux C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
Linux での C++ ルーチンの作成 . . . .
C++ ルーチンの構築スクリプト . . . .
Linux C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
Linux での C++ マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
259
259
261
262
263
267
268
269
270
この章は、Linux でアプリケーションを構築するための詳細な情報を提供します。
Linux 環境での DB2 アプリケーション開発の最新の更新事項については、次の Web
ページを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
Linux C
DB2 CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・
インターフェース ガイドおよびリファレンス 内にあります。
Linux での C アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
ビルド・ファイル bldapp には、 DB2 アプリケーション・プログラムを作成するため
のコマンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
© Copyright IBM Corp. 1993 - 2002
247
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.c から DB2 API 非組み込み SQL サンプル・プログラム
cli_info を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。
この実行可能ファイルを実行するには、ファイル名を入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqc から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
248
アプリケーションの構築および実行
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 250 ページの『Linux C アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds Linux C applications』
v 『cli_info.c -- Set and get information at the client level (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『tbmod.sqc -- How to modify table data (C)』
C アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds Linux C applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.c error-checking utility.
gcc -I$DB2PATH/include -c utilemb.c
else
第 9 章 Linux
249
# Compile the utilapi.c error-checking utility.
gcc -I$DB2PATH/include -c utilapi.c
fi
# Compile the program.
gcc -I$DB2PATH/include -c $1.c
if [ -f $1".sqc" ]
then
# Link the program with utilemb.o.
gcc -o $1 $1.o utilemb.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
else
# Link the program with utilapi.o.
gcc -o $1 $1.o utilapi.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
fi
Linux C アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、Linux C コンパイラーを使
用して、 C 組み込み SQL および DB2 API アプリケーションを作成するのにお勧めす
るコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
gcc
GNU/Linux C コンパイラー。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
250
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
gcc
コンパイラーをリンカーのフロントエンドとして使用します。
-o $1
実行可能ファイルを指定します。
$1.o
オブジェクト・ファイルを指定します。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
非組み込み SQL プログラムの場合に、エラー・チェックを行う DB2 API ユ
ーティリティー・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
RUNTIME=true をコメント解除した場合は値 ″-Wl,-rpath,$DB2PATH/lib″ が入
りますが、それ以外の場合は値は入りません。
-Wl,-rpath,$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 247 ページの『Linux での C アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds Linux C applications』
Linux での C ルーチンの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
第 9 章 Linux
251
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーまたはユーザー定義
関数) を作成するためのコマンドが入っています。このスクリプト・ファイルは、クラ
イアント・アプリケーションから呼び出せるルーチンを共用ライブラリーの中でコンパ
イルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqc からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・スクリプト名とプ
ログラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
このスクリプトは、パス sqllib/function 内のサーバーにストアード・プロシージ
ャーをコピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
252
アプリケーションの構築および実行
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。
spclient は、スクリプト bldapp を使用して構築することができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.c から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
必要であれば、UDF にファイル・モードを設定してデータベース・マネージャーからア
クセスできるようにします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。スクリプト・ファイル bldapp を使用して、ソース・ファ
イル udfcli.sqc から udfcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
第 9 章 Linux
253
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqc から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF ライブラリーを sqllib/function ディレクトリーにコ
ピーします。
必要であれば、UDF にファイル・モードを設定してクライアント・アプリケーションの
データベース・マネージャーからアクセスできるようにします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト・ファイル bldapp を使用して、
sqllib/samples/c 内のソース・ファイル udfemcli.sqc から udfemcli クライアント・
プログラムを作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
254
アプリケーションの構築および実行
userid 有効なユーザー ID です。
password
有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 256 ページの『Linux C ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds Linux C routines (stored procedures or UDFs)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spclient.sqc -- Call various stored procedures (C)』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
v 『spserver.sqc -- A variety of types of stored procedures (C)』
v 『udfcli.sqc -- Call a variety of types of user-defined functions (C)』
v 『udfemcli.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfemsrv.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfsrv.c -- Call a variety of types of user-defined functions (C)』
C ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds Linux C routines (stored procedures or UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Set the runtime path since routines run as setuid.
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
第 9 章 Linux
255
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2
fi
# Compile the program.
gcc -fpic -I$DB2PATH/include -c $1.c -D_REENTRANT
# Link the program and create a shared library
gcc -shared -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2 -lpthread
# Copy the shared library to the function subdirectory.
# The user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
Linux C ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、Linux C コンパイラーを使
用して、 C ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成するの
にお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
gcc
GNU/Linux C コンパイラー。
-fpic
位置非依存コードを生成します。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
-D_REENTRANT
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、
_REENTRANT を定義します。
256
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
gcc
コンパイラーをリンカーのフロントエンドとして使用します。
-shared
共用ライブラリーを生成します。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
ルーチンが setuid として実行されるため、これには、ランタイム・パスを設
定するための値 -Wl,-rpath,$DB2PATH/lib が入ります。
-Wl,-rpath,$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
-lpthread
POSIX スレッド・ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 251 ページの『Linux での C ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds Linux C routines (stored procedures or UDFs)』
Linux での C マルチスレッド・アプリケーションの作成
Linux C を使用するマルチスレッド・アプリケーションは、 -D_REENTRANT でコンパイ
ルし、 -lpthread とリンクする必要があります。
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
第 9 章 Linux
257
スクリプト bldmt には、マルチスレッド・アプリケーションを作成するためのコマンド
が入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqc からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次のように入力します。
dbthrds
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds Linux C multi-threaded applications』
v 『dbthrds.sqc -- How to use multiple context APIs on UNIX (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds Linux C multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
258
アプリケーションの構築および実行
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
gcc -I$DB2PATH/include -c $1.c -D_REENTRANT
# Link the program.
gcc -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2 -lpthread
Linux C++
Linux での C++ アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
sqllib/samples/cpp 内のビルド・スクリプト bldapp には、 DB2 API と組み込み
SQL アプリケーションを作成するコマンドが入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
第 9 章 Linux
259
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.C から非組み込み SQL サンプル・プログラム cli_info
を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。 sample データベースに対
してこの実行可能ファイルを実行するには、次のように入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqC から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
260
アプリケーションの構築および実行
関連資料:
v 73 ページの『C/C++ のサンプル』
v 262 ページの『Linux C++ アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds Linux C++ applications』
v 『cli_info.C -- Set and get information at the client level (C++)』
v 『tbmod.sqC -- How to modify table data (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds Linux C++ applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.C error-checking utility.
g++ -I$DB2PATH/include -c utilemb.C
else
# Compile the utilapi.C error-checking utility.
g++ -I$DB2PATH/include -c utilapi.C
fi
# Compile the program.
g++ -I$DB2PATH/include -c $1.C
if [ -f $1".sqC" ]
then
# Link the program with utilemb.o
g++ -o $1 $1.o utilemb.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2
第 9 章 Linux
261
else
# Link the program with utilapi.o
g++ -o $1 $1.o utilapi.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2
fi
Linux C++ アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、Linux C++ コンパイラー
を使用して、 C++ 組み込み SQL および DB2 API アプリケーションを作成するのに
お勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
g++
GNU/Linux C++ コンパイラー。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
262
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
g++
コンパイラーをリンカーのフロントエンドとして使用します。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
非組み込み SQL プログラムの場合に、エラー・チェックを行う DB2 API ユ
ーティリティー・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
RUNTIME=true をコメント解除した場合は値 ″-Wl,-rpath,$DB2PATH/lib″ が入
りますが、それ以外の場合は値は入りません。
-Wl,-rpath,$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 259 ページの『Linux での C++ アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds Linux C++ applications』
Linux での C++ ルーチンの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーとユーザー定義関数)
を作成するためのコマンドが入っています。このスクリプトは、クライアント・アプリ
第 9 章 Linux
263
ケーションから呼び出せるルーチンを共用ライブラリーの中でコンパイルします。これ
は 1 個または 2 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqC からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・ファイル名とプロ
グラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
このスクリプト・ファイルは、パス sqllib/function 内のサーバーにストアード・
プロシージャーをコピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
264
アプリケーションの構築および実行
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。spclient は、ス
クリプト bldapp を使用して構築することができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.C から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。スクリプト bldapp を使用して、ソース・ファイル
udfcli.sqC から udfcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
第 9 章 Linux
265
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqC から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト bldapp を使用して、ソース・ファイ
ル udfemcli.sqC から udfemcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
266
アプリケーションの構築および実行
v 73 ページの『C/C++ のサンプル』
v 268 ページの『Linux C++ ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds Linux C++ routines (stored procedures and UDFs)』
v 『spclient.sqC -- Call various stored procedures (C++)』
v 『spserver.sqC -- A variety of types of stored procedures (C++)』
v 『udfcli.sqC -- Call a variety of types of user-defined functions (C++)』
v 『udfemcli.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfemsrv.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfsrv.C -- Call a variety of types of user-defined functions (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
C++ ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds Linux C++ routines (stored procedures and UDFs)
# Usage: bldsrv <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# Set the runtime path since routines run as setuid.
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2
fi
# Compile the program.
g++ -fpic -I$DB2PATH/include -c $1.C -D_REENTRANT
# Link the program and create a shared library.
g++ -shared -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2 -lpthread
第 9 章 Linux
267
# Copy the shared library to the function subdirectory.
# The user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
Linux C++ ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、Linux C++ コンパイラー
を使用して、 C++ ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成
するのにお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
g++
GNU/Linux C++ コンパイラー。
-fpic
位置非依存コードを生成します。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
-D_REENTRANT
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、
_REENTRANT を定義します。
268
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
g++
コンパイラーをリンカーのフロントエンドとして使用します。
-shared
共用ライブラリーを生成します。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
ルーチンが setuid として実行されるため、これには、ランタイム・パスを設
定するための値 -Wl,-rpath,$DB2PATH/lib が入ります。
-Wl,-rpath,$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 静的ライブラリーおよび共用ライブラリーのロケーションを
示します。たとえば、 $HOME/sqllib/lib。 -L オプションが指定されない場
合、コンパイラーはパスとして /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
-lpthread
POSIX スレッド・ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 263 ページの『Linux での C++ ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds Linux C++ routines (stored procedures and UDFs)』
Linux での C++ マルチスレッド・アプリケーションの作成
Linux C++ を使用するマルチスレッド・アプリケーションは、 -D_REENTRANT でコンパ
イルし、 -lpthread とリンクする必要があります。
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
第 9 章 Linux
269
スクリプト・ファイル bldmt には、組み込み SQL マルチスレッド・プログラムを作成
するためのコマンドが入っています。これは最大 4 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqC からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次のように入力します。
dbthrds
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldmt -- Builds Linux C++ multi-threaded applications』
v 『dbthrds.sqC -- How to use multiple context APIs on UNIX (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds Linux C++ multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
270
アプリケーションの構築および実行
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-Wl,-rpath$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
g++ -I$DB2PATH/include -c $1.C -D_REENTRANT
# Link the program.
g++ -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2 -lpthread
第 9 章 Linux
271
272
アプリケーションの構築および実行
第 10 章 Solaris
Forte C . . . . . . . . . . . . .
Solaris での C アプリケーションの作成
C アプリケーションの構築スクリプト
Solaris C アプリケーションのコンパイル
とリンクのオプション . . . . . . .
Solaris での C ルーチンの作成 . . . .
C ルーチンの構築スクリプト . . . . .
Solaris C ルーチンのコンパイルとリンク
のオプション . . . . . . . . . .
Solaris での C マルチスレッド・アプリケ
ーションの作成 . . . . . . . . .
C マルチスレッド・アプリケーションの
構築スクリプト . . . . . . . . .
Forte C++ . . . . . . . . . . . .
Solaris での C++ アプリケーションの作成
C++ アプリケーションの構築スクリプト
Solaris C++ アプリケーションのコンパイ
ルとリンクのオプション . . . . . .
Solaris での C++ ルーチンの作成 . . .
C++ ルーチンの構築スクリプト . . . .
Solaris C++ ルーチンのコンパイルとリン
クのオプション . . . . . . . . .
273
273
275
276
279
283
283
285
287
288
288
290
291
293
296
Solaris での C++ マルチスレッド・アプリ
ケーションの作成 . . . . . . . . .
C++ マルチスレッド・アプリケーション
の構築スクリプト . . . . . . . . .
Micro Focus COBOL . . . . . . . . .
Solaris での Micro Focus COBOL コンパ
イラーの構成 . . . . . . . . . .
Solaris での Micro Focus COBOL アプリ
ケーションの作成 . . . . . . . . .
Micro Focus COBOL アプリケーションの
構築スクリプト . . . . . . . . .
Solaris Micro Focus COBOL アプリケーシ
ョンのコンパイルとリンクのオプション .
Solaris での Micro Focus COBOL ルーチ
ンの作成 . . . . . . . . . . . .
Micro Focus COBOL ルーチンの構築スク
リプト . . . . . . . . . . . .
Solaris Micro Focus COBOL ルーチンのコ
ンパイルとリンクのオプション . . . .
299
301
302
302
302
304
305
306
307
308
297
この章は、Solaris オペレーティング環境でアプリケーションを構築するための詳細な情
報を提供します。 Solaris 環境での DB2 アプリケーション開発の最新の更新事項につ
いては、次の Web ページを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
Forte C
注: Forte C は、以前は ″SPARCompiler C″ と呼ばれていました。
DB2 CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・
インターフェース ガイドおよびリファレンス 内にあります。
Solaris での C アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
© Copyright IBM Corp. 1993 - 2002
273
ビルド・スクリプト bldapp には、 DB2 アプリケーション・プログラムを作成するコ
マンドが入っています。これは最大 4 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.c から DB2 API 非組み込み SQL サンプル・プログラム
cli_info を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。
この実行可能ファイルを実行するには、ファイル名を入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqc から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
274
アプリケーションの構築および実行
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 276 ページの『Solaris C アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds Solaris C applications』
v 『cli_info.c -- Set and get information at the client level (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『tbmod.sqc -- How to modify table data (C)』
C アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds Solaris C applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
第 10 章 Solaris
275
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-R$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.c error-checking utility.
cc -xarch=$CFLAG_ARCH -I$DB2PATH/include -c utilemb.c
else
# Compile the utilapi.c error-checking utility.
cc -xarch=$CFLAG_ARCH -I$DB2PATH/include -c utilapi.c
fi
# Compile the program.
cc -xarch=$CFLAG_ARCH -I$DB2PATH/include -c $1.c
if [ -f $1".sqc" ]
then
# Link the program with utilemb.o
cc -xarch=$CFLAG_ARCH -mt -o $1 $1.o utilemb.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
else
# Link the program with utilapi.o
cc -xarch=$CFLAG_ARCH -mt -o $1 $1.o utilapi.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
fi
Solaris C アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、Forte C コンパイラーを使
用して、 C 組み込み SQL および DB2 API アプリケーションを作成するのにお勧めす
るコンパイルとリンクのオプションです。
276
アプリケーションの構築および実行
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cc
C コンパイラー。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
第 10 章 Solaris
277
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
cc
コンパイラーをリンカーのフロントエンドとして使用します。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
マルチスレッド・サポートにリンクします。 libdb2 を使ったリンクに必要で
す。
注: POSIX スレッドを使用する場合、DB2 アプリケーションは、スレッド化
されていてもいなくても -lpthread にリンクする必要もあります。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
組み込み SQL プログラムでない場合に、エラー・チェックを行う DB2 API
ユーティリティー・オブジェクト・ファイルを含みます。
$EXTRA_LFLAG
RUNTIME=true をコメント解除した場合は値 -R$DB2PATH/lib が入ります
が、それ以外の場合は値は入りません。
-R$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 273 ページの『Solaris での C アプリケーションの作成』
関連サンプル:
278
アプリケーションの構築および実行
v 『bldapp -- Builds Solaris C applications』
Solaris での C ルーチンの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーとユーザー定義関数)
を作成するためのコマンドが入っています。このスクリプト・ファイルは、データベー
ス・マネージャーがロードできてしかもクライアント・アプリケーションから呼び出せ
るルーチンを共用ライブラリー中でコンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqc からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・スクリプト名とプ
ログラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function ディ
レクトリーにコピーします。
第 10 章 Solaris
279
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。
spclient は、スクリプト・ファイル bldapp を使用して構築することができます。
共用ライブラリーにアクセスするには、次のように入力してサンプル・クライアント・
アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.c から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
280
アプリケーションの構築および実行
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。 このプログラムの DB2 CLI および組み込み SQL バージ
ョンが提供されています。スクリプト bldapp を使用して、 sqllib/samples/cli 内の
ソース・ファイル udfcli.c から DB2 CLI udfcli クライアント・プログラムを作成す
ることができます。
スクリプト・ファイル bldapp を使用して、 sqllib/samples/c 内のソース・ファイル
udfcli.sqc から組み込み SQL udfcli クライアント・プログラムを作成することがで
きます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqc から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF ライブラリーを sqllib/function ディレクトリーにコ
ピーします。
第 10 章 Solaris
281
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト・ファイル bldapp を使用して、
sqllib/samples/c 内のソース・ファイル udfemcli.sqc から udfemcli クライアント・
プログラムを作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 283 ページの『Solaris C ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds Solaris C routines (stored procedures or UDFs)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spclient.sqc -- Call various stored procedures (C)』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
v 『spserver.sqc -- A variety of types of stored procedures (C)』
v 『udfcli.sqc -- Call a variety of types of user-defined functions (C)』
v 『udfemcli.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
282
アプリケーションの構築および実行
v 『udfemsrv.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfsrv.c -- Call a variety of types of user-defined functions (C)』
C ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds Solaris C routines (stored procedures or UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# Set the runtime path since routines run as setuid.
EXTRA_LFLAG="-R$DB2PATH/lib"
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2
fi
# Compile the program.
cc -xarch=$CFLAG_ARCH -mt -DUSE_UI_THREADS -Kpic ¥
-I$DB2PATH/include -c $1.c
# Link the program and create a shared library
cc -xarch=$CFLAG_ARCH -mt -G -o $1 $1.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
Solaris C ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、Forte C コンパイラーを使
用して、 C ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成するの
にお勧めするコンパイルとリンクのオプションです。
第 10 章 Solaris
283
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cc
C コンパイラー。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、マルチスレ
ッド・サポートを使用可能にします。
-DUSE_UI_THREADS
Sun の「UNIX International」スレッド API を使用可能にします。
-Kpic
共用ライブラリー用の位置非依存コードを生成します。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
284
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
cc
コンパイラーをリンカーのフロントエンドとして使用します。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
これが必要なのは、DB2 ライブラリーは -mt にリンクされているからです。
-G
共用ライブラリーを生成します。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
ルーチンが setuid として実行されるため、これには、ランタイム・パスを設
定するための値 -R$DB2PATH/lib が入ります。
-R$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 251 ページの『Linux での C ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds Linux C routines (stored procedures or UDFs)』
Solaris での C マルチスレッド・アプリケーションの作成
SUN および POSIX のスレッド・ライブラリーを使用するマルチスレッド・アプリケー
ションが、DB2 でサポートされます。デフォルトは Sun スレッドです。 Solaris 上で
Forte C を使用するマルチスレッド・アプリケーションは、 -mt を使用してコンパイル
してリンクする必要があります。これは、-D_REENTRANT をプリプロセッサーに渡し、
第 10 章 Solaris
285
-lthread をリンカーに渡します。また、Sun の Unix International スレッド API を使
用するには、コンパイル定義 -DUSE_UI_THREADS を指定する必要があります。
注: POSIX スレッドを使用したい場合は、 getpwnam_r() などの関数の、POSIX の変
形を許可するコンパイラー・オプション -D_POSIX_PTHREAD_SEMANTICS を追加し、
さらにリンク・オプション -lpthread を追加する必要もあります。既成の bldmt
スクリプトを使用する場合、 -DUSE_UI_THREADS 定義の削除も必要です。
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト bldmt には、マルチスレッド・アプリケーションを作成するためのコマンド
が入っています。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqc からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次のように入力します。
dbthrds
注: かなりの数の接続を持つマルチスレッド・プログラムの場合は、カーネル・パラメ
ーター semsys:seminfo_semume と shmsys:shminfo_shmseg をデフォルトの値より
も大きく設定する必要がある場合があります。以下の db2osconf ユーティリティー
関連のリンクを参照して、これらのパラメーターの推奨値を確認してください。
関連概念:
v 100 ページの『ビルド・ファイル』
v コマンド・リファレンス の『db2osconf - カーネル・パラメーター値のためのユーテ
ィリティー・コマンド』
関連資料:
v 73 ページの『C/C++ のサンプル』
286
アプリケーションの構築および実行
関連サンプル:
v 『bldmt -- Builds Solaris C multi-threaded applications』
v 『dbthrds.sqc -- How to use multiple context APIs on UNIX (C)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds Solaris C multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64-bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-R$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqc" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
cc -xarch=$CFLAG_ARCH -mt -DUSE_UI_THREADS -I$DB2PATH/include -c $1.c
# Link the program.
cc -xarch=$CFLAG_ARCH
-mt -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2
第 10 章 Solaris
287
Forte C++
注: Forte C++ は、以前は SPARCompiler C++ と呼ばれていました。
Solaris での C++ アプリケーションの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
ビルド・スクリプト bldapp には、 DB2 API と組み込み SQL アプリケーションを作
成するためのコマンドが入っています。これは最大 4 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。このパラメーター
は、唯一必要なパラメーターであり、組み込み SQL を含まない DB2 API プログラム
に必要なパラメーターはこのパラメーターだけです。組み込み SQL プログラムを作成
するためにはデータベースへの接続が必要なため、オプションとして 3 つのパラメータ
ーが用意されています。 2 番目のパラメーターは $2 で、接続するデータベースの名前
を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー ID を指定し
ます。そしてもう 1 つが $4 で、データベースのパスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル cli_info.C から非組み込み SQL サンプル・プログラム cli_info
を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info が作成されます。 sample データベースに対
してこの実行可能ファイルを実行するには、次のように入力します。
cli_info
組み込み SQL アプリケーションの構築と実行
ソース・ファイル tbmod.sqC から組み込み SQL アプリケーション tbmod を構築する
場合、次の 3 つの方法があります。
288
アプリケーションの構築および実行
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 291 ページの『Solaris C++ アプリケーションのコンパイルとリンクのオプション』
関連サンプル:
v 『bldapp -- Builds Solaris C++ applications』
v 『cli_info.C -- Set and get information at the client level (C++)』
v 『tbmod.sqC -- How to modify table data (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
第 10 章 Solaris
289
C++ アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds Solaris C++ applications
# Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64 bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-R$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
# Compile the utilemb.C error-checking utility.
CC -xarch=$CFLAG_ARCH -I$DB2PATH/include -c utilemb.C
else
# Compile the utilapi.C error-checking utility.
CC -xarch=$CFLAG_ARCH -I$DB2PATH/include -c utilapi.C
fi
# Compile the program.
CC -xarch=$CFLAG_ARCH -I$DB2PATH/include -c $1.C
if [ -f $1".sqC" ]
then
# Link the program with utilemb.o
CC -xarch=$CFLAG_ARCH -mt -o $1 $1.o utilemb.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
else
290
アプリケーションの構築および実行
# Link the program with utilapi.o
CC -xarch=$CFLAG_ARCH -mt -o $1 $1.o utilapi.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
fi
Solaris C++ アプリケーションのコンパイルとリンクのオプション
以下は、bldapp ビルド・スクリプトに示されているように、Forte C++ コンパイラーを
使用して、 C++ 組み込み SQL および DB2 API アプリケーションを作成するのにお
勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
CC
C++ コンパイラー。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。 たとえば、
$HOME/sqllib/include のように指定します。
-c
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
第 10 章 Solaris
291
bldapp のコンパイルおよびリンク・オプション
リンク・オプション
CC
コンパイラーをリンカーのフロントエンドとして使用します。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
マルチスレッド・サポートにリンクします。 libdb2 を使ったリンクに必要で
す。
注: POSIX スレッドを使用する場合、DB2 アプリケーションは、スレッド化
されていてもいなくても -lpthread にリンクする必要もあります。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
utilemb.o
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを組み込みます。
utilapi.o
非組み込み SQL プログラムの場合に、エラー・チェックを行う DB2 API ユ
ーティリティー・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
RUNTIME=true をコメント解除した場合は値 -R$DB2PATH/lib が入ります
が、それ以外の場合は値は入りません。
-R$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 288 ページの『Solaris での C++ アプリケーションの作成』
関連サンプル:
292
アプリケーションの構築および実行
v 『bldapp -- Builds Solaris C++ applications』
Solaris での C++ ルーチンの作成
DB2 には、 C 組み込み SQL と DB2 API プログラムをコンパイルしてリンクするた
めのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサンプ
ル・プログラムと一緒に sqllib/samples/c ディレクトリーに置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャーまたはユーザー定義
関数) を作成するためのコマンドが入っています。このスクリプトは、クライアント・
アプリケーションから呼び出せるルーチンを共用ライブラリーの中でコンパイルしま
す。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。
データベース・パラメーターはオプションです。データベース名を指定しない場合は、
プログラムはデフォルトの sample データベースを使用します。また、データベースが
置かれているのと同じインスタンス上にストアード・プロシージャーが作成される必要
があるため、ユーザー ID とパスワード用のパラメーターはありません。
手順:
この後の例は、次のものを使用してルーチンの共用ライブラリーを作成する方法を示し
ています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの共用ライブラリー
ソース・ファイル spserver.sqC からサンプル・プログラム spserver を作成するに
は、次のように入力します。
1. sample データベースに接続している場合は、次のようにビルド・ファイル名とプロ
グラム名を入力します。
bldrtn spserver
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function ディ
レクトリーにコピーします。
第 10 章 Solaris
293
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. カタログが終了したら、データベースを一度停止してから再始動し、新しい共用ライ
ブラリーが認識されるようにします。
共用ライブラリー spserver の作成が完了したら、共用ライブラリーにアクセスするク
ライアント・アプリケーション spclient を構築することができます。spclient は、ス
クリプト bldapp を使用して構築することができます。
共用ライブラリーにアクセスするには、次のように入力してサンプル・クライアント・
アプリケーションを実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー spserver にアクセスし、さまざ
まなストアード・プロシージャー関数をサーバー・データベース上で実行します。出力
は、クライアント・アプリケーションに戻されます。
非組み込み SQL UDF の共用ライブラリー
ユーザー定義関数プログラム udfsrv をソース・ファイル udfsrv.C から作成するに
は、次のようにビルド・スクリプト名とプログラム名を入力します。
bldrtn udfsrv
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
294
アプリケーションの構築および実行
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。スクリプト・ファイル bldapp を使用して、ソース・ファ
イル udfcli.sqC から udfcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfsrv にアクセスし、ユーザー
定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
組み込み SQL UDF の共用ライブラリー
sample データベースに接続しているときに、組み込み SQL ユーザー定義関数プログラ
ム udfemsrv をソース・ファイル udfemsrv.sqC から作成するには、次のようにビル
ド・スクリプト名とプログラム名を入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
スクリプト・ファイルは、 UDF を sqllib/function ディレクトリーにコピーします。
必要であれば、UDF にファイル・モードを設定してクライアント・アプリケーションの
データベース・マネージャーからアクセスできるようにします。
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。スクリプト・ファイル bldapp を使用して、ソー
ス・ファイル udfemcli.sqC から udfemcli を作成することができます。
共用ライブラリー内の UDF を呼び出すには、以下を入力してクライアント・アプリケ
ーションを実行します。
udfemcli database userid password
第 10 章 Solaris
295
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー udfemsrv にアクセスし、ユーザ
ー定義関数をサーバー・データベース上で実行します。出力は、クライアント・アプリ
ケーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 73 ページの『C/C++ のサンプル』
v 297 ページの『Solaris C++ ルーチンのコンパイルとリンクのオプション』
関連サンプル:
v 『bldrtn -- Builds Solaris C++ routines (stored procedures or UDFs)』
v 『spclient.sqC -- Call various stored procedures (C++)』
v 『spserver.sqC -- A variety of types of stored procedures (C++)』
v 『udfcli.sqC -- Call a variety of types of user-defined functions (C++)』
v 『udfsrv.C -- Call a variety of types of user-defined functions (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
C++ ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds Solaris C++ routines (stored procedures or UDFs)
# Usage: bldrtn <prog_name> [ <db_name> ]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64-bit programs, uncomment the following line.
# BUILD_64BIT=true
296
アプリケーションの構築および実行
if [ "$BUILD_64BIT" != "" ]
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# Set the runtime path since routines run as setuid.
EXTRA_LFLAG="-R$DB2PATH/lib"
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2
fi
# Compile the program.
CC -xarch=$CFLAG_ARCH -mt -DUSE_UI_THREADS -Kpic ¥
-I$DB2PATH/include -c $1.C
# Link the program and create a shared library
CC -xarch=$CFLAG_ARCH -mt -G -o $1 $1.o $EXTRA_LFLAG ¥
-L$DB2PATH/lib -ldb2
# Copy the shared library to the sqllib/function subdirectory.
# Note: the user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
Solaris C++ ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、Forte C++ コンパイラーを
使用して、 C++ ルーチン (ストアード・プロシージャーとユーザー定義関数) を作成す
るのにお勧めするコンパイルとリンクのオプションです。
第 10 章 Solaris
297
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
CC
C++ コンパイラー。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
ルーチンを他のルーチンと同じプロセスで実行する (THREADSAFE) か、ま
たはエンジンそのもので実行する (NOT FENCED) かに応じて、マルチスレ
ッド・サポートを使用可能にします。
-DUSE_UI_THREADS
Sun の「UNIX International」スレッド API を使用可能にします。
-Kpic
共用ライブラリー用の位置に依存しないコードを生成します。
-I$DB2PATH/include
DB2 組み込みファイルのロケーションを指定します。
-c
298
コンパイルのみを実行し、リンクは実行しません。 このスクリプト・ファイ
ルでは、コンパイルとリンクは別個のステップです。
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
CC
コンパイラーをリンカーのフロントエンドとして使用します。
-xarch=$CFLAG_ARCH
このオプションを使用すると、 libdb2.so へのリンク時に必ず正しい実行可
能ファイルがコンパイラーで作成されるようにすることができます。
$CFLAG_ARCH の値は、32 ビットの場合は v8plusa に、64 ビットの場合は
v9 に設定されます。
-mt
これが必要なのは、DB2 ライブラリーは -mt にリンクされているからです。
-G
共用ライブラリーを生成します。
-o $1
実行可能ファイルを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
$EXTRA_LFLAG
ルーチンが setuid として実行されるため、これには、ランタイム・パスを設
定するための値 -R$DB2PATH/lib が入ります。
-R$DB2PATH/lib
ランタイムの DB2 共用ライブラリーのロケーションを示します。たとえば、
$HOME/sqllib/lib。
-L$DB2PATH/lib
リンク時の DB2 共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションが指定されない場合、コンパイラーはパス
として /usr/lib:/lib を想定します。
-ldb2
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 293 ページの『Solaris での C++ ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds Solaris C++ routines (stored procedures or UDFs)』
Solaris での C++ マルチスレッド・アプリケーションの作成
SUN および POSIX のスレッド・ライブラリーを使用するマルチスレッド・アプリケー
ションが、DB2 でサポートされます。デフォルトは Sun スレッドです。 Solaris 上で
Forte C++ を使用するマルチスレッド・アプリケーションは、 -mt を使用してコンパイ
ルしてリンクする必要があります。これは、-D_REENTRANT をプリプロセッサーに渡し、
第 10 章 Solaris
299
-lthread をリンカーに渡します。また、Sun の Unix International スレッド API を使
用するには、コンパイル定義 -DUSE_UI_THREADS を指定する必要があります。
注: POSIX スレッドを使用したい場合は、 getpwnam_r() などの関数の POSIX の変形
を許可するコンパイラー・オプション -D_POSIX_PTHREAD_SEMANTICS を追加し、さ
らにリンク・オプション -lpthread を追加する必要もあります。既成の bldmt ス
クリプトを使用する場合、 -DUSE_UI_THREADS 定義の削除も必要です。
DB2 には、 C++ 組み込み SQL と DB2 API プログラムをコンパイルしてリンクする
ためのビルド・スクリプトが用意されていて、このファイルを使用して作成できるサン
プル・プログラムと一緒に sqllib/samples/cpp ディレクトリーに置かれています。
スクリプト bldmt には、マルチスレッド・アプリケーションを作成するためのコマンド
が入っています。これは最大 4 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。 第 2 パラメータ
ー $2 には、接続先のデータベースの名前を指定します。 第 3 パラメーター $3 には
そのデータベースのユーザー ID を、また $4 にはパスワードを指定します。第 1 パラ
メーター (ソース・ファイル名) だけが必須です。データベース名、ユーザー ID、およ
びパスワードは任意指定です。データベース名を指定しない場合は、プログラムはデフ
ォルトの sample データベースを使用します。
手順:
ソース・ファイル dbthrds.sqC からサンプル・プログラム dbthrds を作成するには、
次のように入力します。
bldmt dbthrds
結果として、実行可能ファイル dbthrds が作成されます。 sample データベースに対し
てこの実行可能ファイルを実行するには、次のように入力します。
dbthrds
注: かなりの数の接続を持つマルチスレッド・プログラムの場合は、カーネル・パラメ
ーター semsys:seminfo_semume と shmsys:shminfo_shmseg をデフォルトの値より
も大きく設定する必要がある場合があります。以下の db2osconf ユーティリティー
関連のリンクを参照して、これらのパラメーターの推奨値を確認してください。
関連概念:
v 100 ページの『ビルド・ファイル』
v コマンド・リファレンス の『db2osconf - カーネル・パラメーター値のためのユーテ
ィリティー・コマンド』
関連資料:
v 73 ページの『C/C++ のサンプル』
300
アプリケーションの構築および実行
関連サンプル:
v 『bldmt -- Builds Solaris C++ multi-threaded applications』
v 『dbthrds.sqC -- How to use multiple context APIs on UNIX (C++)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
C++ マルチスレッド・アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldmt
# Builds Solaris C++ multi-threaded applications
# Usage: bldmt <prog_name> [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# To compile 64-bit programs, uncomment the following line.
# BUILD_64BIT=true
if [ "$BUILD_64BIT" != "" ]
then
CFLAG_ARCH=v9
else
CFLAG_ARCH=v8plusa
fi
# To specify a runtime path for shared libraries, uncomment the
# following line (usually only needed for setuid applications).
# RUNTIME=true
if [ "$RUNTIME" != "" ]
then
EXTRA_LFLAG="-R$DB2PATH/lib"
else
EXTRA_LFLAG=""
fi
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqC" ]
then
./embprep $1 $2 $3 $4
fi
# Compile the program.
CC -xarch=$CFLAG_ARCH -mt -DUSE_UI_THREADS -I$DB2PATH/include -c $1.C
# Link the program.
CC -xarch=$CFLAG_ARCH -mt -o $1 $1.o $EXTRA_LFLAG -L$DB2PATH/lib -ldb2
第 10 章 Solaris
301
Micro Focus COBOL
Solaris での Micro Focus COBOL コンパイラーの構成
組み込み SQL および DB2 API 呼び出しの入ったアプリケーションを開発する場合
に、 Micro Focus COBOL コンパイラーを使用するには、気を付けなければならない点
があります。
手順:
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target mfcob オプションを使用してください。
v DB2 COBOL COPY ファイル・ディレクトリーを、 Micro Focus COBOL 環境変数
COBCPY に含める必要があります。 COBCPY 環境変数には、COPY ファイルのロ
ケーションを指定します。 Micro Focus COBOL 用の DB2 COPY ファイルは、デー
タベース・インスタンス・ディレクトリーの下にある sqllib/include/cobol_mf に
あります。
このディレクトリーを含めるには、次のように入力します。
– bash または korn シェルの場合
export COBCPY=$COBCPY:$HOME/sqllib/include/cobol_mf
– C シェルの場合
setenv COBCPY $COBCPY:$HOME/sqllib/include/cobol_mf
注: COBCPY を .profile ファイル中に設定することもできます。
関連タスク:
v 306 ページの『Solaris での Micro Focus COBOL ルーチンの作成』
v 302 ページの『Solaris での Micro Focus COBOL アプリケーションの作成』
Solaris での Micro Focus COBOL アプリケーションの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
ビルド・スクリプト bldapp には、 DB2 アプリケーション・プログラムを作成するコ
マンドが入っています。これは最大 4 個のパラメーターをとります。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、オプションとして 3 つの
パラメーターが用意されています。 2 番目のパラメーターは $2 で、接続するデータベ
302
アプリケーションの構築および実行
ースの名前を指定します。 3 番目のパラメーターは $3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが $4 で、データベースのパスワードを指定しま
す。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのスクリ
プト embprep にパラメーターを渡します。データベース名が指定されていない場合は、
デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワード
のパラメーターは、プログラムを構築するインスタンスとデータベースのあるインスタ
ンスが異なる場合にのみ必要になります。
手順:
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client ができます。 sample データベースに対してこ
の実行可能ファイルを実行するには、次のように入力します。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp updat
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp updat database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
updat
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
第 10 章 Solaris
303
updat database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
updat database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 305 ページの『Solaris Micro Focus COBOL アプリケーションのコンパイルとリンク
のオプション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp -- Builds Solaris Micro Focus COBOL applications』
v 『client.cbl -- How to set and query a client (MF COBOL)』
v 『updat.sqb -- How to update, delete and insert table data (MF COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL アプリケーションの構築スクリプト
#! /bin/sh
# SCRIPT: bldapp
# Builds Solaris Micro Focus COBOL applications
# Usage: bldapp [ <db_name> [ <userid> <password> ]]
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
./embprep $1 $2 $3 $4
fi
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
# Compile the checkerr.cbl error-checking utility.
cob -cx checkerr.cbl
# Compile the program.
cob -cx $1.cbl
# Link the program.
cob -x $1.o checkerr.o -L$DB2PATH/lib -ldb2 -ldb2gmf
304
アプリケーションの構築および実行
Solaris Micro Focus COBOL アプリケーションのコンパイルとリンクのオプ
ション
以下は、bldapp ビルド・スクリプトに示されているように、Solaris 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL 組み込み SQL および DB2 API アプリケ
ーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cob
Micro Focus COBOL コンパイラー。
-cx
オブジェクト・モジュールにコンパイルします。
リンク・オプション
cob
コンパイラーをリンカーのフロントエンドとして使用します。
-x
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを組み込みます。
checkerr.o
エラー・チェック用のユーティリティー・オブジェクト・ファイルを組み込み
ます。
-L$DB2PATH/lib
リンク時の DB2 静的ライブラリーおよび共用ライブラリーのロケーションを
示します。たとえば、 $HOME/sqllib/lib。
-ldb2
DB2 ライブラリーとリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 302 ページの『Solaris での Micro Focus COBOL アプリケーションの作成』
関連サンプル:
v 『bldapp -- Builds Solaris Micro Focus COBOL applications』
第 10 章 Solaris
305
Solaris での Micro Focus COBOL ルーチンの作成
DB2 には、 Micro Focus COBOL 組み込み SQL と DB2 API プログラムをコンパイル
してリンクするためのビルド・スクリプトが用意されていて、このファイルを使用して
作成できるサンプル・プログラムと一緒に sqllib/samples/cobol_mf ディレクトリーに
置かれています。
スクリプト bldrtn には、ルーチン (ストアード・プロシージャー) を作成するための
コマンドが入っています。このスクリプト・ファイルは、クライアント・アプリケーシ
ョンから呼び出せるルーチンを共用ライブラリーの中でコンパイルします。
第 1 パラメーター $1 には、ソース・ファイルの名前を指定します。スクリプト・ファ
イルは、ソース・ファイル名 $1 を共用ライブラリー名として使用します。 第 2 パラ
メーター $2 には、接続先のデータベースの名前を指定します。ルーチンは、データベ
ースが置かれているのと同じインスタンス上で作成する必要があるため、ユーザー ID
やパスワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。データベース名は任意
で指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。
手順:
Solaris 上で Micro Focus ルーチンを作成する場合、事前に以下のコマンドを実行して
ください。
db2stop
db2set DB2LIBPATH=$LD_LIBRARY_PATH
db2set DB2ENVLIST="COBDIR LD_LIBRARY_PATH"
db2set
db2start
db2stop がデータベースを停止するようにしてください。最後の db2set コマンドが設
定値をチェックするために出されます。 DB2LIBPATH および DB2ENVLIST が正しく設定
されるようにしてください。
サンプル・データベースに接続している場合に、ソース・ファイル outsrv.sqb からサ
ンプル・プログラム outsrv を作成するには、次のように入力します。
bldsrv outsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldsrv outsrv database
スクリプト・ファイルは、共用ライブラリーをサーバー上の sqllib/function というパ
スにコピーします。
306
アプリケーションの構築および実行
共用ライブラリー outsrv を作成し終わったら、その中の同名のルーチンを呼び出すク
ライアント・アプリケーション outcli を作成することができます。 outcli は、スク
リプト・ファイル bldapp を使用して構築することができます。
ストアード・プロシージャーを呼び出すためには、次のように入力してサンプル・クラ
イアント・アプリケーションを実行します。
outcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは共用ライブラリー outsrv にアクセスします。これ
は、同一名のルーチンをサーバー・データベース上で実行してから、クライアント・ア
プリケーションに出力を戻します。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 308 ページの『Solaris Micro Focus COBOL ルーチンのコンパイルとリンクのオプシ
ョン』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn -- Builds Solaris Micro Focus COBOL routines (stored procedures)』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (MF COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (MF
COBOL)』
v 『embprep -- To prep and bind C/C++ and Micro Focus COBOL embedded SQL
programs』
Micro Focus COBOL ルーチンの構築スクリプト
#! /bin/sh
# SCRIPT: bldrtn
# Builds Solaris Micro Focus COBOL routines (stored procedures)
# Usage: bldrtn <prog_name> [ <db_name> ]
第 10 章 Solaris
307
# Set DB2PATH to where DB2 will be accessed.
# The default is the standard instance path.
DB2PATH=$HOME/sqllib
# If an embedded SQL program, precompile and bind it.
if [ -f $1".sqb" ]
then
./embprep $1 $2
fi
# Set COBCPY to include the DB2 COPY files directory.
COBCPY=$COBCPY:$DB2PATH/include/cobol_mf
# Compile the program.
cob -cx $1.cbl
# Link the program.
cob -x -o $1 $1.o -Q -G -L$DB2PATH/lib -ldb2 -ldb2gmf
# Copy the shared library to the sqllib/function subdirectory.
# The user must have write permission to this directory.
rm -f $DB2PATH/function/$1
cp $1 $DB2PATH/function
Solaris Micro Focus COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn ビルド・スクリプトに示されているように、Solaris 上で Micro Focus
COBOL コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシージャー)
を作成するのにお勧めするコンパイルとリンクのオプションです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
308
cob
COBOL コンパイラー。
-cx
オブジェクト・モジュールにコンパイルします。
アプリケーションの構築および実行
bldrtn のコンパイルおよびリンク・オプション
リンク・オプション
cob
コンパイラーをリンカーのフロントエンドとして使用します。
-x
-G オプションと一緒に使用すると、共用ライブラリーが作成されます。
-o $1
実行可能プログラムを指定します。
$1.o
プログラム・オブジェクト・ファイルを指定します。
-Q -G
共用ライブラリーを生成します。
-L$DB2PATH/lib
DB2 ランタイム共用ライブラリーのロケーションを指定します。たとえば、
$HOME/sqllib/lib。 -L オプションを指定しないと、コンパイラーは次のパス
を想定します。 /usr/lib:/lib。
-ldb2
DB2 ライブラリーとリンクします。
-ldb2gmf
Micro Focus COBOL 用 DB2 例外ハンドラー・ライブラリーとリンクしま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 306 ページの『Solaris での Micro Focus COBOL ルーチンの作成』
関連サンプル:
v 『bldrtn -- Builds Solaris Micro Focus COBOL routines (stored procedures)』
第 10 章 Solaris
309
310
アプリケーションの構築および実行
第 11 章 Windows オペレーティング・システム
WCHARTYPE CONVERT プリコンパイル・
オプション . . . . . . . . . . . .
オブジェクトのリンクと埋め込みデータベー
ス (OLE DB) 表関数. . . . . . . . .
Windows Management Instrumentation (WMI)
Microsoft Visual Basic . . . . . . . .
Visual Basic による ADO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual Basic による RDO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual Basic でのオブジェクトのリンクと
埋め込み (OLE) オートメーション . . .
Microsoft Visual C++ . . . . . . . . .
Visual C++ による ADO アプリケーショ
ンの作成 . . . . . . . . . . . .
Visual C++ でのオブジェクトのリンクと
埋め込み (OLE) オートメーション . . .
Windows での C/C++ アプリケーションの
作成 . . . . . . . . . . . . .
C/C++ アプリケーションのバッチ・ファ
イル . . . . . . . . . . . . .
Windows C/C++ アプリケーションのコン
パイルとリンクのオプション . . . . .
Windows での C/C++ ルーチンの作成 . .
C/C++ ルーチンのバッチ・ファイル . .
Windows C/C++ ルーチンのコンパイルと
リンクのオプション . . . . . . . .
IBM VisualAge COBOL . . . . . . . .
Windows での IBM COBOL コンパイラー
の構成 . . . . . . . . . . . .
312
313
313
314
314
317
319
319
320
322
323
325
326
327
331
331
333
333
Windows での IBM COBOL アプリケーシ
ョンの作成 . . . . . . . . . . .
IBM COBOL アプリケーションのバッ
チ・ファイル . . . . . . . . . .
Windows IBM COBOL アプリケーション
のコンパイルとリンクのオプション . . .
Windows での IBM COBOL ルーチンの作
成 . . . . . . . . . . . . . .
IBM COBOL ルーチンのバッチ・ファイ
ル . . . . . . . . . . . . . .
Windows IBM COBOL ルーチンのコンパ
イルとリンクのオプション . . . . . .
Micro Focus COBOL . . . . . . . . .
Windows での Micro Focus COBOL コン
パイラーの構成 . . . . . . . . .
Windows での Micro Focus COBOL アプ
リケーションの作成 . . . . . . . .
Micro Focus COBOL アプリケーションの
バッチ・ファイル . . . . . . . . .
Windows Micro Focus COBOL アプリケー
ションのコンパイルとリンクのオプション
Windows での Micro Focus COBOL ルー
チンの作成 . . . . . . . . . . .
Micro Focus COBOL ルーチンのバッチ・
ファイル . . . . . . . . . . . .
Windows Micro Focus COBOL ルーチンの
コンパイルとリンクのオプション . . .
オブジェクト REXX . . . . . . . . .
Windows でのオブジェクト REXX アプリ
ケーションの作成 . . . . . . . . .
334
335
336
337
338
339
340
340
341
343
343
344
345
346
346
346
この章は、 Windows オペレーティング・システムでアプリケーションを構築するため
の詳細な情報を提供します。 Windows 環境での DB2 アプリケーション開発の最新の
更新事項については、次の Web ページを参照してください。
http://www.ibm.com/software/data/db2/udb/ad
© Copyright IBM Corp. 1993 - 2002
311
WCHARTYPE CONVERT プリコンパイル・オプション
WCHARTYPE プリコンパイル・オプションは、 wchar_t データ・タイプを使用する、
マルチバイト形式またはワイド文字形式のいずれかでグラフィック・データを処理しま
す。
DB2® (Windows® 版) オペレーティング・システムの場合、 Microsoft® Visual C++ コ
ンパイラーでコンパイルされたアプリケーションでは WCHARTYPE CONVERT オプシ
ョンがサポートされています。データベース・コード・ページとは異なるコード・ペー
ジのデータを DB2 データベースにアプリケーションが挿入する場合は、このコンパイ
ラーで CONVERT オプションを使用しないでください。 DB2 は通常はこのような状
況でコード・ページ変換を実行します。しかし、Microsoft C ランタイム環境は、特定
の 2 バイト文字の代入文字は処理しません。 これは、ランタイム変換エラーとなる場
合があります。
WCHARTYPE のデフォルト・オプションは NOCONVERT です。 NOCONVERT オプ
ションを使用すると、アプリケーションとデータベース・マネージャーとの間の暗黙の
文字変換は起きなくなります。グラフィック・ホスト変数のデータは、変換されない 2
バイト文字セット (DBCS) 文字として、データベース・マネージャーとの間で送受信さ
れます。
グラフィック・データをワイド文字形式からマルチバイト形式に変換したい場合は、
wcstombs() 関数を使用してください。たとえば:
wchar_t widechar[200];
wchar_t mb[200];
wcstombs((char *)mb,widechar,200);
EXEC SQL INSERT INTO TABLENAME VALUES(:mb);
同様に、mbstowcs() 関数を使用して、マルチバイト形式をワイド文字形式に変換するこ
とができます。
アプリケーションが静的に C ランタイム・ライブラリーにバインドされている場合
は、アプリケーションから setlocale() 呼び出しを出さないでください。これは、C
ランタイム変換エラーとなる可能性があります。アプリケーションが動的に C 実行時
ライブラリーにバインドされている場合は、 setlocale() の使用は問題になりません。
これは、ルーチン (ストアード・プロシージャーとユーザー定義関数) にも当てはまり
ます。
関連資料:
v コマンド・リファレンス の『PRECOMPILE コマンド』
312
アプリケーションの構築および実行
オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数
DB2® は、OLE DB 表関数をサポートします。 これらの関数については、 CREATE
FUNCTION DDL を作成する他にアプリケーションを構築する必要はありません。 DB2
の sqllib¥samples¥oledb ディレクトリーに、 OLE DB 表関数のサンプル・ファイル
が提供されています。 これらは、コマンド行プロセッサー (CLP) のファイルです。こ
れらのファイルは、以下のステップで構築できます。
1. database_name への db2 の接続
2. db2 -t -v -f file_name.db2
3. db2 の終了
database_name は接続先のデータベース、 file_name は CLP ファイルの名前 (拡張子
は .db2) です。
これらのコマンドは、DB2 コマンド・ウィンドウで実行する必要があります。
関連資料:
v 95 ページの『オブジェクトのリンクと埋め込みデータベース (OLE DB) 表関数のサ
ンプル』
Windows Management Instrumentation (WMI)
Windows® Management Instrumentation (WMI) は、Microsoft の Windows 管理サービス
のキー・コンポーネントです。 WMI は、アプリケーションおよびシステムの構成、状
況、および運用の各側面を詳しく記述した一貫性のあるモデルとして機能します。
DB2® WMI プロバイダーを使用すると、 DB2 サーバー・サービスのモニター、データ
ベースの列挙と作成、操作可能設定値の構成、データベースのバックアップ、リスト
ア、およびロールフォワード操作の実行を WMI アプリケーションで行うことができま
す。
DB2 では、 sqllib¥samples¥wmi ディレクトリーに置かれている Visual Basic のスク
リプト記述言語用の WMI サンプル・ファイルを利用することができます。このサンプ
ル・プログラムを実行する場合は、以下のコマンドを実行して DB2 WMI プロバイダー
が登録済みであることを事前に確認してください。
mofcomp %DB2PATH%¥bin¥db2wmi.mof
regsvr32 %DB2PATH%¥bin¥db2wmi.dll
ここで %DB2PATH% は、DB2 のインストール先を示すパスです。
Visual Basic スクリプト・サンプルを実行するには、 cscript コマンドを使用します。
たとえば、listsvr サンプル・スクリプトを実行するには、以下を入力します。
cscript listsvr.vbs
第 11 章 Windows オペレーティング・システム
313
関連資料:
v 93 ページの『Windows Management Instrumentation のサンプル』
Microsoft Visual Basic
Visual Basic による ADO アプリケーションの作成
ActiveX Data Object (ADO) を使用すれば、 OLE DB Provider を使用して、データベー
ス・サーバー内のデータにアクセスしたり、操作したりするアプリケーションを作成で
きます。 ADO の主要な利点は、速度が速く、使用が容易で、メモリーのオーバーヘッ
ドが少なく、ディスク・フットプリントが小さいことです。
Visual Basic ADO サンプル・プログラムは、sqllib¥samples¥VB¥ADO ディレクトリーに
置かれています。
注: DB2 ADO サンプルを実行するには、以下のバージョン以降のコンポーネントをお
勧めします。
1. Visual Basic 6.0 Professional Edition
2. Microsoft データ アクセス 2.7 SDK (選択によっては DB2 バージョン 8 と一
緒にインストールします)
3. Visual Basic Service Pack 5 (http://msdn.microsoft.com/vstudio/sp/vs6sp5/vbfixes.asp
に掲載されています)
4. 最新の Visual Studio Service Pack (http://msdn.microsoft.com/vstudio/ に掲載され
ています)
手順:
以下の 2 つの ODBC 対応プロバイダーのどちらでも使用することができます。
v DB2 用の IBM OLE DB Provider
v ODBC 用の Microsoft OLE DB Provider
DB2 用の IBM OLE DB Provider の使用
Windows オペレーティング・システム上の DB2 バージョン 8.1 クライアントは、選択
によっては、DB2 用の IBM OLE DB 2.0 準拠のプロバイダーである IBMDADB2 を
インストールします。 プロバイダーは、DB2 データベース内のデータにアクセスする
消費者用のインターフェースを公開します。 DB2 用の IBM OLE DB Provider は、以
下の ADO アプリケーション・タイプをサポートします。
v Microsoft Active Server Pages (ASP)
v Microsoft Visual Studio C++ および Visual Basic アプリケーション
v Microsoft Visual Interdev
314
アプリケーションの構築および実行
これらのタイプのアプリケーションの詳細については、 ADO 資料を参照してくださ
い。
DB2 用の IBM OLE DB Provider を使用して DB2 サーバーにアクセスするには、
Visual Basic アプリケーションは、以下のように ADO 接続ストリング内に PROVIDER
キーワードを指定しなければなりません。
Dim c1 As ADODB.Connection
Dim c1str As String
c1str = "Provider=ibmdadb2; DSN=db2alias; UID=userid; PWD=password"
c1.Open c1str
...
db2alias は、 DB2 データベース・ディレクトリー内でカタログされる DB2 データベ
ースの別名です。
注: DB2 用の IBM OLE DB Provider を使用する場合、データ・ソース用の ODBC カ
タログ・ステップを実行する必要はありません。このステップが必要なのは、
ODBC 用に OLE DB Provider を使用する場合です。
ODBC 用の Microsoft OLE DB Provider の使用
Microsoft OLE DB Provider および Visual Basic で ADO を使用する場合は、 ADO タ
イプ・ライブラリーへの参照を設定する必要があります。 以下のようにします。
1. プロジェクト・メニューから「参照 (References)」を選択する。
2. 「Microsoft ActiveX Data Object <version_number> ライブラリー (Microsoft ActiveX
Data Objects <version_number> Library)」のボックスにチェックマークを付ける。
3. 「OK」をクリックします。
<version_number> は、ADO ライブラリーの現行バージョンです。
このようにすると、 VBA オブジェクト・ブラウザーと IDE エディターを介して、
ADO オブジェクト、メソッド、および特性にアクセスできるようになります。
接続を確立します。
Dim db As Connection
Set db = New Connection
ローカル・カーソル・ライブラリーによって提供されるクライアント側のカーソルを設
定します。
db.CursorLocation = adUseClient
ADO が Microsoft ODBC Driver を使用するようにプロバイダーを設定します。
ADO でのサンプル・データベースへのアクセス
第 11 章 Windows オペレーティング・システム
315
完全な Visual Basic プログラムには、フォーム、その他のグラフィカルなエレメントが
含まれており、このプログラムは Visual Basic 環境の内部で表示する必要があります。
上記で説明したように、 IBM OLE DB Provider または Microsoft OLE DB Provider の
いずれかを使用してデータベースに接続した後で DB2 sample データベースにアクセス
するプログラムの一部をなす Visual Basic コマンドを以下に示します。
ユーザー ID またはパスワードを指定しないで、sample データベースをオープンしま
す。つまり、現行ユーザーを使用します。
db.Open "SAMPLE"
レコード・セットを作成します。
Set adoPrimaryRS = New Recordset
SELECT ステートメントを使用して、レコード・セットにデータを入れます。
adoPrimaryRS.Open "select EMPNO,LASTNAME,FIRSTNME,MIDINIT,EDLEVEL,JOB
from EMPLOYEE Order by EMPNO", db
この時点で、プログラマーは ADO メソッドを使用して、次のレコード・セットに移動
する場合など、データにアクセスできるようになります。
adoPrimaryRS.MoveNext
レコード・セットの現行レコードを削除します。
adoPrimaryRS.Delete
またプログラマーは、以下のようにして、個々のフィールドにアクセスすることもでき
ます。
Dim Text1 as String
Text1 = adoPrimaryRS!LASTNAME
関連概念:
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider for DB2 の目的』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider for DB2 でサポートされているアプリケーション・タイ
プ』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『Visual Basic ADO アプリケーションによるデータ・ソースへの接続』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider で自動的に使用可能になる OLE DB サービス』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider によるラージ・オブジェクトの操作』
316
アプリケーションの構築および実行
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『MTS および COM+ 分散トランザクションのサポートと IBM OLE DB Provider』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider の制限』
関連資料:
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での OLE DB コンポーネントおよびインターフェースの
サポート』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での OLE DB プロパティーのサポート』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での ADO メソッドおよびプロパティーのサポート』
v 91 ページの『Visual Basic のサンプル』
Visual Basic による RDO アプリケーションの作成
Remote Data Objects (RDO) は、 ODBC を介してリモート・データ・ソースにアクセ
スするための情報モデルを提供します。 RDO が提供するオブジェクトのセットを使用
すれば、データベースへの接続、照会の実行、ストアード・プロシージャーの実行、結
果の操作、変更のサーバーへのコミットが容易になります。 RDO は、リモート ODBC
リレーショナル・データ・ソースにアクセスするために特別に設計されたものであり、
複雑なアプリケーション・コードを使用せずに ODBC を使用することが容易になって
います。そのため、ODBC ドライバーによって公開されるリレーショナル・データベー
スにアクセスするための主な手段となっています。 RDO はオープン・データベース・
コネクティビティー (ODBC) API を介したシン・コード層をインプリメントしていま
す。また、接続の確立、結果セットとカーソルの作成を行い、ワークステーション・リ
ソースを最小限に抑えて複雑なプロシージャーを実行するドライバー・マネージャーも
インプリメントしています。
DB2 の sqllib¥samples¥VB に、 Visual Basic RDO のサンプル・プログラムがありま
す。
手順:
RDO を Microsoft Visual Basic で使用する場合は、 Visual Basic のプロジェクトへの
参照を設定する必要があります。以下のようにします。
1. プロジェクト・メニューから「参照 (References)」を選択する。
2. 「Microsoft Remote Data Object <Version Number>」のボックスにチェックマークを
付ける。
3. 「OK」をクリックします。
<version_number> は、RDO の現行バージョンです。
第 11 章 Windows オペレーティング・システム
317
完全な Visual Basic プログラムには、フォーム、その他のグラフィカルなエレメントが
含まれており、このプログラムは Visual Basic 環境の内部で表示する必要があります。
以下に、 DB2 プログラムの一部を成す Visual Basic コマンドを示します。 DB2 プロ
グラムは、sample データベースに接続して、 EMPLOYEE 表のすべての列を選択するレコ
ード・セットをオープンし、メッセージ・ウィンドウに従業員名を一人一人表示しま
す。
Dim
Dim
Dim
Dim
Dim
Dim
rdoEn As rdoEngine
rdoEv As rdoEnvironment
rdoCn As rdoConnection
Cnct$
rdoRS As rdoResultset
SQLQueryDB As String
接続ストリングを割り当てます。
Cnct$ = "DSN=SAMPLE;UID=;PWD=;"
RDO 環境を設定します。
Set rdoEn = rdoEngine
Set rdoEv = rdoEn.rdoEnvironments(0)
データベースに接続します。
Set rdoCn = rdoEv.OpenConnection("", , , Cnct$)
レコード・セットの SELECT ステートメントを割り当てます。
SQLQueryDB = "SELECT * FROM EMPLOYEE"
レコード・セットをオープンして、照会を実行します。
Set rdoRS = rdoCn.OpenResultset(SQLQueryDB)
レコード・セットの終わりに While not を置き、メッセージ・ボックスに、表にあるラ
ストネームとファーストネーム (1 回につき 1 人の従業員) を表示します。
While Not rdoRS.EOF
MsgBox rdoRS!LASTNAME & ", " & rdoRS!FIRSTNME
レコード・セット内の次の行に移動します。
rdoRS.MoveNext
Wend
プログラムをクローズします。
rdoRS.Close
rdoCn.Close
rdoEv.Close
関連資料:
v 91 ページの『Visual Basic のサンプル』
318
アプリケーションの構築および実行
Visual Basic でのオブジェクトのリンクと埋め込み (OLE) オートメーション
OLE では言語は限定されないので、任意の言語で OLE オートメーション UDF および
ストアード・プロシージャーをインプリメントすることができます。そのためには、
OLE オートメーション・サーバーのメソッドを公開し、そのメソッドを UDF として
DB2 に登録します。 OLE オートメーション・サーバーの開発をサポートするアプリケ
ーション開発環境には、以下の特定のバージョンが含まれます。 Microsoft® Visual
Basic、Microsoft Visual C++、Microsoft Visual J++、 Microsoft FoxPro、Borland
Delphi、Powersoft PowerBuilder、および Micro Focus COBOL。 さらに、たとえば
Microsoft Visual J++ のもののような、 OLE 用に正しくラップされた Java™ Bean オ
ブジェクトにも、 OLE オートメーションを介してアクセスすることができます。
OLE オートメーション・サーバーの開発の詳細については、該当するアプリケーション
開発環境の資料を参照する必要があります。
OLE オートメーション UDF およびストアード・プロシージャー
Microsoft Visual Basic は、OLE オートメーション・サーバーの作成をサポートしま
す。 新しい種類のオブジェクトは、 Visual Basic ではクラス・モジュールを Visual
Basic プロジェクトに追加することによって作成します。 メソッドは、パブリック・サ
ブプロシージャーをクラス・モジュールに追加することによって作成します。 これらの
パブリック・プロシージャーは、 DB2® に OLE オートメーション UDF およびストア
ード・プロシージャーとして登録できます。 OLE サーバーの作成および構築の詳細に
ついては、 Microsoft Visual Basic のマニュアル、 Creating OLE Servers, Microsoft
Corporation, 1995、および Microsoft Visual Basic に付属している OLE サンプルを参照
してください。
DB2 は、 Microsoft Visual Basic 内の OLE オートメーション UDF およびストアー
ド・プロシージャーのサンプルを提供しており、それはディレクトリー
sqllib¥samples¥ole¥msvb にあります。 OLE オートメーション UDF およびストアー
ド・プロシージャーのサンプルを作成して実行する方法については、
sqllib¥samples¥¥ole の README ファイルを参照してください。
関連資料:
v 94 ページの『オブジェクトのリンクと埋め込み (OLE) のサンプル』
Microsoft Visual C++
このセクションでは、組み込み SQL および DB2 API に加え、 ActiveX Data Objects
(ADO) およびオブジェクトのリンクと埋め込み (OLE) を使用したアプリケーションの
構築について説明します。
DB2 CLI アプリケーションおよびルーチンの構築に関する情報は、 コール・レベル・
インターフェース ガイドおよびリファレンス 内にあります。
第 11 章 Windows オペレーティング・システム
319
Visual C++ による ADO アプリケーションの作成
ActiveX Data Object (ADO) を使用すれば、 OLE DB Provider を使用して、データベー
ス・サーバー内のデータにアクセスしたり、操作したりするアプリケーションを作成で
きます。 ADO の主要な利点は、速度が速く、使用が容易で、メモリーのオーバーヘッ
ドが少なく、ディスク・フットプリントが小さいことです。
DB2 の sqllib¥samples¥VC に、 Visual C++ ADO のサンプル・プログラムがありま
す。
手順:
以下の 2 つの ODBC 対応プロバイダーのどちらでも使用することができます。
v DB2 用の IBM OLE DB Provider
v ODBC 用の Microsoft OLE DB Provider
DB2 用の IBM OLE DB Provider の使用
Windows オペレーティング・システム上の DB2 バージョン 8.1 クライアントは、選択
によっては、DB2 用の IBM OLE DB 2.0 準拠のプロバイダーである IBMDADB2 を
インストールします。 プロバイダーは、DB2 データベース内のデータにアクセスする
消費者用のインターフェースを公開します。 DB2 用の IBM OLE DB Provider は、以
下の ADO アプリケーション・タイプをサポートします。
v Microsoft Active Server Pages (ASP)
v Microsoft Visual Studio C++ および Visual Basic アプリケーション
v Microsoft Visual Interdev
これらのタイプのアプリケーションの詳細については、 ADO 資料を参照してくださ
い。
ODBC 用の Microsoft OLE DB Provider の使用
以下に示す変更を行うと、Microsoft OLE DB Provider および Visual C++ を使用する
DB2 ADO プログラムは、正規の C++ プログラムと同じようにコンパイルできるよう
になります。
C++ ソース・プログラムを ADO プログラムとして実行するには、以下の IMPORT ス
テートメントをソース・プログラム・ファイルの先頭に置くことができます。
#import "C:¥program files¥common files¥system¥ado¥msado<VERSION NUMBER>.dll" ¥
no_namespace ¥
rename( "EOF", "adoEOF")
<VERSION NUMBER> は、ADO ライブラリーのバージョン番号です。
320
アプリケーションの構築および実行
プログラムがコンパイルされたら、ユーザーは msado<VERSION NUMBER>.dll が指定され
たパスにあるかどうか検証する必要があります。 C:¥program files¥common
files¥system¥ado を環境変数 LIBPATH に追加し、短くした IMPORT ステートメント
を以下のようにソース・ファイルで使用することもできます。
#import <msado<VERSION NUMBER>.dll> ¥
no_namespace ¥
rename( "EOF", "adoEOF")
DB2 サンプル・プログラム BLOBAccess.dsp では、この方法が使用されています。
この IMPORT ステートメントにより、 DB2 プログラムには ADO ライブラリーへの
アクセス権が与えられます。これで、 Visual C++ プログラムも他のプログラムと同様
にコンパイルできるようになります。また、DB2 API または DB2 CLI など、別のプロ
グラミング・インターフェースを使用する場合、プログラム作成の詳細については、こ
の章の該当する節を参照してください。
関連概念:
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider for DB2 の目的』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider for DB2 でサポートされているアプリケーション・タイ
プ』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『C/C++ アプリケーションのコンパイルおよびリンクと IBM OLE DB Provider』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider による、C/C++ アプリケーションでのデータ・ソースへの
接続』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider で自動的に使用可能になる OLE DB サービス』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider によるラージ・オブジェクトの操作』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider の制限』
関連資料:
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『DB2 と OLE DB の間のデータ・タイプ・マッピング』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『OLE DB タイプから DB2 タイプにデータを設定するためのデータ変換』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『DB2 タイプから OLE DB タイプにデータを設定するためのデータ変換』
第 11 章 Windows オペレーティング・システム
321
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での OLE DB コンポーネントおよびインターフェースの
サポート』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での OLE DB プロパティーのサポート』
v アプリケーション開発ガイド クライアント・アプリケーションのプログラミング の
『IBM OLE DB Provider での ADO メソッドおよびプロパティーのサポート』
v 93 ページの『Visual C++ のサンプル』
Visual C++ でのオブジェクトのリンクと埋め込み (OLE) オートメーション
OLE では言語は限定されないので、任意の言語で OLE オートメーション UDF および
ストアード・プロシージャーをインプリメントすることができます。そのためには、
OLE オートメーション・サーバーのメソッドを公開し、そのメソッドを UDF として
DB2 に登録します。 OLE オートメーション・サーバーの開発をサポートするアプリケ
ーション開発環境には、以下の特定のバージョンが含まれます。 Microsoft® Visual
Basic、Microsoft Visual C++、Microsoft Visual J++、 Microsoft FoxPro、Borland
Delphi、Powersoft PowerBuilder、および Micro Focus COBOL。 さらに、たとえば
Microsoft Visual J++ のもののような、 OLE 用に正しくラップされた Java™ Bean オ
ブジェクトにも、 OLE オートメーションを介してアクセスすることができます。
OLE オートメーション・サーバーの開発の詳細については、該当するアプリケーション
開発環境の資料を参照する必要があります。
OLE オートメーション UDF およびストアード・プロシージャー
Microsoft Visual C++ は、 OLE オートメーション・サーバーの作成をサポートしま
す。サーバーは、 Microsoft Foundation Classes および Microsoft Foundation Class アプ
リケーション・ウィザードを使用して、または Win32 アプリケーションとして実現す
ることができます。 サーバーは、DLL または EXE にすることができます。 詳細につ
いては、 Microsoft Visual C++ の資料および Microsoft Visual C++ によって提供され
る OLE サンプルを参照してください。
DB2® は、 Microsoft Visual C++ に含まれている OLE オートメーション UDF および
ストアード・プロシージャーのサンプルを提供しており、それはディレクトリー
sqllib¥samples¥ole¥msvc にあります。 OLE オートメーション UDF およびストアー
ド・プロシージャーのサンプルを作成して実行する方法については、
sqllib¥samples¥ole の README ファイルを参照してください。
関連資料:
v 94 ページの『オブジェクトのリンクと埋め込み (OLE) のサンプル』
322
アプリケーションの構築および実行
Windows での C/C++ アプリケーションの作成
DB2 には、 DB2 API と組み込み SQL C/C++ プログラムのコンパイルとリンクのため
のバッチ・ファイルが用意されています。それは、このファイルを使用して作成できる
サンプル・プログラムと一緒に sqllib¥samples¥c および sqllib¥samples¥cpp ディレ
クトリーに置かれています。
バッチ・ファイル bldapp.bat には、 DB2 API と組み込み SQL プログラムを作成す
るためのコマンドが入っています。これは最大 4 個のパラメーターをとります。それら
は、バッチ・ファイル内では変数 %1、%2、%3、および %4 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。 これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、さらに別の 3 つのパラメ
ーターが用意されています。 2 番目のパラメーター %2 は、接続するデータベースの名
前を指定します。 3 番目のパラメーター %3 は、データベースのユーザー ID を指定し
ます。そして %4 は、パスワードを指定します。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのファイ
ル embprep.bat にパラメーターを渡します。 データベース名が指定されていない場合
は、デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワ
ードのパラメーターは、プログラムを構築するインスタンスとデータベースのあるイン
スタンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
sqllib¥samples¥c のソース・ファイル cli_info.c 、または sqllib¥samples¥cpp のソ
ース・ファイル cli_info.cxx のどちらかから、 DB2 API の組み込み SQL を含まな
いサンプル・プログラム cli_info を作成するには、次のように入力します。
bldapp cli_info
結果として、実行可能ファイル cli_info.exe が作成されます。 この実行可能ファイル
を実行するには、次の実行可能ファイル名を (拡張子なしで) コマンド行に入力しま
す。
cli_info
組み込み SQL アプリケーションの構築と実行
sqllib¥samples¥c の C ソース・ファイル tbmod.sqc 、または sqllib¥samples¥cpp
の C++ ソース・ファイル tbmod.sqx から組み込み SQL アプリケーション tbmod を
構築する方法は 3 つあります。
第 11 章 Windows オペレーティング・システム
323
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
bldapp tbmod
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp tbmod database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp tbmod database userid password
結果として、実行可能ファイル tbmod.exe が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
tbmod
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
tbmod database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
tbmod database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 326 ページの『Windows C/C++ アプリケーションのコンパイルとリンクのオプショ
ン』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldapp.bat -- Builds C applications on Windows』
v 『cli_info.c -- Set and get information at the client level (C)』
v 『embprep.bat -- Prep and binds a C/C++ or Micro Focus COBOL embedded SQL
program on Windows』
v 『tbmod.sqc -- How to modify table data (C)』
v 『bldapp.bat -- Builds C++ applications on Windows』
v 『cli_info.C -- Set and get information at the client level (C++)』
324
アプリケーションの構築および実行
v 『tbmod.sqC -- How to modify table data (C++)』
C/C++ アプリケーションのバッチ・ファイル
@echo off
rem BATCH FILE: bldapp.bat
rem Builds Windows Microsoft Visual C++ applications
rem Usage: bldapp prog_name [ db_name [ userid password ]]
rem
rem
rem
rem
set
Default compiler is set to Microsoft Visual C++
To use a different compiler, comment out "set BLDCOMP=cl"
and uncomment "set BLDCOMP=icl" or "set BLDCOMP=ecl"
Microsoft C/C++ Compiler
BLDCOMP=cl
rem Intel C++ Compiler for 32-bit applications
rem set BLDCOMP=icl
rem Intel C++ Compiler for Itanium 64-bit applications
rem set BLDCOMP=ecl
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
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.c utilemb.c
goto link_embedded
:cpp_emb
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.cxx utilemb.cxx
rem Link the program.
:link_embedded
link -debug -out:%1.exe %1.obj utilemb.obj db2api.lib
goto exit
:non_embedded
rem Compile the program.
if exist "%1.cxx" goto cpp_non
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.c utilapi.c
goto link_non_embedded
:cpp_non
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.cxx utilapi.cxx
rem Link the program.
:link_non_embedded
link -debug -out:%1.exe %1.obj utilapi.obj db2api.lib
:exit
@echo on
第 11 章 Windows オペレーティング・システム
325
Windows C/C++ アプリケーションのコンパイルとリンクのオプション
以下は、bldapp.bat バッチ・ファイルに示されているように、Windows 上で Microsoft
Visual C++ コンパイラーを使用して、 C/C++ 組み込み SQL および DB2 API アプリ
ケーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
%BLDCOMP%
コンパイラー用の変数です。デフォルトは、cl (Microsoft Visual C++ コンパ
イラー) です。またこれは、icl、32 ビット・アプリケーション用の Intel
C++ コンパイラー、または ecl (Itanium 64 ビット・アプリケーション用の
Intel C++ コンパイラー) に設定することもできます。
-Zi
デバッグ情報を使用可能にします。
-Od
最適化なし。最適化をオフにしてデバッガーを使用する方が簡単です。
-c
コンパイルのみを実行し、リンクは実行しません。 バッチ・ファイルでは、
コンパイルとリンクは別個のステップです。
-W2
警告、エラー、重大、およびリカバリー不能エラー・メッセージを出力しま
す。
-DWIN32
オペレーティング・システムに必要なコンパイラー・オプション。
リンク・オプション
link
リンクにリンカーを使用します。
-debug デバッグ情報を組み込みます。
-out:%1.exe
ファイル名を指定します。
%1.obj オブジェクト・ファイルを組み込みます。
utilemb.obj
組み込み SQL プログラムの場合に、エラー・チェックを行う組み込み SQL
ユーティリティー・オブジェクト・ファイルを含みます。
utilapi.obj
組み込み SQL プログラムでない場合に、エラー・チェックを行う DB2 API
ユーティリティー・オブジェクト・ファイルを含みます。
db2api.lib
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
326
アプリケーションの構築および実行
関連タスク:
v 323 ページの『Windows での C/C++ アプリケーションの作成』
関連サンプル:
v 『bldapp.bat -- Builds C applications on Windows』
v 『bldapp.bat -- Builds C++ applications on Windows』
Windows での C/C++ ルーチンの作成
DB2 には、 C および C++ の DB2 API と組み込み SQL C/C++ プログラムのコンパ
イルとリンクのためのバッチ・ファイルが用意されていて、このファイルを使用して作
成できるサンプル・プログラムと一緒に sqllib¥samples¥c および sqllib¥samples¥cpp
ディレクトリーに置かれています。
バッチ・ファイル bldrtn.bat には、組み込み SQL ルーチン (ストアード・プロシー
ジャーとユーザー定義関数) を作成するためのコマンドが入っています。バッチ・ファ
イルは、サーバー上に DLL を作成します。これは 2 個のパラメーターをとります。そ
れらは、バッチ・ファイル内では変数 %1 と %2 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。このバッチ・ファ
イルは、DLL 名としてソース・ファイル名を使用します。 第 2 パラメーター %2 に
は、接続先のデータベースの名前を指定します。 DLL は、データベースが置かれてい
るのと同じインスタンス上で作成する必要があるため、ユーザー ID やパスワードを指
定するパラメーターはありません。
第 1 パラメーター (ソース・ファイル名) だけが必須です。データベース名は任意で指
定します。データベース名を指定しない場合は、プログラムはデフォルトの sample デ
ータベースを使用します。
手順:
この後の例は、次のものを使用してルーチンの DLL を作成する方法を示しています。
v ストアード・プロシージャー
v 非組み込み SQL ユーザー定義関数 (UDF)
v 組み込み SQL ユーザー定義関数 (UDF)
ストアード・プロシージャーの DLL
C ソース・ファイル spserver.sqc または C++ ソース・ファイル spserver.sqx から
spserver DLL を作成するには、次のようにします。
1. 次のように、バッチ・ファイル名とプログラム名を入力します。
bldrtn spserver
第 11 章 Windows オペレーティング・システム
327
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn spserver database
このバッチ・ファイルは、サンプル・プログラムと同じディレクトリーに入ってい
る、モジュール定義ファイル spserver.def を使用して DLL を作成します。 この
バッチ・ファイルは、 DLL の spserver.dll をパス sqllib¥function のサーバー
にコピーします。
2. 次に、次のようにサーバーで spcat スクリプトを実行してルーチンをカタログしま
す。
spcat
このスクリプトは、サンプル・データベースに接続し、ルーチンがすでにカタログ済
みであれば spdrop.db2 を呼び出してルーチンをアンカタログし、次に
spcreate.db2 を呼び出してそのルーチンをカタログし、そして最後にデータベース
への接続を切断します。また、spdrop.db2 スクリプトと spcreate.db2 スクリプト
は、個別に実行することもできます。
3. 次に、データベースを一度停止してから再始動し、新しい DLL が認識されるように
します。必要であれば、DLL にファイル・モードを設定して、 DB2 インスタンス
からアクセスできるようにします。
DLL spserver を作成し終わったら、それを呼び出すクライアント・アプリケーション
spclient を作成することができます。
spclient は、バッチ・ファイル bldapp.bat を使用して構築することができます。
DLL を呼び出すには、次のように入力してサンプル・クライアント・アプリケーション
を実行します。
spclient database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは、 DLL spserver にアクセスしてサーバー・データ
ベース上のいくつかのルーチンを実行します。出力は、クライアント・アプリケーショ
ンに戻されます。
非組み込み SQL UDF の DLL
328
アプリケーションの構築および実行
ユーザー定義関数 udfsrv をソース・ファイル udfsrv.c から作成するには、次のよう
に入力します。
bldrtn udfsrv
このバッチ・ファイルは、サンプル・プログラム・ファイルと同じディレクトリーに入
っているモジュール定義ファイル udfsrv.def を使用して、ユーザー定義関数 DLL を
作成します。このバッチ・ファイルは、ユーザー定義関数 DLL の udfsrv.dll を
sqllib¥function というパスのサーバーにコピーします。
udfsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション udfcli
を作成することができます。 DB2 CLI が、このプログラムの組み込み SQL C および
C++ バージョンとともに提供されます。
DB2 CLI udfcli プログラムは、 sqllib¥samples¥cli のバッチ・ファイル bldapp を
使用して、 udfcli.c ソース・ファイルから作成できます。
組み込み SQL C udfcli プログラムは、 sqllib¥samples¥c のバッチ・ファイル
bldapp を使用して、 udfcli.sqc ソース・ファイルから作成できます。
組み込み SQL C++ udfcli プログラムは、 sqllib¥samples¥cpp のバッチ・ファイル
bldapp を使用して、 udfcli.sqx ソース・ファイルから作成できます。
UDF を実行するには、次のように入力します。
udfcli
この呼び出しアプリケーションは、 udfsrv DLL から ScalarUDF 関数を呼び出しま
す。
組み込み SQL UDF の DLL
sqllib¥samples¥c 内の C ソース・ファイル udfemsrv.sqc からか、または
sqllib¥samples¥cpp 内の C++ ソース・ファイル udfemsrv.sqx から、組み込み SQL
ユーザー定義関数ライブラリー udfemsrv を作成するには、次のように入力します。
bldrtn udfemsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn udfemsrv database
このバッチ・ファイルは、サンプル・プログラムと同じディレクトリーに入っているモ
ジュール定義ファイル udfemsrv.def を使用してユーザー定義関数 DLL を作成しま
す。このバッチ・ファイルは、ユーザー定義関数 DLL の udfemsrv.dll をパス
sqllib¥function のサーバーにコピーします。
第 11 章 Windows オペレーティング・システム
329
udfemsrv の作成が完了したら、それを呼び出すクライアント・アプリケーション
udfemcli を作成することができます。バッチ・ファイル bldapp を使用して、
sqllib¥samples¥c 内の C ソース・ファイル udfemcli.sqc からか、または
sqllib¥samples¥cpp 内の C++ ソース・ファイル udfemcli.sqx から、 udfemcli を作
成することができます。
UDF を実行するには、次のように入力します。
udfemcli
呼び出し側アプリケーションは、udfemsrv DLL 内の UDF を呼び出します。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 331 ページの『Windows C/C++ ルーチンのコンパイルとリンクのオプション』
v 73 ページの『C/C++ のサンプル』
関連サンプル:
v 『bldrtn.bat -- Builds C routines (stored procedures and UDFs) on Windows』
v 『embprep.bat -- Prep and binds a C/C++ or Micro Focus COBOL embedded SQL
program on Windows』
v 『spcat -- To catalog C stored procedures on UNIX』
v 『spclient.sqc -- Call various stored procedures (C)』
v 『spcreate.db2 -- How to catalog the stored procedures contained in spserver.sqc 』
v 『spdrop.db2 -- How to uncatalog the stored procedures contained in spserver.sqc 』
v 『spserver.sqc -- A variety of types of stored procedures (C)』
v 『udfcli.sqc -- Call a variety of types of user-defined functions (C)』
v 『udfemcli.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfemsrv.sqc -- Call a variety of types of embedded SQL user-defined functions.
(C)』
v 『udfsrv.c -- Call a variety of types of user-defined functions (C)』
v 『bldrtn.bat -- Builds C++ routines (stored procedures and UDFs) on Windows』
v 『spclient.sqC -- Call various stored procedures (C++)』
v 『spserver.sqC -- A variety of types of stored procedures (C++)』
v 『udfcli.sqC -- Call a variety of types of user-defined functions (C++)』
v 『udfemcli.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
330
アプリケーションの構築および実行
v 『udfemsrv.sqC -- Call a variety of types of embedded SQL user-defined functions.
(C++)』
v 『udfsrv.C -- Call a variety of types of user-defined functions (C++)』
C/C++ ルーチンのバッチ・ファイル
@echo off
rem BATCH FILE: bldrtn.bat
rem Builds Windows Microsoft Visual C++ routines (stored procedures and UDFs)
rem Usage: bldrtn prog_name [ db_name ]
rem
rem
rem
rem
set
Default compiler is set to Microsoft Visual C++
To use a different compiler, comment out "set BLDCOMP=cl"
and uncomment "set BLDCOMP=icl" or "set BLDCOMP=ecl"
Microsoft C/C++ Compiler
BLDCOMP=cl
rem Intel C++ Compiler for 32-bit applications
rem set BLDCOMP=icl
rem Intel C++ Compiler for Itanium 64-bit applications
rem set BLDCOMP=ecl
if exist "%1.sqc" goto embedded
if exist "%1.sqx" goto embedded
goto compile
:embedded
rem Precompile and bind the program.
call embprep %1 %2
:compile
rem Compile the program.
if exist "%1.cxx" goto cpp
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.c
goto link_step
:cpp
%BLDCOMP% -Zi -Od -c -W2 -DWIN32 %1.cxx
:link_step
rem Link the program.
link -debug -out:%1.dll -dll %1.obj db2api.lib -def:%1.def
rem Copy the routine DLL to the ’function’ directory
copy %1.dll "%DB2PATH%¥function"
@echo on
Windows C/C++ ルーチンのコンパイルとリンクのオプション
以下は、bldrtn.bat バッチ・ファイルに示されているように、Windows 上で Microsoft
Visual C++ コンパイラーを使用して、 C/C++ ルーチン (ストアード・プロシージャー
とユーザー定義関数) を作成するのにお勧めするコンパイルとリンクのオプションで
す。
第 11 章 Windows オペレーティング・システム
331
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
%BLDCOMP%
コンパイラー用の変数です。デフォルトは、cl (Microsoft Visual C++ コンパ
イラー) です。またこれは、icl、32 ビット・アプリケーション用の Intel
C++ コンパイラー、または ecl (Itanium 64 ビット・アプリケーション用の
Intel C++ コンパイラー) に設定することもできます。
-Zi
デバッグ情報を使用可能にします。
-Od
最適化なし。
-c
コンパイルのみを実行し、リンクは実行しません。本書では、コンパイルと
リンクが別個のステップであることを前提としています。
-W2
警告、エラー、重大、およびリカバリー不能エラー・メッセージを出力しま
す。
-DWIN32
オペレーティング・システムに必要なコンパイラー・オプション。
リンク・オプション
link
リンクにリンカーを使用します。
-debug デバッグ情報を組み込みます。
-out:%1.dll
.DLL ファイルを作成します。
%1.obj オブジェクト・ファイルを組み込みます。
db2api.lib
DB2 ライブラリーとリンクします。
-def:%1.def
モジュール定義ファイル。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 327 ページの『Windows での C/C++ ルーチンの作成』
関連サンプル:
v 『bldrtn.bat -- Builds C routines (stored procedures and UDFs) on Windows』
v 『bldrtn.bat -- Builds C++ routines (stored procedures and UDFs) on Windows』
332
アプリケーションの構築および実行
IBM VisualAge COBOL
Windows での IBM COBOL コンパイラーの構成
組み込み SQL および DB2 API 呼び出しの入ったアプリケーションを開発する場合
に、 IBM VisualAge COBOL コンパイラーを使用するときは、気をつける点がいくつか
あります。
手順:
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target ibmcob オプションを使用してください。
v ソース・ファイルの中でタブ文字を使用しないでください。
v ソース・ファイル内で PROCESS および CBL キーワードを使用して、コンパイル・オ
プションを設定します。キーワードは 8∼72 桁目だけに置いてください。
v アプリケーションに組み込み SQL のみが含まれていて、 DB2 API 呼び出しは含ま
れない場合には、 pgmname(mixed) コンパイル・オプションを使う必要はありませ
ん。 DB2 API 呼び出しを使用する場合には、 pgmname(mixed) コンパイル・オプシ
ョンを使う必要があります。
v IBM VisualAge COBOL コンパイラーの「システム/390 ホスト・データ・タイプ・サ
ポート」機能を使用している場合、アプリケーション用の DB2 組み込みファイル
は、次のディレクトリーの中にあります。
%DB2PATH%¥include¥cobol_i
提供されたバッチ・ファイルを使用して DB2 サンプル・プログラムを作成している
場合、バッチ・ファイルで指定された組み込みファイルのパスは、 cobol_a ディレ
クトリーではなく、 cobol_i ディレクトリーを指すように変更しなければなりませ
ん。
IBM VisualAge COBOL コンパイラーの「システム/390 ホスト・データ・タイプ・サ
ポート」機能を使用していない場合、またはこのコンパイラーのそれよりも前のバー
ジョンを使用している場合、アプリケーション用の DB2 組み込みファイルは、次の
ディレクトリー中にあります。
%DB2PATH%¥include¥cobol_a
cobol_a ディレクトリーはデフォルトです。
v 次のように、COPY ファイル名を .cbl 拡張子を含めて指定します。
COPY "sql.cbl".
関連タスク:
v 334 ページの『Windows での IBM COBOL アプリケーションの作成』
v 337 ページの『Windows での IBM COBOL ルーチンの作成』
第 11 章 Windows オペレーティング・システム
333
Windows での IBM COBOL アプリケーションの作成
DB2 には、 DB2 API と組み込み SQL プログラムのコンパイルとリンクのためのバッ
チ・ファイルが用意されていて、このファイルを使用して作成できるサンプル・プログ
ラムと一緒に sqllib¥samples¥cobol ディレクトリーに置かれています。
バッチ・ファイル bldapp.bat には、 DB2 アプリケーション・プログラムを作成する
コマンドが入っています。これは最大 4 個のパラメーターをとります。それらは、バッ
チ・ファイル内では変数 %1、%2、%3、および %4 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、 3 つのパラメーターがオ
プションとして用意されています。 2 番目のパラメーターは %2 で、接続するデータベ
ースの名前を指定します。 3 番目のパラメーターは %3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが %4 で、データベースのパスワードを指定しま
す。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインドのファイ
ル embprep.bat にパラメーターを渡します。 データベース名が指定されていない場合
は、デフォルトの sample データベースが使用されます。なお、ユーザー ID とパスワ
ードのパラメーターは、プログラムを構築するインスタンスとデータベースのあるイン
スタンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client.exe が作成されます。この実行可能ファイルを
sample データベースに対して実行するには、次の実行可能名を (拡張子なしで) 入力し
ます。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
1. 同じインスタンス上のサンプル・データベースに接続している場合には、次のように
入力します。
334
アプリケーションの構築および実行
bldapp updat
2. 同じインスタンスにある他のデータベースに接続している場合は、さらにデータベー
ス名も入力します。
bldapp updat database
3. 他のインスタンスにあるデータベースに接続している場合は、さらにそのデータベー
ス・インスタンスのユーザー ID とパスワードも入力します。
bldapp updat database userid password
結果として、実行可能ファイル updat が作成されます。
この組み込み SQL アプリケーションを実行する方法には次の 3 つがあります。
1. 同じインスタンスにある sample データベースにアクセスする場合は、ただ実行可能
ファイルの名前を入力します。
updat
2. 同じインスタンスにある他のデータベースにアクセスする場合は、実行可能ファイル
名とデータベース名を入力します。
updat database
3. 他のインスタンスにあるデータベースにアクセスする場合は、実行可能ファイル名、
データベース名、およびそのデータベース・インスタンスのユーザー ID とパスワー
ドを入力します。
updat database userid password
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 336 ページの『Windows IBM COBOL アプリケーションのコンパイルとリンクのオ
プション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp.bat -- Builds Windows VisualAge COBOL applications』
v 『client.cbl -- How to set and query a client (IBM COBOL)』
v 『embprep.bat -- To prep and bind a COBOL embedded SQL program on Windows』
v 『updat.sqb -- How to update, delete and insert table data (IBM COBOL)』
IBM COBOL アプリケーションのバッチ・ファイル
@echo off
rem BATCH FILE: bldapp.bat
rem Builds Windows VisualAge COBOL applications
rem Usage: bldapp <prog_name> [ <db_name> [ <userid> <password> ]]
第 11 章 Windows オペレーティング・システム
335
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.
cob2 -qpgmname(mixed) -c -qlib -I"%DB2PATH%¥include¥cobol_a" checkerr.cbl
rem Compile the program.
cob2 -qpgmname(mixed) -c -qlib -I"%DB2PATH%¥include¥cobol_a" %1.cbl
rem Link the program.
cob2 %1.obj checkerr.obj db2api.lib
@echo on
Windows IBM COBOL アプリケーションのコンパイルとリンクのオプション
以下は、bldapp.bat バッチ・ファイルに示されているように、Windows 上で IBM
VisualAge COBOL コンパイラーを使用して、 COBOL 組み込み SQL および DB2 API
アプリケーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cob2
IBM VisualAge COBOL コンパイラー。
-qpgmname(mixed)
コンパイラーに、大文字小文字混合の名前を持つライブラリーのエントリー・
ポイントの CALL を許可するように指示します。
-c
コンパイルのみを実行し、リンクは実行しません。本書では、コンパイルとリ
ンクが別個のステップであることを前提としています。
-qlib コンパイラーに COPY ステートメントを処理するように指示します。
-Ipath DB2 組み込みファイルのロケーションを指定します。たとえば、
-I"%DB2PATH%¥include¥cobol_a"。
checkerr.cbl
エラー・チェック・ユーティリティーをコンパイルします。
リンク・オプション
cob2
コンパイラーをリンカーのフロントエンドとして使用します
%1.obj プログラム・オブジェクト・ファイルを組み込みます。
checkerr.obj
エラー・チェック・ユーティリティー・オブジェクト・ファイルを組み込みま
す。
db2api.lib
DB2 ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
336
アプリケーションの構築および実行
関連タスク:
v 334 ページの『Windows での IBM COBOL アプリケーションの作成』
関連サンプル:
v 『bldapp.bat -- Builds Windows VisualAge COBOL applications』
Windows での IBM COBOL ルーチンの作成
DB2 には、 DB2 API と組み込み SQL プログラムを IBM COBOL でコンパイルおよ
びリンクするためのバッチ・ファイルが用意されていて、このファイルを使用して作成
できるサンプル・プログラムと一緒に sqllib¥samples¥cobol ディレクトリーに置かれ
ています。
バッチ・ファイル bldrtn.bat には、組み込み SQL ルーチン (ストアード・プロシー
ジャー) を作成するためのコマンドが入っています。このバッチ・ファイルは、サーバ
ー上の DLL 内でルーチンをコンパイルします。これは 2 個のパラメーターをとりま
す。それらは、バッチ・ファイル内では変数 %1 と %2 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。バッチ・ファイル
では、ソース・ファイル名 %1 を DLL 名に使用します。 第 2 パラメーター %2 に
は、接続先のデータベースの名前を指定します。ストアード・プロシージャーは、デー
タベースが置かれているのと同じインスタンス上で作成する必要があるため、ユーザー
ID やパスワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。データベース名は任意
で指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。
手順:
サンプル・データベースに接続している場合、ソース・ファイル outsrv.sqb からサン
プル・プログラム outsrv を作成するには、次のように入力します。
bldrtn outsrv
他のデータベースに接続しているときは、さらにデータベース名も含めます。
bldrtn outsrv database
バッチ・ファイルは、 DLL をサーバー上の sqllib/function というパスにコピーしま
す。
DLL outsrv の作成が完了したら、 DLL 内のルーチン (DLL と同名) を呼び出すクラ
イアント・アプリケーション outcli を作成することができます。 outcli は、
bldapp.bat バッチ・ファイルを使用して構築することができます。
第 11 章 Windows オペレーティング・システム
337
outsrv ルーチンを呼び出すには、次のように入力してサンプル・クライアント・アプリ
ケーションを実行します。
outcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample またはそのリモート別名、
あるいはその他の名前にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは DLL outsrv にアクセスし、同一名のルーチンをサ
ーバー・データベース上で実行します。この出力は、クライアント・アプリケーション
に戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 339 ページの『Windows IBM COBOL ルーチンのコンパイルとリンクのオプショ
ン』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn.bat -- Builds Windows VisualAge COBOL routines (stored procedures)』
v 『embprep.bat -- To prep and bind a COBOL embedded SQL program on Windows』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (IBM COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (IBM
COBOL)』
IBM COBOL ルーチンのバッチ・ファイル
@echo off
rem BATCH FILE: bldrtn.bat
rem Builds Windows VisualAge COBOL routines (stored procedures)
rem Usage: bldrtn <prog_name> [ <db_name> ]
rem Precompile and bind the program.
call embprep %1 %2
rem Compile the stored procedure.
cob2 -qpgmname(mixed) -c -qlib -I"%DB2PATH%¥include¥cobol_a" %1.cbl
rem
338
Link the stored procedure and create a shared library.
アプリケーションの構築および実行
ilib /nol /gi:%1 %1.obj
ilink /free /nol /dll db2api.lib %1.exp %1.obj iwzrwin3.obj
rem Copy stored procedure to the %DB2PATH%¥function directory.
copy %1.dll "%DB2PATH%¥function"
@echo on
Windows IBM COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn.bat バッチ・ファイルに示されているように、Windows 上で IBM
VisualAge COBOL コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシ
ージャーとユーザー定義関数) を作成するのにお勧めするコンパイルとリンクのオプシ
ョンです。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cob2
IBM VisualAge COBOL コンパイラー。
-qpgmname(mixed)
コンパイラーに、大文字小文字混合の名前を持つライブラリーのエントリー・
ポイントの CALL を許可するように指示します。
-c
コンパイルのみを実行し、リンクは実行しません。このバッチ・ファイルで
は、コンパイルとリンクは別個のステップです。
-qlib コンパイラーに COPY ステートメントを処理するように指示します。
-Ipath DB2 組み込みファイルのロケーションを指定します。たとえば、
-I"%DB2PATH%¥include¥cobol_a"。
リンク・オプション
ilink IBM VisualAge COBOL リンカーを使用します。
/free 自由書式。
/nol
ロゴなし。
/dll
DLL をソース・プログラム名を使用して作成します。
db2api.lib
DB2 ライブラリーとリンクします。
%1.exp エクスポート・ファイルを組み込みます。
%1.obj プログラム・オブジェクト・ファイルを組み込みます。
iwzrwin3.obj
IBM VisualAge COBOL が提供するオブジェクト・ファイルを組み込みま
す。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 337 ページの『Windows での IBM COBOL ルーチンの作成』
関連サンプル:
第 11 章 Windows オペレーティング・システム
339
v 『bldrtn.bat -- Builds Windows VisualAge COBOL routines (stored procedures)』
Micro Focus COBOL
Windows での Micro Focus COBOL コンパイラーの構成
組み込み SQL および DB2 API 呼び出しの入ったアプリケーションを開発する場合
に、 Micro Focus コンパイラーを使用するときは、気をつける点がいくつかあります。
手順:
v コマンド行プロセッサーのコマンド db2 prep を使用してアプリケーションをプリコ
ンパイルする場合は、 target mfcob オプションを使用してください。
v 以下のように入力して、必ず LIB 環境変数が %DB2PATH%¥lib を指すようにしてくだ
さい。
set LIB="%DB2PATH%¥lib;%LIB%"
v Micro Focus COBOL 用の DB2 COPY ファイルは、 %DB2PATH%¥include¥cobol_mf
にあります。 COBCPY 環境変数を、以下のようにディレクトリーを含めて設定してく
ださい。
set COBCPY="%DB2PATH%¥include¥cobol_mf;%COBCPY%"
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 シンボルを手動で追加する必要があります。
関連タスク:
v 341 ページの『Windows での Micro Focus COBOL アプリケーションの作成』
340
アプリケーションの構築および実行
v 344 ページの『Windows での Micro Focus COBOL ルーチンの作成』
Windows での Micro Focus COBOL アプリケーションの作成
DB2 には、 DB2 API と組み込み SQL プログラムのコンパイルとリンクのためのバッ
チ・ファイルが用意されていて、このファイルを使用して作成できるサンプル・プログ
ラムと一緒に sqllib¥samples¥cobol_mf ディレクトリーに置かれています。
バッチ・ファイル bldapp.bat には、 DB2 アプリケーション・プログラムを作成する
コマンドが入っています。これは最大 4 個のパラメーターをとります。それらは、バッ
チ・ファイル内では変数 %1、%2、%3、および %4 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。これは組み込み
SQL を使用しないプログラムに必要な唯一のパラメーターです。組み込み SQL プログ
ラムを作成するためにはデータベースへの接続が必要なため、 3 つのパラメーターがオ
プションとして用意されています。 2 番目のパラメーターは %2 で、接続するデータベ
ースの名前を指定します。 3 番目のパラメーターは %3 で、データベースのユーザー
ID を指定します。そしてもう 1 つが %4 で、データベースのパスワードを指定しま
す。
組み込み SQL プログラムの場合、bldapp は、プリコンパイルおよびバインド・バッ
チ・ファイル embprep.bat にパラメーターを渡します。 データベース名が指定されて
いない場合は、デフォルトの sample データベースが使用されます。なお、ユーザー ID
とパスワードのパラメーターは、プログラムを構築するインスタンスとデータベースの
あるインスタンスが異なる場合にのみ必要になります。
手順:
以下の例は、DB2 API と組み込み SQL のアプリケーションを作成して実行する方法を
示しています。
ソース・ファイル client.cbl から組み込み SQL を含まないサンプル・プログラム
client を作成するには、次のように入力します。
bldapp client
結果として、実行可能ファイル client.exe が作成されます。この実行可能ファイルを
sample データベースに対して実行するには、次の実行可能名を (拡張子なしで) 入力し
ます。
client
組み込み SQL アプリケーションの構築と実行
ソース・ファイル updat.sqb から組み込み SQL アプリケーション updat を構築する
方法には、次の 3 つがあります。
第 11 章 Windows オペレーティング・システム
341
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
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 343 ページの『Windows Micro Focus COBOL アプリケーションのコンパイルとリン
クのオプション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldapp.bat -- Builds Windows Micro Focus Cobol applications』
v 『client.cbl -- How to set and query a client (MF COBOL)』
v 『updat.sqb -- How to update, delete and insert table data (MF COBOL)』
v 『embprep.bat -- Prep and binds a C/C++ or Micro Focus COBOL embedded SQL
program on Windows』
342
アプリケーションの構築および実行
Micro Focus COBOL アプリケーションのバッチ・ファイル
@echo off
rem BATCH FILE: bldapp.bat
rem Builds Windows Micro Focus Cobol applications
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
Windows Micro Focus COBOL アプリケーションのコンパイルとリンクのオ
プション
以下は、bldapp.bat バッチ・ファイルに示されているように、Windows 上で Micro
Focus COBOL コンパイラーを使用して、 COBOL 組み込み SQL および DB2 API ア
プリケーションを作成するのにお勧めするコンパイルとリンクのオプションです。
bldapp のコンパイルおよびリンク・オプション
コンパイル・オプション
cobol
Micro Focus COBOL コンパイラー。
リンク・オプション
cbllink
リンク・エディットにリンカーを使用します。
-l
lcobol ライブラリーとリンクします。
checkerr.obj
エラー・チェック・ユーティリティー・オブジェクト・ファイルとリンクし
ます。
db2api.lib
DB2 API ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
第 11 章 Windows オペレーティング・システム
343
v 341 ページの『Windows での Micro Focus COBOL アプリケーションの作成』
関連サンプル:
v 『bldapp.bat -- Builds Windows Micro Focus Cobol applications』
Windows での Micro Focus COBOL ルーチンの作成
DB2 には、 DB2 API と組み込み SQL プログラムを Micro Focus COBOL でコンパイ
ルおよびリンクするためのバッチ・ファイルが用意されていて、このファイルを使用し
て作成できるサンプル・プログラムと一緒に sqllib¥samples¥cobol_mf ディレクトリー
に置かれています。
バッチ・ファイル bldrtn.bat には、組み込み SQL ルーチン (ストアード・プロシー
ジャー) を作成するためのコマンドが入っています。このバッチ・ファイルは、サーバ
ー上の DLL 内でルーチンをコンパイルします。このバッチ・ファイルは 2 個のパラメ
ーターをとります。それらは、バッチ・ファイル内では変数 %1 と %2 で表されます。
第 1 パラメーター %1 には、ソース・ファイルの名前を指定します。バッチ・ファイル
では、ソース・ファイル名 %1 を DLL 名に使用します。 第 2 パラメーター %2 に
は、接続先のデータベースの名前を指定します。ストアード・プロシージャーは、デー
タベースが置かれているのと同じインスタンス上で作成する必要があるため、ユーザー
ID やパスワードを指定するパラメーターはありません。
最初のパラメーター (ソース・ファイル名) だけが、必須です。データベース名は任意
で指定します。データベース名を指定しない場合は、プログラムはデフォルトの sample
データベースを使用します。
手順:
サンプル・データベースに接続している場合、ソース・ファイル outsrv.sqb からサン
プル・プログラム outsrv を作成するには、次のように入力します。
bldrtn outsrv
他のデータベースに接続しているときは、さらにデータベース名も入力します。
bldrtn outsrv database
スクリプト・ファイルは、 DLL をサーバー上の sqllib/function というパスにコピー
します。
DLL outsrv の作成が完了したら、 DLL 内のルーチン (DLL と同名) を呼び出すクラ
イアント・アプリケーション outcli を作成することができます。 outcli は、
bldapp.bat バッチ・ファイルを使用して構築することができます。
outsrv ルーチンを呼び出すには、次のように入力してサンプル・クライアント・アプリ
ケーションを実行します。
344
アプリケーションの構築および実行
outcli database userid password
ここで、
database
接続先のデータベースの名前です。名前は、sample かその別名、またはその他
のデータベース名にすることができます。
userid 有効なユーザー ID です。
password
ユーザー ID の有効なパスワードです。
クライアント・アプリケーションは DLL outsrv にアクセスします。これは、同一名の
ルーチンをサーバー・データベース上で実行します。出力は、クライアント・アプリケ
ーションに戻されます。
関連概念:
v 100 ページの『ビルド・ファイル』
関連資料:
v 346 ページの『Windows Micro Focus COBOL ルーチンのコンパイルとリンクのオプ
ション』
v 84 ページの『COBOL のサンプル』
関連サンプル:
v 『bldrtn.bat -- Builds Windows Micro Focus Cobol routines (stored procedures)』
v 『outcli.sqb -- Call stored procedures using the SQLDA structure (MF COBOL)』
v 『outsrv.sqb -- Demonstrates stored procedures using the SQLDA structure (MF
COBOL)』
v 『embprep.bat -- Prep and binds a C/C++ or Micro Focus COBOL embedded SQL
program on Windows』
Micro Focus COBOL ルーチンのバッチ・ファイル
@echo off
rem BATCH FILE: bldrtn.bat
rem Builds Windows Micro Focus Cobol routines (stored procedures)
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
第 11 章 Windows オペレーティング・システム
345
rem Copy the stored procedure to the %DB2PATH%¥function directory.
copy %1.dll "%DB2PATH%¥function"
@echo on
Windows Micro Focus COBOL ルーチンのコンパイルとリンクのオプション
以下は、bldrtn.bat バッチ・ファイルに示されているように、Windows 上で Micro
Focus COBOL コンパイラーを使用して、 COBOL ルーチン (ストアード・プロシージ
ャーとユーザー定義関数) を作成するのにお勧めするコンパイルとリンクのオプション
です。
bldrtn のコンパイルおよびリンク・オプション
コンパイル・オプション
cobol
Micro Focus COBOL コンパイラー。
/case
外部シンボルが大文字に変換されないようにします。
リンク・オプション
cbllink
リンク・エディットのために Micro Focus COBOL リンカーを使用します。
/d
.DLL ファイルを作成します。
db2api.lib
DB2 API ライブラリーとリンクします。
他のコンパイラー・オプションについては、コンパイラーの資料をご覧ください。
関連タスク:
v 344 ページの『Windows での Micro Focus COBOL ルーチンの作成』
関連サンプル:
v 『bldrtn.bat -- Builds Windows Micro Focus Cobol routines (stored procedures)』
オブジェクト REXX
Windows でのオブジェクト REXX アプリケーションの作成
オブジェクト REXX は、オブジェクト指向バージョンの REXX 言語です。オブジェク
ト指向の拡張子が従来の REXX に追加されていますが、既存の関数および命令には変
更はありません。 オブジェクト REXX インタープリターは、以下のサポートが加えら
れ、前のバージョンの拡張バージョンとなっています。
v クラス、オブジェクト、およびメソッド
v メッセージ交換およびポリモアフィズム
346
アプリケーションの構築および実行
v 単一および複数継承
オブジェクト REXX は、従来の REXX と完全な互換性があります。この節で REXX
と述べる場合は、オブジェクト REXX を含むすべての REXX のバージョンのことを言
います。
REXX プログラムはプリコンパイルまたはバインドしません。
Windows 上では、REXX プログラムはコメントで開始する必要はありません。 しか
し、移行上の理由から、第 1 行の第 1 列から始まるコメントで各 REXX プログラム
を開始することをお勧めします。これによってプログラムを、他のプラットフォームの
バッチ・コマンドと区別することができます。
/* Any comment will do. */
REXX サンプル・プログラムは、ディレクトリー sqllib¥samples¥rexx にあります。
手順:
サンプル REXX プログラム updat を実行するには、次のように入力します。
rexx updat.cmd
関連資料:
v 96 ページの『REXX のサンプル』
第 11 章 Windows オペレーティング・システム
347
348
アプリケーションの構築および実行
第 4 部 付録
© Copyright IBM Corp. 1993 - 2002
349
350
アプリケーションの構築および実行
付録 A. DB2 Universal Database の技術情報の概要
DB2 Universal Database の技術情報の概要
DB2 Universal Database の技術情報は、以下の形式で入手できます。
v ブック (PDF およびハードコピー形式)
v トピック・ツリー (HTML 形式)
v DB2 ツールのヘルプ (HTML 形式)
v サンプル・プログラム (HTML 形式)
v コマンド行ヘルプ
v チュートリアル
このセクションでは、提供されている技術情報の概要と、それにアクセスする方法につ
いて説明します。
DB2 ドキュメンテーション・フィックスパック
IBM は定期的にドキュメンテーション・フィックスパックを提供しています。ドキュメ
ンテーション・フィックスパックによって、新しい情報が入手可能になった場合に、
DB2 HTML ドキュメンテーション CD からインストールした情報を更新することがで
きます。
注: ドキュメンテーション・フィックスパックをインストールすると、HTML ドキュメ
ンテーションには、 DB2 の印刷またはオンライン PDF マニュアルよりも最新の
情報が記載されることになります。
DB2 技術情報のカテゴリー
DB2 技術情報は、以下のカテゴリーに分類されています。
v DB2 のコア情報
v 管理情報
v アプリケーション開発情報
v ビジネス・インテリジェンス情報
v DB2 Connect 情報
v 入門情報
v チュートリアル情報
v オプショナル・コンポーネント情報
v リリース情報
© Copyright IBM Corp. 1993 - 2002
351
以下の表は、 DB2 ライブラリー内の各資料について、その資料のハードコピー版を注
文したり、PDF 版を印刷または表示したり、 HTML ディレクトリーを見つけたりする
のに必要な情報を示しています。 DB2 ライブラリー内の各資料に関する詳細な説明に
ついては、 www.ibm.com/shop/publications/order にある IBM Publications Center にアク
セスしてください。
HTML ドキュメンテーション CD のインストール・ディレクトリーは、情報のカテゴ
リーごとに異なります。以下のとおりです。
htmlcdpath/doc/htmlcd/%L/category
パラメーターの意味は以下のとおりです。
v htmlcdpath は、HTML CD がインストールされるディレクトリーです。
v %L は言語 ID です。たとえば、en_US です。
v category はカテゴリー ID です。たとえば、 DB2 のコア情報は core です。
以下の表の PDF ファイル名の列において、ファイル名の 6 番目の文字は資料の言語を
示しています。たとえば、ファイル名 db2d1e80 は管理ガイド: プランニング の英語版
を示しており、ファイル名 db2d1g80 は同じ資料のドイツ語版を示しています。以下に
示す文字は、資料の言語を示すためにファイル名の 6 番目に使用されます。
言語
アラビア語
ブラジル・ポルトガル語
ブルガリア語
クロアチア語
チェコ語
デンマーク語
オランダ語
英語
フィンランド語
フランス語
ドイツ語
ギリシャ語
ハンガリー語
イタリア語
日本語
韓国語
ノルウェー語
ポーランド語
ポルトガル語
ルーマニア語
ロシア語
簡体字中国語
スロバキア語
352
アプリケーションの構築および実行
ID
w
b
u
9
x
d
q
e
y
f
g
a
h
i
j
k
n
p
v
8
r
c
7
スロベニア語
スペイン語
スウェーデン語
繁体字中国語
トルコ語
l
z
s
t
m
資料番号なしは、その資料がオンラインでのみ利用可能で、ハードコピー版は用意され
ていないことを示しています。
DB2 のコア情報
このカテゴリーの情報は、すべての DB2 ユーザーに基本となる DB2 トピックを紹介
しています。このカテゴリーの情報は、プログラマーおよびデータベース管理者にとっ
て役立つとともに、 DB2 Connect、 DB2 Warehouse Manager、または他の DB2 製品を
使用するユーザーにとっても役立つ内容です。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/core です。
表 27. DB2 のコア情報
資料名
資料番号
PDF ファイル名
IBM DB2 Universal Database
コマンド・リファレンス
SC88-9140
db2n0x80
IBM DB2 Universal Database
用語集
資料番号なし
db2t0x80
IBM DB2 Universal Database
マスター索引
SC88-9151
db2w0x80
IBM DB2 Universal Database
メッセージ・リファレンス
第 1 巻
GC88-9152
db2m1x80
IBM DB2 Universal Database
メッセージ・リファレンス
第 2 巻
GC88-9153
db2m2x80
IBM DB2 Universal Database
新機能
SC88-9158
db2q0x80
管理情報
このカテゴリーの情報は、 DB2 データベース、データウェアハウス、および連合シス
テムを効果的に設計し、インプリメントし、保守するために必要なトピックを扱ってい
ます。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/admin で
す。
付録 A. DB2 Universal Database の技術情報の概要
353
表 28. 管理情報
354
資料名
資料番号
PDF ファイル名
IBM DB2 Universal Database
管理ガイド: プランニング
SC88-9135
db2d1x80
IBM DB2 Universal Database
管理ガイド: インプリメンテ
ーション
SC88-9133
db2d2x80
IBM DB2 Universal Database
管理ガイド: パフォーマンス
SC88-9134
db2d3x80
IBM DB2 Universal Database
管理 API リファレンス
SC88-9136
db2b0x80
IBM DB2 Universal Database
データ移動ユーティリティー
ガイドおよびリファレンス
SC88-9142
db2dmx80
IBM DB2 Universal Database
データ・リカバリーと高可用
性 ガイドおよびリファレン
ス
SC88-9143
db2hax80
IBM DB2 Universal Database
データウェアハウス・センタ
ー 管理ガイド
SC88-9165
db2ddx80
IBM DB2 Universal Database
連合システム・ガイド
GC88-9170
db2fpx80
IBM DB2 Universal Database SC88-9161
管理および開発における GUI
ツール・ガイド
db2atx80
IBM DB2 Universal Database
レプリケーションのガイドお
よびリファレンス
SC88-9163
db2e0x80
IBM DB2 サテライト環境の
インストールおよび管理
GC88-9209
db2dsx80
IBM DB2 Universal Database
SQL リファレンス 第 1 巻
SC88-9155
db2s1x80
IBM DB2 Universal Database
SQL リファレンス 第 2 巻
SC88-9156
db2s2x80
IBM DB2 Universal Database
システム・モニター ガイド
およびリファレンス
SC88-9157
db2f0x80
アプリケーションの構築および実行
アプリケーション開発情報
このカテゴリーの情報は、 DB2 のアプリケーション開発者またはプログラマーが特に
関心を持つ内容です。サポートされるさまざまなプログラミング・インターフェース
(組み込み SQL、ODBC、JDBC、SQLj、CLI など) を使用して DB2 にアクセスするの
に必要な資料とともに、サポートされる言語およびコンパイラーについても紹介されて
います。この情報を HTML 形式のオンラインで参照する場合、 HTML 形式の DB2 サ
ンプル・プログラムにもアクセスできます。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/ad です。
表 29. アプリケーション開発情報
資料名
資料番号
PDF ファイル名
IBM DB2 Universal Database
アプリケーション開発ガイド
アプリケーションの構築およ
び実行
SC88-9137
db2axx80
IBM DB2 Universal Database
アプリケーション開発ガイド
クライアント・アプリケーシ
ョンのプログラミング
SC88-9138
db2a1x80
IBM DB2 Universal Database
アプリケーション開発ガイド
サーバー・アプリケーション
のプログラミング
SC88-9139
db2a2x80
IBM DB2 Universal Database
コール・レベル・インターフ
ェース ガイドおよびリファ
レンス 第 1 巻
SC88-9159
db2l1x80
IBM DB2 Universal Database
コール・レベル・インターフ
ェース ガイドおよびリファ
レンス 第 2 巻
SC88-9160
db2l2x80
IBM DB2 Universal Database
データウェアハウス・センタ
ー アプリケーション統合ガ
イド
SC88-9166
db2adx80
IBM DB2 Universal Database
XML Extender 管理およびプ
ログラミングのガイド
SC88-9172
db2sxx80
付録 A. DB2 Universal Database の技術情報の概要
355
ビジネス・インテリジェンス情報
このカテゴリーの情報は、さまざまなコンポーネントを使用して、 DB2 Universal
Database のデータウェアハウジング機能および分析機能を拡張する方法を説明していま
す。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/wareh で
す。
表 30. ビジネス・インテリジェンス情報
資料名
資料番号
PDF ファイル名
IBM DB2 Warehouse Manager SC88-9167
インフォメーション・カタロ
グ・センター 管理ガイド
db2dix80
IBM DB2 Warehouse Manager GC88-9164
インストール・ガイド
db2idx80
DB2 Connect 情報
このカテゴリーの情報は、 DB2 Connect Enterprise Edition または DB2 Connect
Personal Edition を使用して、ホストまたは iSeries のデータにアクセスする方法を説明
しています。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/conn です。
表 31. DB2 Connect 情報
資料名
356
資料番号
PDF ファイル名
APPC, CPI-C, and SNA Sense 資料番号なし
Codes
db2apx80
IBM コネクティビティー 補
足
資料番号なし
db2h1x80
IBM DB2 Connect Enterprise
Edition 概説およびインスト
ール
GC88-9145
db2c6x80
IBM DB2 Connect Personal
Edition 概説およびインスト
ール
GC88-9146
db2c1x80
IBM DB2 Connect ユーザー
ズ・ガイド
SC88-9147
db2c0x80
アプリケーションの構築および実行
入門情報
このカテゴリーの情報は、サーバー、クライアント、および他の DB2 製品をインスト
ールして構成する場合に役立ちます。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/start です。
表 32. 入門情報
資料名
資料番号
PDF ファイル名
IBM DB2 Universal Database
DB2 クライアント機能 概説
およびインストール
GC88-9144
db2itx80
IBM DB2 Universal Database
DB2 サーバー機能 概説およ
びインストール
GC88-9148
db2isx80
IBM DB2 Universal Database
DB2 Personal Edition 概説お
よびインストール
GC88-9150
db2i1x80
IBM DB2 Universal Database
インストールおよび構成 補
足
GC88-9149
db2iyx80
IBM DB2 Universal Database
DB2 Data Links Manager 概
説およびインストール
GC88-9141
db2z6x80
チュートリアル情報
チュートリアル情報は、DB2 機能を紹介し、さまざまなタスクを実行する方法を示しま
す。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/tutr です。
表 33. チュートリアル情報
資料名
資料番号
PDF ファイル名
ビジネス・インテリジェン
資料番号なし
ス・チュートリアル: データ
ウェアハウス・センターの
紹介
db2tux80
ビジネス・インテリジェン
資料番号なし
ス・チュートリアル: データ
ウェアハウジングの上級者
向けガイド
db2tax80
付録 A. DB2 Universal Database の技術情報の概要
357
表 33. チュートリアル情報 (続き)
資料名
資料番号
PDF ファイル名
Development Center Microsoft 資料番号なし
Visual Basic を使用しての
Video Online 用チュートリ
アル
db2tdx80
インフォメーション・カタ
ログ・センター チュートリ
アル
資料番号なし
db2aix80
Video Central for e-business
チュートリアル
資料番号なし
db2twx80
Visual Explain チュートリア 資料番号なし
ル
db2tvx80
オプショナル・コンポーネント情報
このカテゴリーの情報は、 DB2 のオプショナル・コンポーネントを使用する方法につ
いて説明しています。
このカテゴリーの情報のインストール・ディレクトリーは、 doc/htmlcd/%L/opt です。
表 34. オプショナル・コンポーネント情報
資料名
PDF ファイル名
IBM DB2 Life Sciences Data GC88-9173
Connect 計画、インストール
および構成のガイド
db2lsx80
SC88-9171
db2sbx80
IBM DB2 Universal Database SC88-9169
Data Links Manager 管理ガ
イドおよびリファレンス
db2z0x80
IBM DB2 Universal Database SH88-8546
Net Search Extender 管理お
よびユーザーズ・ガイド
注: この資料の HTML 版
は、HTML ドキュメンテー
ション CD からインストー
ルされません。
N/A
IBM DB2 Spatial Extender
ユーザーズ・ガイド
358
資料番号
アプリケーションの構築および実行
リリース情報
リリース情報は、ご使用の製品のリリースおよびフィックスパック・レベルに特有の追
加情報を紹介します。これらの情報には、各リリースおよびフィックスパックで組み込
まれた資料上の更新の要約も含まれています。
表 35. リリース情報
資料名
資料番号
PDF ファイル名
DB2 リリース情報
「注」を参照。
「注」を参照。
DB2 インストール情報
製品 CD-ROM でのみ参照
可能。
製品 CD-ROM でのみ参照
可能。
注: HTML 版のリリース情報は、インフォメーション・センターおよび製品 CD-ROM
で参照できます。 UNIX ベース・プラットフォームで ASCII ファイルを表示する
には、 Release.Notes ファイルを参照してください。このファイルは、
DB2DIR/Readme/%L ディレクトリーに収録されています。 %L はロケール名を表し
ています。 DB2DIR は以下になります。
v AIX では /usr/opt/db2_08_01
v 他のすべての UNIX オペレーティング・システムでは、/opt/IBM/db2/V8.1
関連タスク:
v 359 ページの『PDF ファイルからの DB2 資料の印刷方法』
v 360 ページの『DB2 の印刷資料の注文方法』
v 361 ページの『オンライン・ヘルプの使用法』
v 365 ページの『管理ツールから DB2 インフォメーション・センターにアクセスし
て、製品情報を検索する』
v 366 ページの『DB2 HTML ドキュメンテーション CD から技術資料を直接参照す
る』
PDF ファイルからの DB2 資料の印刷方法
DB2 PDF ドキュメンテーション CD に収録されている DB2 資料を印刷することがで
きます。 Adobe Acrobat Reader を使用すれば、資料全体または特定のページを印刷で
きます。
前提条件:
Adobe Acrobat Reader がインストールされていることを確認してください。このプログ
ラムは、 Adobe 社の Web サイト (www.adobe.com) から入手できます。
手順:
PDF ファイルから DB2 資料を印刷するには以下のようにします。
付録 A. DB2 Universal Database の技術情報の概要
359
1. DB2 PDF ドキュメンテーション CD をドライブに挿入します。 UNIX オペレーテ
ィング・システムの場合、 DB2 PDF ドキュメンテーション CD をマウントしま
す。 UNIX オペレーティング・システムで CD をマウントする方法については、概
説およびインストール を参照してください。
2. Adobe Acrobat Reader を起動します。
3. 以下に示すいずれかの場所から PDF ファイルを開きます。
v Windows オペレーティング・システムの場合
x:¥doc¥language ディレクトリー。ここで、x は CD-ROM ドライブを表し、
language は使用する言語を示す 2 文字の地域コードを表します (たとえば、英語
の場合 EN)。
v UNIX オペレーティング・システムの場合
CD-ROM の /cdrom/doc/%L ディレクトリー。ここで、/cdrom は CD-ROM のマ
ウント・ポイントを、%L はロケール名を表します。
関連タスク:
v 360 ページの『DB2 の印刷資料の注文方法』
v 365 ページの『管理ツールから DB2 インフォメーション・センターにアクセスし
て、製品情報を検索する』
v 366 ページの『DB2 HTML ドキュメンテーション CD から技術資料を直接参照す
る』
関連資料:
v 351 ページの『DB2 Universal Database の技術情報の概要』
DB2 の印刷資料の注文方法
印刷資料の注文方法:
ハードコピー版の DB2 ブックは、個別に注文することができます。資料を注文するに
は、IBM 承認の販売業者または営業担当員に連絡してください。
なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳
しくは
http://www.ibm.com/jp/manuals/ の「ご注文について」をご覧ください。
(URL は、変更になる場合があります)
v 正規の IBM 製品販売業者または営業担当員に連絡してください。お客様がお住まい
の地域の IBM 担当員の情報については、お手数ですが IBM の Web サイト
(www.ibm.com/planetwide) の IBM Worldwide Directory of Contacts で確認してくださ
い。
360
アプリケーションの構築および実行
v IBM Publications Center (www.ibm.com/shop/publications/order) にアクセスしてくださ
い。
印刷された DB2 マニュアルも、ご使用の DB2 製品用の Doc Pack を IBM 販売店に
注文することによって入手できます。 Doc Pack は、DB2 ライブラリーのマニュアルの
サブセットであり、購入した DB2 製品を使い始めるのに役立つよう選択されたもので
す。 Doc Pack にあるマニュアルは、 DB2 PDF ドキュメンテーション CD にある
PDF 形式で入手できるものと同じであり、 DB2 HTML ドキュメンテーション CD に
収録されている資料と同じ内容です。
関連タスク:
v 359 ページの『PDF ファイルからの DB2 資料の印刷方法』
v 363 ページの『ブラウザーから DB2 インフォメーション・センターにアクセスして
トピックを検索する』
v 366 ページの『DB2 HTML ドキュメンテーション CD から技術資料を直接参照す
る』
関連資料:
v 351 ページの『DB2 Universal Database の技術情報の概要』
オンライン・ヘルプの使用法
DB2 のすべてのコンポーネントに備わっているオンライン・ヘルプは、以下の 3 つの
タイプから利用できます。
v ウィンドウ・ヘルプおよびノートブック・ヘルプ
v コマンド行ヘルプ
v SQL ステートメント・ヘルプ
ウィンドウ・ヘルプまたはノートブック・ヘルプは、ウィンドウまたはノートブックで
実行できるタスクや、その制御方法について説明します。このヘルプには以下の 2 つの
タイプがあります。
v 「ヘルプ」ボタンを押して参照できるヘルプ
v Infopops
「ヘルプ」ボタンを押すと、概説および前提条件情報が表示されます。 infopops は、そ
のウィンドウまたはノートブックの制御方法について説明します。ウィンドウ・ヘルプ
およびノートブック・ヘルプは、 DB2 センターから利用できます。また、ユーザー・
インターフェースが備わっている各コンポーネントからも利用できます。
付録 A. DB2 Universal Database の技術情報の概要
361
コマンド行ヘルプには、コマンド・ヘルプとメッセージ・ヘルプがあります。コマン
ド・ヘルプは、コマンド行プロセッサーでのコマンドの構文を説明します。メッセー
ジ・ヘルプは、エラー・メッセージが出された原因と、そのエラーへの応答として実行
すべきアクションを説明します。
SQL ステートメント・ヘルプには、SQL ヘルプと SQLSTATE ヘルプがあります。
DB2 は、SQL ステートメントの結果の原因となったと考えられる条件の SQLSTATE
値を戻します。 SQLSTATE ヘルプは、 SQL ステートメントの構文 (SQL 状態とクラ
ス・コード) を説明します。
注: SQL ヘルプは、UNIX オペレーティング・システムでは利用できません。
手順:
オンライン・ヘルプにアクセスするには、以下のようにします。
v ウィンドウ・ヘルプおよびノートブック・ヘルプの場合、「ヘルプ」をクリックする
か、目的のコントロールをクリックしてから「F1」をクリックします。「ツール設
定」ノートブックの「一般」ページで、「infopop の自動表示」 チェック・ボック
スが選択されている場合、そのコントロール上にマウス・カーソルを置くと、そのコ
ントロールに関する infopop が表示されます。
v コマンド行ヘルプの場合、コマンド行プロセッサーを開いて以下のように入力しま
す。
– コマンド・ヘルプの場合
? command
ここで command はキーワードまたはコマンド全体を表します。
たとえば、? catalog と入力すると、すべての CATALOG コマンドに関するヘルプ
が表示され、 ? catalog database と入力すると、 CATALOG DATABASE コマン
ドのヘルプが表示されます。
v メッセージ・ヘルプの場合
? XXXnnnnn
ここで、XXXnnnnn は有効なメッセージ ID を表します。
たとえば、? SQL30081 と入力すると、メッセージ SQL30081 に関するヘルプを表示
します。
v SQL ステートメント・ヘルプの場合、コマンド行プロセッサーを開いて以下のように
入力します。
? sqlstate または ? class code
ここで、sqlstate は有効な 5 桁の SQL 状態を、class code は SQL 状態の最初の 2
桁を表します。
362
アプリケーションの構築および実行
たとえば、? 08003 によって SQL 状態 08003 のヘルプが表示され、
てクラス・コード 08 のヘルプが表示されます。
? 08 によっ
関連タスク:
v 363 ページの『ブラウザーから DB2 インフォメーション・センターにアクセスして
トピックを検索する』
v 366 ページの『DB2 HTML ドキュメンテーション CD から技術資料を直接参照す
る』
ブラウザーから DB2 インフォメーション・センターにアクセスしてトピックを検索
する
ブラウザーから DB2 インフォメーション・センターにアクセスすると、 DB2
Universal Database および DB2 Connect を最大限に活用するのに必要な情報を入手でき
ます。また、DB2 インフォメーション・センターでは、 DB2 の主な機能およびコンポ
ーネントが説明されています (レプリケーション、データウェアハウジング、メタデー
タ、および DB2 の種々の Extender など)。
ブラウザーからアクセスされる DB2 インフォメーション・センターには、以下の機能
が備わっています。
ナビゲーション・ツリー
ナビゲーション・ツリーは、ブラウザー・ウィンドウの左側のフレームにあり
ます。ツリーを拡張したり縮小したりして、DB2 インフォメーション・センタ
ー内のトピックや、用語集、マスター索引などを表示したり、隠したりできま
す。
ナビゲーション・ツールバー
ナビゲーション・ツールバーは、ブラウザー・ウィンドウの上部右側のフレー
ムにあります。ナビゲーション・ツールバーには各種のボタンが配置されてい
ます。それらのボタンを使って、 DB2 インフォメーション・センターを検索
したり、ナビゲーション・ツリーを隠したり、ナビゲーション・ツリーに現在
表示されているトピックを検索したりできます。
内容フレーム
内容フレームは、ブラウザー・ウィンドウの下部右側のフレームにあります。
内容フレームには、ナビゲーション・ツリーのリンクをクリックしたり、検索
結果をクリックしたり、別のトピックやマスター索引からのリンクをクリック
したりするときに、 DB2 インフォメーション・センターからのトピックが表
示されます。
前提条件:
ブラウザーから DB2 インフォメーション・センターにアクセスするには、以下のいず
れかのブラウザーを使用する必要があります。
付録 A. DB2 Universal Database の技術情報の概要
363
v Microsoft Explorer バージョン 5 以上
v Netscape Navigator バージョン 6.1 以上
制約事項:
DB2 インフォメーション・センターには、 DB2 HTML ドキュメンテーション CD か
ら選択してインストールしたトピックだけが入っています。トピックへのリンクをクリ
ックするときに、Web ブラウザーが「ファイルが見つかりません」というエラーを戻す
場合、 DB2 HTML ドキュメンテーション CD から追加のトピックをインストールする
必要があります。
手順:
キーワードを指定してトピックを検索するには以下のようにします。
1.
2.
ナビゲーション・ツールバーで、「検索」をクリックします。
「検索」ウィンドウの一番上のテキスト入力フィールドに、参照したいトピックに
関係する用語を 1 つ以上入力して、「検索」をクリックします。一致の精度順にト
ピックが「結果」フィールドにリストされます。検索でヒットしたものの横の数値ラ
ンキングは、一致の度合いを示します (数値が大きければ一致の度合いは高い)。
入力する用語が多いほど、検索の精度が上がり、結果のトピック数を減らすことがで
きます。
3.
「結果」フィールドで、参照したいトピックのタイトルをクリックします。そうす
ると、そのトピックが内容フレームに表示されます。
ナビゲーション・ツリー内のトピックを検索するには以下のようにします。
1.
ナビゲーション・ツリーで、参照したい内容に関係したトピックのカテゴリーを表
すブック・アイコンをクリックします。サブカテゴリーのリストがアイコンの下に表
示されます。
2.
参照したいトピックの入ったカテゴリーが見つかるまで、ブック・アイコンをクリ
ックします。トピックにリンク接続されているカテゴリーは、そのカテゴリー・タイ
トルの上にカーソルを置くと、下線が付けられたリンクとして表示されます。ナビゲ
ーション・ツリーはページ・アイコンによってトピックを示します。
3.
トピック・リンクをクリックします。そうすると、そのトピックが内容フレームに
表示されます。
マスター索引内のトピックまたは用語を検索するには以下のようにします。
364
1.
ナビゲーション・ツリーで、「索引」カテゴリーをクリックします。カテゴリーが
拡張され、ナビゲーション・ツリーに 50 音順のリンクのリストが表示されます。
2.
ナビゲーション・ツリーで、参照したいトピックに関連した用語の最初の文字に対
応するリンクをクリックします。その文字で始まる用語のリストが内容フレームに表
示されます。複数の索引項目のある用語はブック・アイコンで示されます。
アプリケーションの構築および実行
3.
参照したい用語に対応したブック・アイコンをクリックします。クリックした用語
の下に、関係する用語およびトピックのリストが表示されます。トピックは、タイト
ルに下線が付けられたページ・アイコンによって示されます。
4.
参照したいトピックのリストをクリックします。そうすると、そのトピックが内容
フレームに表示されます。
関連概念:
v 372 ページの『アクセス支援』
v 375 ページの『ブラウザーからアクセスする DB2 インフォメーション・センター』
関連タスク:
v 365 ページの『管理ツールから DB2 インフォメーション・センターにアクセスし
て、製品情報を検索する』
v 367 ページの『マシンにインストールされている HTML 資料をアップデートする』
v 370 ページの『Netscape 4.x を使って DB2 資料を検索する場合のトラブルシューテ
ィング』
v 371 ページの『DB2 文書の検索』
関連資料:
v 351 ページの『DB2 Universal Database の技術情報の概要』
管理ツールから DB2 インフォメーション・センターにアクセスして、製品情報を検
索する
DB2 インフォメーション・センターによってユーザーは DB2 製品情報にすばやくアク
セスできます。これは、DB2 管理ツールを使用できるすべてのオペレーティング・シス
テムで利用できます。
ツールから DB2 インフォメーション・センターにアクセスすると、 6 つのタイプの情
報を参照できます。
タスク DB2 を使用して実行できる重要なタスク。
概念
DB2 の重要な概念。
参照情報
キーワード、コマンド、API などの DB2 参照情報。
トラブルシューティング
DB2 共通の問題に関して役立つエラー・メッセージおよび情報。
サンプル
DB2 によって提供されるサンプル・プログラムの HTML リストへのリンク。
チュートリアル
DB2 機能を学習するのを支援するように設計されたインストラクション。
付録 A. DB2 Universal Database の技術情報の概要
365
前提条件:
DB2 インフォメーション・センターのリンクの中には、インターネット上の Web サイ
トを指しているものがあります。これらのリンクのコンテンツを表示するには、その前
にインターネットに接続している必要があります。
手順:
ツールから DB2 インフォメーション・センターにアクセスして、製品情報を検索する
には以下のようにします。
1. 以下に示す方法のうちの 1 つを使って、DB2 インフォメーション・センターを開始
します。
v グラフィカル管理ツールから、ツールバーの「インフォメーション・センター」
アイコンをクリックします。「ヘルプ」メニューからも選択できます。
v コマンド行で、 db2ic と入力します。
2. 検索する情報に関連した情報タイプのタグをクリックします。
3. ツリーをナビゲートして、内容を知りたいトピックをクリックします。インフォメー
ション・センターは Web ブラウザーを起動して、情報を表示します。
4. リストを参照せずに情報を検索するには、リストの右側にある「検索」アイコンをク
リックします。
インフォメーション・センターがブラウザーを起動して情報を表示した後は、ナビゲ
ーション・ツールバーの「検索」アイコンをクリックすることによって全文検索を実
行できます。
関連概念:
v 372 ページの『アクセス支援』
v 375 ページの『ブラウザーからアクセスする DB2 インフォメーション・センター』
関連タスク:
v 363 ページの『ブラウザーから DB2 インフォメーション・センターにアクセスして
トピックを検索する』
v 371 ページの『DB2 文書の検索』
DB2 HTML ドキュメンテーション CD から技術資料を直接参照する
DB2 HTML ドキュメンテーション CD からインストールできるすべての HTML トピ
ックは、CD から直接参照することもできます。そのため、それらの資料はインストー
ルしなくても参照できます。
制約事項:
366
アプリケーションの構築および実行
Tools ヘルプを、DB2 HTML ドキュメンテーション CD からではなく、 DB2 製品 CD
からインストールした場合は、そのヘルプを表示するために DB2 製品をインストール
する必要があります。
手順:
1. DB2 HTML ドキュメンテーション CD をドライブに挿入します。 UNIX オペレー
ティング・システムの場合、DB2 HTML ドキュメンテーション CD をマウントしま
す。 UNIX オペレーティング・システムで CD をマウントする方法については、概
説およびインストール を参照してください。
2. HTML ブラウザーを起動して、以下のファイルを開きます。
v Windows オペレーティング・システムの場合
e:¥program files¥IBM¥SQLLIB¥doc¥htmlcd¥%L¥index.htm
e は CD-ROM ドライブであり、 %L は使用したい文書のロケール (たとえば、
英語の場合 en_US) です。
v UNIX オペレーティング・システムの場合
/cdrom/program files/IBM/SQLLIB/doc/htmlcd/%L/index.htm
/cdrom/ は CD のマウント・ポイントであり、 %L は使用したい文書のロケール
(たとえば、英語の場合 en_US) です。
関連タスク:
v 363 ページの『ブラウザーから DB2 インフォメーション・センターにアクセスして
トピックを検索する』
v 369 ページの『DB2 HTML ドキュメンテーション CD から Web サーバーへファイ
ルをコピーする』
関連資料:
v 351 ページの『DB2 Universal Database の技術情報の概要』
マシンにインストールされている HTML 資料をアップデートする
DB2 HTML ドキュメンテーション CD からインストールした HTML 資料の更新版が
IBM から提供されるときに、それらをアップデートできるようになりました。アップデ
ートは、以下に示す 2 つの方法のどちらかで実行できます。
v インフォメーション・センターを使用する (DB2 管理 GUI ツールをインストールし
てある場合)。
v DB2 HTML ドキュメンテーション・フィックスパックをダウンロードして適用す
る。
注: このアップデートでは、DB2 コードの更新は行われません。 DB2 HTML ドキュメ
ンテーション CD からインストールした HTML 資料だけが更新されます。
付録 A. DB2 Universal Database の技術情報の概要
367
手順:
インフォメーション・センターを使用して、マシンにインストールされている資料をア
ップデートするには以下のようにします。
1. 以下に示す方法のうちの 1 つを使って、DB2 インフォメーション・センターを開始
します。
v グラフィカル管理ツールから、ツールバーの「インフォメーション・センター」
アイコンをクリックします。「ヘルプ」メニューからも選択できます。
v コマンド行で、 db2ic と入力します。
2. ご使用のマシンが外部のインターネットに接続できることを確認します (必要な場
合、 IBM サーバーから最新のドキュメンテーション・フィックスパックをダウンロ
ードします)。
3. メニューから「インフォメーション・センター」 —> 「ローカル文書の更新」と選
択して、アップデートを開始します。
4. (必要な場合) プロキシー情報を提供して、外部のインターネットに接続します。
利用可能なものがある場合、インフォメーション・センターは最新のドキュメンテーシ
ョンのフィックスパックをダウンロードして適用します。
手操作でドキュメンテーション・フィックスパックをダウンロードして適用するには、
以下のようにします。
1. ご使用のマシンがインターネットに接続されていることを確認します。
2. Web ブラウザーで DB2 サポート・ページ
(www.ibm.com/software/data/db2/udb/winos2unix/support) を開きます。
3. バージョン 8 に関するリンクをクリックして、「ドキュメンテーション・フィック
スパック」リンクを探します。
4. ドキュメンテーション・フィックスパックのレベルと、マシンにインストールされて
いる文書のレベルを比較して、インストールされている文書のバージョンが更新され
ているかどうかを確認します。現在マシンにインストールされている文書のレベルは
DB2 v8.1 GA です。
5. さらに新しいバージョンの文書がある場合、ご使用のオペレーティング・システムに
対応するフィックスパックをダウンロードします。すべての Windows プラットフォ
ーム用に 1 つのフィックスパックがあり、すべての UNIX プラットフォーム用に 1
つのフィックスパックがあります。
6. 以下のようにしてフィックスパックを適用します。
v Windows オペレーティング・システムの場合、フィックスパックは自己抽出型の
zip ファイルとなっています。ダウンロードしたフィックスパックを空のディレク
トリーに入れ、実行します。 setup コマンドが作成され、それを実行するとドキ
ュメンテーション・フィックスパックがインストールされます。
368
アプリケーションの構築および実行
v UNIX オペレーティング・システムの場合、ドキュメンテーション・フィックス
パックは圧縮された tar.Z となっています。 tar ファイルを解凍し展開します。
delta_install という名前のディレクトリーに installdocfix という名前のスクリ
プトが作成されます。このスクリプトを実行すると、ドキュメンテーション・フ
ィックスパックがインストールされます。
関連タスク:
v 369 ページの『DB2 HTML ドキュメンテーション CD から Web サーバーへファイ
ルをコピーする』
関連資料:
v 351 ページの『DB2 Universal Database の技術情報の概要』
DB2 HTML ドキュメンテーション CD から Web サーバーへファイルをコピーする
DB2 情報ライブラリーはすべて DB2 HTML ドキュメンテーション CD に収録されて
います。ライブラリーを有効に活用するため、それらを Web サーバーにインストール
することができます。その場合、必要な言語の文書を Web サーバーにコピーするだけ
です。
注: Web サーバーから低速接続を経由して HTML ドキュメンテーションにアクセスす
る場合は、パフォーマンスが低下する場合があります。
手順:
DB2 HTML ドキュメンテーション CD から Web サーバーにファイルをコピーするに
は、以下に示す適切なソース・パスからコピーしてください。
v Windows オペレーティング・システムの場合
E:¥program files¥IBM¥SQLLIB¥doc¥htmlcd¥%L¥*.*
E は CD-ROM ドライブであり、%L は言語 ID です。
v UNIX オペレーティング・システムの場合
/cdrom/program files/IBM/SQLLIB/doc/htmlcd/%L/*.*
cdrom は CD-ROM ドライブのマウント・ポイントであり、%L は言語 ID です。
関連タスク:
v 371 ページの『DB2 文書の検索』
関連資料:
v DB2 Universal Database サーバー機能 概説およびインストール の『サポートされる
DB2 インターフェース言語、ロケール、およびコード・ページ』
v 351 ページの『DB2 Universal Database の技術情報の概要』
付録 A. DB2 Universal Database の技術情報の概要
369
Netscape 4.x を使って DB2 資料を検索する場合のトラブルシューティング
検索の問題のほとんどは、Web ブラウザーの Java サポートに関係しています。ここで
は、実行できる対処法を紹介します。
手順:
Netscape 4.x に共通している問題は、セキュリティー・クラスが欠落しているか、配置
が間違っていることです。以下に示す対処法を実行してみてください (特にブラウザー
の Java コンソールに以下の行がある場合は必ず実行してください)。
Cannot find class
java/security/InvalidParameterException
v Windows オペレーティング・システムの場合
DB2 HTML ドキュメンテーション CD の、x:program files¥IBM¥SQLLIB¥doc¥htmlcd
¥locale¥InvalidParameterException.class ファイルを、Netscape ブラウザーの
java¥classes¥java¥security¥ ディレクトリーにコピーします。ここで、 x は
CD-ROM ドライブであり、locale は使用するロケールの名前です。
注: java¥security¥ サブディレクトリーを作成しなければならない場合もあります。
v UNIX オペレーティング・システムの場合
DB2 HTML ドキュメンテーション CD の、/cdrom/program files/IBM/SQLLIB/doc
/htmlcd/locale/InvalidParameterException.class ファイルを、 Netscape ブラウザ
ーの java/classes/java/security/ ディレクトリーにコピーします。ここで、cdrom
は CD-ROM のマウント・ポイントであり、locale は使用するロケールの名前です。
注: java/security/ サブディレクトリーを作成しなければならない場合もあります。
上記の対処法を実行しても、Netscape ブラウザーで検索入力ウィンドウが表示されない
場合、以下を実行してください。
v Netscape ブラウザーのすべてのインスタンスを停止して、マシンで Netscape コード
が実行されていないことを確認します。その後、Netscape ブラウザーの新しいインス
タンスを開き、再度検索の開始を試行します。
v ブラウザーのキャッシュを削除します。
v Netscape の別のバージョンまたは別のブラウザーを使用します。
関連タスク:
v 371 ページの『DB2 文書の検索』
370
アプリケーションの構築および実行
DB2 文書の検索
DB2 ドキュメンテーションのライブラリーを検索して、必要な情報を見つけることがで
きます。 (ブラウザーから) DB2 インフォメーション・センターにアクセスして、ナビ
ゲーション・ツールバーの検索アイコンをクリックすると、検索のポップアップ・ウィ
ンドウが開きます。ご使用のコンピューターおよびネットワークの速度に応じて、この
検索のロードには数分かかる場合があります。
前提条件:
Netscape 6.1 以上または Microsoft Internet Explorer 5 以上が必要です。ブラウザーの
Java サポートが有効になっていることを確認してください。
制約事項:
文書検索を実行するときには、以下の制約事項があります。
v 検索では大文字小文字は区別しません。
v ブール検索はサポートされていません。
v ワイルドカード検索および部分検索はサポートされていません。 java* (または java)
を検索しても、リテラル・ストリング java* (または java) だけが検出され、 javadoc
などは検出されません。
手順:
DB2 文書を検索するには以下のようにします。
1. ナビゲーション・ツールバーで、「検索」アイコンをクリックします。
2. 「検索」ウィンドウの一番上のテキスト入力フィールドに、参照したいトピックに関
係する用語を (スペースで区切って) 1 つ以上入力して、「検索」をクリックしま
す。一致の精度順にトピックが「結果」フィールドにリストされます。検索でヒット
したものの横の数値ランキングは、一致の度合いを示します (数値が大きければ一致
の度合いは高い)。
入力する用語が多いほど、検索の精度が上がり、結果のトピック数を減らすことがで
きます。
3. 「結果」リストで、参照したいトピックのタイトルをクリックします。トピックが
DB2 インフォメーション・センターのコンテンツ・フレームに表示されます。
注: 検索を実行するときには、最初の (最上位ランキングの) 結果が自動的にブラウザ
ー・フレームにロードされます。他の検索結果の内容を表示するには、リストから
結果をクリックします。
関連タスク:
v 370 ページの『Netscape 4.x を使って DB2 資料を検索する場合のトラブルシューテ
ィング』
付録 A. DB2 Universal Database の技術情報の概要
371
DB2 オンライン・トラブルシューティング情報
DB2® UDB バージョン 8 では、トラブルシューティング・ガイド がなくなりまし
た。以前、このガイドに含まれていたトラブルシューティング情報は、 DB2 資料に統
合されました。これによって、 IBM は最新の情報を提供できるようになりました。
DB2 のトラブルシューティング・ユーティリティーおよび機能に関する情報を探す場合
は、各ツールから DB2 インフォメーション・センターにアクセスしてください。
現在問題が発生していて、考えられる原因とソリューションを検索したい場合は、 DB2
Online Support サイトを参照してください。このサポート・サイトには、DB2 資料、
TechNotes、 APAR (プログラム診断依頼書)、フィックスパック、および他のリソース
の大規模なデータベースが用意されており、そのデータは定期的に更新されています。
サポート・サイトのこの知識ベースを活用して、問題に対する有効なソリューションを
探し出すことができます。
www.ibm.com/software/data/db2/udb/winos2unix/support にアクセスするか、 DB2 インフ
ォメーション・センターの「オンライン・サポート」ボタンをクリックして、Online
Support サイトを参照してください。頻繁に変更される情報 (DB2 内部エラー・コード
のリストなど) も、このサイトから入手できるようになりました。
関連概念:
v 375 ページの『ブラウザーからアクセスする DB2 インフォメーション・センター』
関連タスク:
v 365 ページの『管理ツールから DB2 インフォメーション・センターにアクセスし
て、製品情報を検索する』
アクセス支援
アクセス支援機能は、身体に障害のある (身体動作が制限されている、視力が弱いなど)
ユーザーがソフトウェア製品を十分活用できるように支援します。 DB2® Universal
Database バージョン 8 に備わっている主なアクセス支援機能は以下のとおりです。
v DB2 では、すべての機能をマウスの代わりにキーボードを使用して操作できます。
373 ページの『キーボードによる入力およびナビゲーション』を参照してください。
v DB2 では、フォントのサイズと色をカスタマイズできます。 373 ページの『アクセ
スしやすい表示』を参照してください。
v DB2 では、アラートを表示にするか音声にするかを指定できます。 373 ページの
『選択可能なアラート』を参照してください。
v DB2 は、Java™ Accessibility API を使用するアクセス支援アプリケーションをサポー
トします。 373 ページの『Assistive Technology との互換性』を参照してください。
v DB2 には、アクセスしやすい形式の資料が付属しています。 373 ページの『アクセ
スしやすい資料』を参照してください。
372
アプリケーションの構築および実行
キーボードによる入力およびナビゲーション
キーボード入力
キーボードだけを使用して DB2 ツールを操作できます。マウスを使用して実行できる
ほとんどの操作を、複数のキーまたはキーの組み合わせを使用して実行できます。
キーボード・フォーカス
UNIX ベースのシステムでは、キーボード・フォーカスの置かれている位置が強調表示
され、アクティブなウィンドウ領域が示されます。そのウィンドウ領域が、ユーザーの
キー・ストロークの対象となります。
アクセスしやすい表示
DB2 ツールには、視力の弱いユーザーのためにユーザー・インターフェースを拡張し、
アクセシビリティーを向上させる機能が備わっています。これらのアクセシビリティー
拡張機能には、フォント・プロパティーのカスタマイズを可能にする機能も含まれてい
ます。
フォントの設定
DB2 ツールで「ツール設定」ノートブックを使用して、メニューおよびダイアログ・ウ
ィンドウに使用されるテキストの色、サイズ、およびフォントを選択できます。
色に依存しない
この製品の機能を使用するために、ユーザーは色を識別する必要はありません。
選択可能なアラート
「ツール設定」ノートブックを使用して、アラートを音声にするか、表示にするかを指
定できます。
Assistive Technology との互換性
DB2 ツール・インターフェースは、身体に障害を持つ人々によって使用されているスク
リーン・リーダーおよび他の支援テクノロジーに採用されている Java Accessibility API
をサポートしています。
アクセスしやすい資料
DB2 ファミリー製品の資料は HTML 形式で入手可能です。これにより、ご使用のブラ
ウザーに設定されている表示設定に従って資料を表示することができます。さらに、ス
クリーン・リーダーや他の支援テクノロジーを使用することもできます。
付録 A. DB2 Universal Database の技術情報の概要
373
DB2 チュートリアル
DB2® チュートリアルは、 DB2 Universal Database のさまざまな機能について学習する
のを支援します。このチュートリアルでは、アプリケーションの開発、SQL 照会のパフ
ォーマンス調整、データウェアハウスの処理、メタデータの管理、および DB2 を使用
した Web サービスの開発の各分野で、段階的なレッスンが用意されています。
はじめに:
以下に示すリンクを使用してチュートリアルにアクセスする前に、 DB2 HTML ドキュ
メンテーション CD からチュートリアルをインストールする必要があります。
チュートリアルをインストールしたくない場合は、 DB2 HTML ドキュメンテーション
CD から直接 HTML 版のチュートリアルを参照することができます。 PDF 版のチュー
トリアルは、 DB2 PDF ドキュメンテーション CD から利用できます。
チュートリアルの中で、サンプル・データまたはサンプル・コードを使用する場合があ
ります。個々のタスクの前提条件については、それぞれのチュートリアルを参照してく
ださい。
DB2 Universal Database チュートリアル:
DB2 HTML ドキュメンテーション CD からチュートリアルをインストールした場合、
以下に示すチュートリアルのタイトルをクリックすると、チュートリアルを表示できま
す。
ビジネス・インテリジェンス・チュートリアル: データウェアハウス・センターの紹介
データウェアハウス・センターを使用して簡単なデータウェアハウジング・タ
スクを実行します。
ビジネス・インテリジェンス・チュートリアル: データウェアハウジングの上級者向け
ガイド データウェアハウス・センターを使用して高度なデータウェアハウジング・タ
スクを実行します。
Microsoft® Visual Basic を使用しての Video Online 用チュートリアル
Development Center Add-in for Microsoft Visual Basic を使用して、アプリケー
ションのさまざまなコンポーネントを構築します。
インフォメーション・カタログ・センター チュートリアル
インフォメーション・カタログを作成および管理して、インフォメーション・
カタログ・センターによってメタデータを位置指定し使用します。
Video Central for e-business チュートリアル
WebSphere® 製品を使用して、高機能な DB2 Web サービス・アプリケーショ
ンを開発してデプロイします。
374
アプリケーションの構築および実行
Visual Explain チュートリアル
Visual Explain を使用して、パフォーマンスを向上させるために SQL ステー
トメントを分析し、最適化し、調整します。
ブラウザーからアクセスする DB2 インフォメーション・センター
DB2® インフォメーション・センターを使用すると、 DB2 Universal Database™ および
DB2 Connect™ をビジネスで最大限に活用するのに必要な情報すべてにアクセスできま
す。また、DB2 インフォメーション・センターでは、 DB2 の主な機能およびコンポー
ネントが説明されています (レプリケーション、データウェアハウジング、インフォメ
ーション・カタログ・センター、Life Sciences Data Connect、および DB2 の種々の
Extender など)。
Netscape Navigator 6.1 以上または Microsoft Internet Explorer 5 以上で表示する場合、
ブラウザーからアクセスする DB2 インフォメーション・センターには、以下の機能が
備えられています。以下のいくつかの機能では、Java または JavaScript のサポートを使
用可能にする必要があります。
資料の定期的な更新
更新された HTML をダウンロードすることによってトピックを最新の状態に
保つことができます。
検索
ナビゲーション・ツールバーの「検索」をクリックすることによって、ワーク
ステーションにインストールされているすべてのトピックを検索できます。
統合されたナビゲーション・ツリー
1 つのナビゲーション・ツリーから、DB2 ライブラリー内のすべてのトピック
を位置指定できます。ナビゲーション・ツリーは、以下に示すように、情報の
タイプに基づいて編成されています。
v 「タスク」では、目的を達成するための段階的な指示が紹介されています。
v 「概念」では、対象の概要が示されています。
v 「参照」では、その対象に関する詳細な情報 (ステートメントおよびコマン
ドの構文、メッセージ・ヘルプ、要件など) が説明されています。
マスター索引
マスター索引から DB2 HTML ドキュメンテーション CD からインストールさ
れた情報にアクセスします。索引では、用語が 50 音順に編成されています。
マスター用語集
マスター用語集は、 DB2 インフォメーション・センターで使用されている用
語を定義しています。用語集では、用語が 50 音順に編成されています。
関連タスク:
v 363 ページの『ブラウザーから DB2 インフォメーション・センターにアクセスして
トピックを検索する』
付録 A. DB2 Universal Database の技術情報の概要
375
v 365 ページの『管理ツールから DB2 インフォメーション・センターにアクセスし
て、製品情報を検索する』
v 367 ページの『マシンにインストールされている HTML 資料をアップデートする』
376
アプリケーションの構築および実行
付録 B. 特記事項
本書に記載の製品、サービス、または機能が日本においては提供されていない場合があ
ります。 日本で利用可能な製品、サービス、および機能については、日本 IBM の営業
担当員にお尋ねください。 本書で IBM 製品、プログラム、またはサービスに言及して
いても、その IBM 製品、プログラム、またはサービスのみが使用可能であることを意
味するものではありません。 これらに代えて、IBM の知的所有権を侵害することのな
い、機能的に同等の製品、プログラム、またはサービスを使用することができます。 た
だし、IBM 以外の製品とプログラムの操作またはサービスの評価および検証は、お客様
の責任で行っていただきます。
IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む) を保有
している場合があります。本書の提供は、お客様にこれらの特許権について実施権を許
諾することを意味するものではありません。 実施権についてのお問い合わせは、書面に
て下記宛先にお送りください。
〒106-0032 東京都港区六本木 3-2-31
IBM World Trade Asia Corporation
Licensing
以下の保証は、国または地域の法律に沿わない場合は、適用されません。IBM およびそ
の直接または間接の子会社は、本書を特定物として現存するままの状態で提供し、商品
性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含むすべての明示もし
くは黙示の保証責任を負わないものとします。 国または地域によっては、法律の強行規
定により、保証責任の制限が禁じられる場合、強行規定の制限を受けるものとします。
この情報には、技術的に不適切な記述や誤植を含む場合があります。本書は定期的に見
直され、必要な変更は本書の次版に組み込まれます。 IBM は予告なしに、随時、この
文書に記載されている製品またはプログラムに対して、改良または変更を行うことがあ
ります。
本書において IBM 以外の Web サイトに言及している場合がありますが、便宜のため
記載しただけであり、決してそれらの Web サイトを推奨するものではありません。 そ
れらの Web サイトにある資料は、この IBM 製品の資料の一部ではありません。それ
らの Web サイトは、お客様の責任でご使用ください。
IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うことのな
い、自ら適切と信ずる方法で、使用もしくは配布することができるものとします。
© Copyright IBM Corp. 1993 - 2002
377
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプログラ
ム(本プログラムを含む)との間での情報交換、および (ii) 交換された情報の相互利用
を可能にすることを目的として、本プログラムに関する情報を必要とする方は、下記に
連絡してください。
IBM Canada Limited
Office of the Lab Director
8200 Warden Avenue
Markham, Ontario
L6G 1C7
CANADA
本プログラムに関する上記の情報は、適切な使用条件の下で使用することができます
が、有償の場合もあります。
本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM
所定のプログラム契約の契約条項、IBM プログラムのご使用条件、またはそれと同等の
条項に基づいて、 IBM より提供されます。
この文書に含まれるいかなるパフォーマンス・データも、管理環境下で決定されたもの
です。そのため、他のオペレーティング環境で得られた結果は、異なる可能性がありま
す。一部の測定が、開発レベルのシステムで行われた可能性がありますが、その測定値
が、一般に利用可能なシステムのものと同じである保証はありません。 さらに、一部の
測定値が、推定値である可能性があります。実際の結果は、異なる可能性があります。
お客様は、お客様の特定の環境に適したデータを確かめる必要があります。
IBM 以外の製品に関する情報は、その製品の供給者、出版物、もしくはその他の公に利
用可能なソースから入手したものです。 IBM は、それらの製品のテストは行っており
ません。したがって、他社製品に関する実行性、互換性、またはその他の要求について
は確証できません。 IBM 以外の製品の性能に関する質問は、それらの製品の供給者に
お願いします。
IBM の将来の方向または意向に関する記述については、予告なしに変更または撤回され
る場合があり、単に目標を示しているものです。
本書には、日常の業務処理で用いられるデータや報告書の例が含まれています。 より具
体性を与えるために、それらの例には、個人、企業、ブランド、あるいは製品などの名
前が含まれている場合があります。 これらの名称はすべて架空のものであり、名称や住
所が類似する企業が実在しているとしても、それは偶然にすぎません。
著作権使用許諾:
本書には、様々なオペレーティング・プラットフォームでのプログラミング手法を例示
するサンプル・アプリケーション・プログラムがソース言語で掲載されています。 お客
様は、サンプル・プログラムが書かれているオペレーティング・プラットフォームのア
378
アプリケーションの構築および実行
プリケーション・プログラミング・インターフェースに準拠したアプリケーション・プ
ログラムの開発、使用、販売、配布を目的として、いかなる形式においても、IBM に対
価を支払うことなくこれを複製し、改変し、配布することができます。 このサンプル・
プログラムは、あらゆる条件下における完全なテストを経ていません。 従って IBM
は、これらのサンプル・プログラムについて信頼性、利便性もしくは機能性があること
をほのめかしたり、保証することはできません。
それぞれの複製物、サンプル・プログラムのいかなる部分、またはすべての派生した創
作物には、次のように、著作権表示を入れていただく必要があります。
© (お客様の会社名) (西暦年). このコードの一部は、IBM Corp. のサンプル・プログラ
ムから取られています。 © Copyright IBM Corp. _年を入れる_. All rights reserved.
付録 B. 特記事項
379
商標
以下は、IBM Corporation の商標です。
ACF/VTAM
AISPO
AIX
AIXwindows
AnyNet
APPN
AS/400
BookManager
C Set++
C/370
CICS
Database 2
DataHub
DataJoiner
DataPropagator
DataRefresher
DB2
DB2 Connect
DB2 Extenders
DB2 OLAP Server
DB2 Universal Database
Distributed Relational
Database Architecture
DRDA
eServer
Extended Services
FFST
First Failure Support Technology
IBM
IMS
IMS/ESA
iSeries
LAN Distance
MVS
MVS/ESA
MVS/XA
Net.Data
NetView
OS/390
OS/400
PowerPC
pSeries
QBIC
QMF
RACF
RISC System/6000
RS/6000
S/370
SP
SQL/400
SQL/DS
System/370
System/390
SystemView
Tivoli
VisualAge
VM/ESA
VSE/ESA
VTAM
WebExplorer
WebSphere
WIN-OS/2
z/OS
zSeries
以下は、他社の商標または登録商標です。
Microsoft、Windows、Windows NT および Windows ロゴは、Microsoft Corporation の米
国およびその他の国における商標です。
380
アプリケーションの構築および実行
Action Media、LANDesk、MMX、Pentium および ProShare は Intel Corporation の米国
およびその他の国における商標です。
Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およ
びその他の国における商標または登録商標です。
UNIX は、The Open Group がライセンスしている米国およびその他の国における登録
商標です。
他の会社名、製品名およびサービス名などはそれぞれ各社の商標または登録商標です。
付録 B. 特記事項
381
382
アプリケーションの構築および実行
索引
日本語, 数字, 英字, 特殊文字の
順に配列されています。なお, 濁
音と半濁音は清音と同等に扱わ
れています。
[ア行]
アクセシビリティー
機能 372
アプレット
各種のヒント 115
JDBC サンプル・プログラム・フ
ァイル 78
JDBC の構築 117
SQLJ サンプル・プログラム・フ
ァイル 81
SQLJ の構築 124
移行
アプリケーション 49
印刷資料、注文 360
インスタンス
データベース・マネージャー 6
オブジェクトのリンクと埋め込み
オートメーション
Visual Basic での 319
Visual C++ での 322
サンプル・プログラム・ファイル
94
データベース表関数
サンプル・ファイル 95
説明 313
DB2 AD クライアントでサポート
される 3
オペレーティング・システム
サポートされる AIX バージョン
10
サポートされる HP-UX バージョ
ン 11
サポートされる Linux バージョ
ン 13
© Copyright IBM Corp. 1993 - 2002
オペレーティング・システム (続き)
組み込み SQL (続き)
サポートされる Solaris バージョ
ン 15
C ルーチン、HP-UX 上での構築
215
サポートされる Windows バージ
C ルーチン、Linux 上での構築
ョン 16
DB2 インストール・パス 49
DB2 でサポートされる 9
251
C ルーチン、Solaris オペレーテ
ィング環境上での構築 279
オンライン
ヘルプへのアクセス 361
[カ行]
組み込み SQL
エラー・チェック・ユーティリテ
ィー・ファイル 108
ビルド・ファイル 100
AIX IBM COBOL アプリケーシ
ョン 191
AIX IBM COBOL ルーチン 195
AIX Micro Focus COBOL アプリ
ケーション 199
AIX Micro Focus COBOL ルーチ
ン 203
AIX 上でのマルチスレッド C++
アプリケーション 183
AIX 上の VisualAge C++ 構成フ
ァイル 186
AIX 上のマルチスレッド C アプ
リケーション 171
C アプリケーション、AIX 上で
の構築 160
C アプリケーション、HP-UX 上
での構築 209
C アプリケーション、Linux 上で
の構築 247
C アプリケーション、Solaris オ
ペレーティング環境上での構築
273
C ルーチン、AIX 上での構築
165
COBOL サンプル・プログラム・
ファイル 84
C++ アプリケーション、AIX 上
での構築 173
C++ アプリケーション、HP-UX
上での構築 223
C++ アプリケーション、Linux 上
での構築 259
C++ アプリケーション、Solaris
オペレーティング環境上での構
築 288
C++ ルーチン、AIX 上での構築
177
C++ ルーチン、HP-UX 上での構
築 228
C++ ルーチン、Linux 上での構築
263
C++ ルーチン、Solaris オペレー
ティング環境上での構築 293
C/C++ アプリケーション、
Windows 上での構築 323
C/C++ サンプル・プログラム・フ
ァイル 73
C/C++ ルーチン、Windows 上で
の構築 327
DB2 AD クライアントでサポート
される 3
HP-UX Micro Focus COBOL アプ
リケーション 238
HP-UX Micro Focus COBOL ルー
チン 241
HP-UX 上のマルチスレッド C ア
プリケーション 221
383
組み込み SQL (続き)
コンパイラー (続き)
HP-UX 上のマルチスレッド C++
アプリケーション 234
HP-UX Micro Focus COBOL の使
用 236
Linux 上のマルチスレッド C ア
makefile
プリケーション 257
Solaris Micro Focus COBOL の使
Linux 上のマルチスレッド C++
アプリケーション 269
用 302
Windows IBM COBOL の使用
Solaris 上のマルチスレッド C++
333
アプリケーション 299
Solaris オペレーティング環境上の
マルチスレッド C アプリケー
ション 285
Solaris オペレーティング環境の
Micro Focus COBOL アプリケ
ーション 302
Windows Micro Focus COBOL の
使用 340
[サ行]
サンプル
プログラム
Solaris オペレーティング環境の
Micro Focus COBOL ルーチン
306
サポートされる言語 59
設計 65
ディレクトリー 59
ファイル拡張子 59
Java サンプル・ディレクトリ
Windows IBM COBOL アプリケ
ーション 334
Windows IBM COBOL ルーチン
337
Windows Micro Focus COBOL ア
プリケーション 341
Windows Micro Focus COBOL ル
ーチン 344
構成ファイル
AIX 上の VisualAge C++ 185
コマンド行プロセッサー (CLP)
サンプル・ファイル 95
DB2 AD クライアント 3
コンパイラー
サポートされる AIX バージョン
10
サポートされる HP-UX バージョ
ン 11
サポートされる Linux バージョ
ン 13
サポートされる Solaris バージョ
ン 15
サポートされる Windows バージ
ョン 16
ビルド・ファイル 100
AIX IBM COBOL の使用 190
AIX Micro Focus COBOL の使用
198
384
104
ー 113
サンプル・データベース
カタログ 46
作成 44
セットアップ 43
バインディング 47
ホスト・システム上での作成 45
身体障害 372
ストアード・プロシージャー
ビルド・ファイル 100
AIX 上の VisualAge C++ 構成フ
ァイル 187
C の構築
AIX 165
HP-UX 215
Linux 251
Solaris オペレーティング環境
279
Windows 327
COBOL サンプル・プログラム・
ファイル 84
COBOL の構築
AIX IBM 195
AIX Micro Focus 203
HP-UX Micro Focus 241
Solaris Micro Focus 306
アプリケーションの構築および実行
ストアード・プロシージャー (続き)
COBOL の構築 (続き)
Windows IBM 337
Windows Micro Focus
344
C++ の構築
AIX
177
HP-UX 228
Linux 263
Solaris オペレーティング環境
293
Windows 327
C/C++ サンプル・プログラム・フ
ァイル 73
JDBC サンプル・プログラム・フ
ァイル 78
JDBC の構築 120
SQLJ サンプル・プログラム・フ
ァイル 81
SQLJ の構築 132
Visual Basic での OLE オートメ
ーション 319
Visual C++ での OLE オートメ
ーション 322
[タ行]
チュートリアル 374
注文、DB2 資料 360
トラブルシューティング
オンライン情報 372
DB2 資料の検索 370
[ハ行]
バッチ・ファイル
説明 100
表関数
OLE DB 313
ビルド・ファイル
説明 100
AIX C マルチスレッド・アプリ
ケーション 171
AIX C++ マルチスレッド・アプ
リケーション 183
AIX IBM COBOL アプリケーシ
ョン 191
ビルド・ファイル (続き)
AIX IBM COBOL ルーチン 195
AIX Micro Focus COBOL アプリ
ケーション 199
ビルド・ファイル (続き)
Solaris 上の C ルーチン 279
Solaris 上の C++ アプリケーショ
ン 288
AIX Micro Focus COBOL ルーチ
Solaris 上の C++ ルーチン 293
ン 203
AIX 上での C アプリケーション
Windows IBM COBOL アプリケ
ーション 334
160
Windows IBM COBOL ルーチン
AIX 上での C ルーチン 165
AIX 上での C++ ルーチン 177
AIX 上の C++ アプリケーション
337
Windows Micro Focus COBOL ア
プリケーション 341
173
HP-UX C マルチスレッド・アプ
リケーション 221
Windows Micro Focus COBOL ル
ーチン 344
Windows 上の C/C++ アプリケー
HP-UX C++ マルチスレッド・ア
ション 323
プリケーション 234
HP-UX Micro Focus COBOL アプ
リケーション 238
Windows 上の C/C++ ルーチン
327
ホスト・システム
HP-UX Micro Focus COBOL ルー
チン 241
HP-UX 上での C ルーチン 215
サポートされるサーバー 8
サンプル・データベースの作成
45
HP-UX 上の C アプリケーション
209
HP-UX 上の C++ アプリケーシ
ョン 223
HP-UX 上の C++ ルーチン 228
Linux C マルチスレッド・アプリ
ケーション 257
Linux C++ マルチスレッド・アプ
リケーション 269
Linux 上の C アプリケーション
247
Linux 上の C ルーチン 251
Linux 上の C++ アプリケーショ
ン 259
Linux 上の C++ ルーチン 263
Solaris C マルチスレッド・アプ
リケーション 285
Solaris C++ マルチスレッド・ア
プリケーション 299
Solaris Micro Focus COBOL アプ
リケーション 302
Solaris Micro Focus COBOL ルー
チン 306
Solaris 上の C アプリケーション
273
ユーザー定義関数 (UDF) (続き)
C (続き)
Linux 251
Solaris オペレーティング環境
279
COBOL サンプル・プログラム・
ファイル 84
C++
AIX
177
HP-UX 228
Linux 263
Solaris オペレーティング環境
293
C/C++
サンプル・プログラム・ファ
イル 73
Windows 327
JDBC 120
JDBC サンプル・プログラム・フ
ァイル 78
SQLj 132
SQLj サンプル・プログラム・フ
[マ行]
ァイル 81
Visual Basic での OLE オートメ
マルチスレッド・アプリケーション
ビルド・ファイル 100
ーション 319
Visual C++ での OLE オートメ
マルチスレッド・アプリケーショ
ン、構築
AIX C での 171
AIX C++ での 183
HP-UX C での 221
HP-UX C++ での 234
Linux C での 257
Linux C++ での 269
Solaris C での 285
Solaris C++ での 299
[ヤ行]
ユーザー定義関数 (UDF)
ビルド・ファイル 100
AIX 上の VisualAge C++ 構成フ
ァイル 189
C
AIX 165
HP-UX 215
ーション 322
ユーティリティー
エラー・チェック・ファイル
108
[ラ行]
リモート・データ・オブジェクトの
サンプル・プログラム・ファイル
91
ルーチン
ビルド・ファイル 100
AIX IBM COBOL の構築 195
AIX Micro Focus COBOL の構築
203
AIX 入り口点 158
AIX 上での C の構築 165
AIX 上での COBOL 共用ライブ
ラリーのロード 160
AIX 上での C++ の構築 177
索引
385
ルーチン (続き)
AIX 上の CREATE ステートメン
ト 158
ActiveX データ・オブジェクト (続
き)
Visual C++ サンプル・プログラ
ム・ファイル 93
COBOL サンプル・プログラム・
Visual C++ での 320
ファイル 84
C/C++ サンプル・プログラム・フ
ァイル 73
API
HP-UX Micro Focus COBOL の構
築 241
HP-UX 上での C の構築 215
HP-UX 上での C++ の構築 228
JDBC サンプル・プログラム・フ
ァイル 78
JDBC の構築 120
Linux 上での C の構築 251
Linux 上での C++ の構築 263
Solaris Micro Focus COBOL の構
築 306
Solaris オペレーティング環境上で
の C の構築 279
Solaris オペレーティング環境上で
の C++ の構築 293
SQL プロシージャーのサンプ
ル・プログラム・ファイル 89
SQLJ サンプル・プログラム・フ
ァイル 81
SQLJ の構築 132
Windows IBM COBOL の構築
337
Windows Micro Focus COBOL の
構築 344
Windows 上での C/C++ の構築
327
ルーチンの入り口点、AIX 158
ログ管理ユーザー出口のサンプル・
ファイル 98
A
ActiveX データ・オブジェクト
サンプル・プログラムの設計 65
DB2 AD クライアントでサポート
される 3
Visual Basic サンプル・プログラ
ム・ファイル 91
Visual Basic での 314
386
アプリケーションの構築および実行
AIX IBM COBOL アプリケーシ
ョン 191
AIX Micro Focus COBOL アプリ
ケーション 199
AIX 上での C アプリケーション
160
AIX 上の C++ アプリケーション
173
AIX 上の VisualAge C++ 構成フ
ァイル 185
COBOL サンプル・プログラム・
ファイル 84
C++ アプリケーションの Solaris
オペレーティング環境 288
C/C++ サンプル・プログラム・フ
ァイル 73
HP-UX Micro Focus COBOL アプ
リケーション 238
HP-UX 上の C アプリケーション
209
HP-UX 上の C++ アプリケーシ
ョン 223
Linux 上の C アプリケーション
247
Linux 上の C++ アプリケーショ
ン 259
Solaris オペレーティング環境上の
C アプリケーション 273
Solaris オペレーティング環境の
Micro Focus COBOL アプリケ
ーション 302
Windows IBM COBOL アプリケ
ーション 334
Windows Micro Focus COBOL ア
プリケーション 341
Windows 上の C/C++ アプリケー
ション 323
C
C
アプリケーション
AIX 上での構築 160
HP-UX 上での構築 209
Linux 上での構築 247
Solaris オペレーティング環境
上での構築 273
Windows 上での構築 323
エラー・チェック・ユーティリテ
ィー・ファイル 108
サポートされるバージョン
AIX 10
HP-UX 11
Linux 13
Solaris オペレーティング環境
15
Windows 16
サンプル・プログラムの設計 65
サンプル・プログラム・ファイル
73
ビルド・ファイル 100
マルチスレッド・アプリケーショ
ン
AIX 171
HP-UX 221
Linux 257
Solaris オペレーティング環境
285
ルーチン
AIX 上での構築 165
HP-UX 上での構築 215
Linux 上での構築 251
Solaris オペレーティング環境
上での構築 279
Windows 上での構築 327
makefile 104
CALL ステートメント
およびストアード・プロシージャ
ー 153
CLI サンプル・プログラム・ファイ
ル 76
COBOL 言語
エラー・チェック・ユーティリテ
ィー・ファイル 108
COBOL 言語 (続き)
サポートされる AIX バージョン
10
サポートされる HP-UX バージョ
ン 11
サポートされる Solaris オペレー
ティング・システムのバージョ
ン 15
CREATE ステートメント
C++ (続き)
AIX ルーチン 158
CREATE ステートメントの
Visual C++ での ADO アプリケ
ーション 320
EXTERNAL NAME 文節 158
Visual C++ での OLE オートメ
ーション 322
C++
アプリケーション
AIX 上での構築 173
HP-UX 上での構築 223
サポートされる Windows バージ
ョン 16
サンプル・プログラム・ファイル
Linux 上での構築 259
Solaris オペレーティング環境
上での構築 288
84
ビルド・ファイル 100
AIX IBM アプリケーション 191
Windows 上での構築 323
エラー・チェック・ユーティリテ
ィー・ファイル 108
AIX IBM コンパイラー 190
サポートされる AIX バージョン
AIX IBM ルーチン 195
AIX Micro Focus アプリケーショ
ン 199
10
サポートされる HP-UX バージョ
ン 11
AIX Micro Focus コンパイラー
198
AIX Micro Focus ルーチン 203
サポートされる Linux バージョ
ン 13
サポートされる Solaris オペレー
AIX 上でのインストールおよび実
行 160
ティング環境のバージョン 15
サポートされる Windows バージ
HP-UX Micro Focus アプリケー
ション 238
ョン 16
サンプル・プログラムの設計 65
HP-UX Micro Focus コンパイラ
ーの使用 236
HP-UX Micro Focus ルーチン
241
makefile 104
Solaris Micro Focus アプリケーシ
ョン 302
Solaris Micro Focus コンパイラー
302
Solaris Micro Focus ルーチン
306
Windows IBM アプリケーション
334
Windows IBM コンパイラー 333
Windows IBM ルーチン 337
Windows Micro Focus アプリケー
ション 341
Windows Micro Focus コンパイラ
ー 340
Windows Micro Focus ルーチン
344
サンプル・プログラム・ファイル
73
ビルド・ファイル 100
マルチスレッド・アプリケーショ
ン
AIX 183
HP-UX 234
Linux 269
Solaris オペレーティング環境
299
ルーチン
AIX 上での構築 177
HP-UX 上での構築 228
Linux 上での構築 263
Solaris オペレーティング環境
上での構築 293
Windows 上での構築 327
AIX 上の VisualAge 構成ファイ
ル 185
makefile 104
D
DB2 CLI サンプル・プログラム・フ
ァイル 76
DB2 インフォメーション・センター
375
DB2 資料の検索
Netscape 4.x 370
DB2 チュートリアル 374
DB2 用の OLE DB プロバイダー
Visual Basic での DB2 314
Visual Basic での ODBC 314
Visual C++ での DB2 320
DB2INSTANCE 環境変数 44
DB2INSTPROF 環境変数 6
DB2PATH 環境変数 6
DB2_SQLROUTINE_COMPILE
_COMMAND 環境変数 24
DB2_SQLROUTINE_COMPILER
_PATH 環境変数 24
F
flagger、SQL 92 および MVS 適合
3
FORTRAN 言語
DB2 サポート 9
G
GET ROUTINE CLP コマンド 149
GET_ROUTINE_SAR 組み込みストア
ード・プロシージャー 149
J
Java
アプレット
使用するためのポイント 115
索引
387
Java (続き)
JDBC
環境のセットアップ 22
構築
アプレット、使用するためのポイ
ント 115
JDBC アプリケーション 119
アプレットの構築 117
JDBC アプレット 117
構築、アプリケーションの 119
JDBC ルーチン 120
SQLj アプリケーション 122,
サンプル・プログラム・ファイル
78
3
サポートされる AIX JDK バージ
ョン 10
ージョン 11
サンプル
ディレクトリー 113
KEEPFENCED、データベース・マネ
ージャー構成キーワード 21
プログラムの設計 65
AIX 環境のセットアップ 29
HP-UX 環境のセットアップ 29
M
10
サポートされる Windows バージ
ョン 16
AIX アプリケーションの構築
206
DB2 AD クライアントでサポート
される 3
DB2 サポート 9
Windows アプリケーションの構築
346
S
SQL プロシージャー
環境のセットアップ 24
makefile
コマンド 104
作成 141
サンプル・プログラム・ファイル
説明 104
イル 78
Linux
388
サポートされる AIX バージョン
ジャー構成キーワード 21
サポートされる HP-UX JDK バ
環境のセットアップ 30
サポートされる JDK バージョ
ン 13
makefile 104
plugin サンプル・ファイル 83
Solaris オペレーティング環境
サポートされる JDK バージョ
ン 15
セットアップ 31
SQLj (Java 用組み込み SQL)
サンプル・プログラム・ファ
イル 81
UNIX 環境のセットアップ 27
WebSphere サンプル・ファイル
83
Windows
環境のセットアップ 39
サポートされる JDK バージョ
ン 16
Basic での構築 317
REXX 言語
DB2 AD クライアントでサポート
される 3
JDK_PATH、データベース・マネー
K
JDBC
サンプル・プログラム・ファ
RDO アプリケーション、Visual
ルーチンの構築 120
126
SQLj アプレット 124
SQLj ルーチン 132
サポート、DB2 AD クライアント
R
89
中間ファイルの保存 145
N
NOCONVERT オプション 312
O
OLE DB プロバイダー
Visual C++ での ODBC
320
P
Perl
DB2 サポート 9
PHP、DB2 サポート 9
PUT ROUTINE CLP コマンド 149
PUT_ROUTINE_SAR ストアード・プ
ロシージャー 149
アプリケーションの構築および実行
配布、コンパイルされた 149
バックアップおよびリストア
148
プリコンパイルおよびバインド・
オプションのカスタマイズ 147
CALL ステートメント 153
UNIX 環境のセットアップ 32
UNIX クライアント・アプリケー
ションでの呼び出し 142
Windows 環境のセットアップ 41
Windows クライアント・アプリケ
ーションでの呼び出し 144
SQLJ (Java 用組み込み SQL)
アプリケーション
構築 126
アプレット
構築 124
使用 115
サンプル・プログラム・ファイル
81
ビルド・ファイル 100
SQLJ (Java 用組み込み SQL) (続き)
プログラム
構築 122
ルーチン、構築 132
DB2 AD クライアントでサポート
される 3
V
Visual Basic
サポートされる Windows バージ
ョン 16
サンプル・プログラムの設計 65
サンプル・プログラム・ファイル
91
ADO アプリケーションの構築
314
OLE オートメーション 319
RDO アプリケーションの構築
317
Visual C++ サンプル・プログラム・
ファイル 93
W
WCHARTYPE CONVERT プリコン
パイル・オプション 312
wchar_t データ・タイプ
CONVERT プリコンパイル・オプ
ション 312
Windows Management Instrumentation
(WMI)
サンプル 313
Windows 上での オブジェクト
REXX 346
索引
389
390
アプリケーションの構築および実行
IBM と連絡をとる
技術上の問題がある場合は、お客様サポートにご連絡ください。
製品情報
以下の情報は英語で提供されます。内容は英語版製品に関する情報です。
DB2 Universal Database 製品に関する情報は、 www.ibm.com/software/data/db2/udb から
入手できます。
このサイトには、技術ライブラリー、資料の注文方法、クライアント・ダウンロード、
ニュースグループ、フィックスパック、ニュース、および Web リソースへのリンクに
関する最新情報が掲載されています。
米国以外の国で IBM に連絡する方法については、 IBM Worldwide ページ
(www.ibm.com/planetwide) にアクセスしてください。
© Copyright IBM Corp. 1993 - 2002
391
392
アプリケーションの構築および実行
򔻐򗗠򙳰
部品番号: CT17WJA
SC88-9137-00
(1P) P/N: CT17WJA
Printed in Japan
򔻐򗗠򙳰
®
IBM DB2™ Universal
Database
Spine information:
アプリケーションの構築および実行
バージョン 8