Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
® ™ 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