Comments
Description
Transcript
PowerBuilder 11.2 データベースとの接続
デー タ ベース と の接続 PowerBuilder® 11.1 DOCUMENT ID: DC37775-01-1110-02 LAST REVISED: October 2008 Copyright © 1991-2008 by Sybase, Inc. All rights reserved. 本書は Sybase ソ フ ト ウ ェ アの付属マニ ュ アルで あ り 、 新 し いマニ ュ アル ま たはテ ク ニ カル ノ ー ト で特に示 さ れないかぎ り 、 後続の リ リ ース に も 付属 し ます。 こ のマニ ュ アルの内容は、 予告な く 変更 さ れ る こ と があ り ますが、 Sybase,Inc. お よ びその関連会社では内容の変更に関 し て一切の責任を負い ません。 こ のマニ ュ アルに記載 さ れてい る ソ フ ト ウ ェ アは ラ イ セ ン ス契約に基づいて提供 さ れ る も のであ り 、 無断で使用す る こ と はで き ません。 予定 し た ソ フ ト ウ ェ アの リ リ ース日にのみア ッ プグ レー ド を提供 し ます。 本書に記載 さ れてい る 内容は、 Sybase, Inc. お よ びその関連会社の書面に よ る 事前許可を得ずに、 電子的、 機械的、 手作業、 光学的、 ま たはその他のいかな る 手段に よ っ て も 複製、 転載、 翻訳す る こ と を禁 じ ます。 Sybase の商標は Sybase の商標ページ のサイ ト http://www.sybase.com/detail?id=1011207 に記載 さ れてい ます。 記載の Sybase お よ びマー ク は Sybase, Inc の商標です。 ® はア メ リ カ合衆国におけ る 登録商標を示 し ます。 Java お よ びすべての Java ベース のマー ク は、 米国お よ び他国におけ る Sun Microsystems, Inc. の商標ま たは登録商標です。 Unicode お よ び Unicode の ロ ゴは Unicode, Inc. の登録商標です。 本書で記載 さ れてい る 上記以外の社名お よ び製品名は、 各社の商標ま たは登録商標の場合があ り ます。 本書に記載 さ れてい る 内容は、 将来予告な し に変更す る こ と があ り ます。 ま た、 本 ソ フ ト ウ ェ アお よ び説明書を使用 し た こ と に よ る 損害、 ま たは第三者か ら のいかな る 請求について も 、 サ イ ベース株式会社、 その親会社であ る 米国法人 Sybase, Inc. ま たはその関連会社は、 一切の責任を負わない も の と し ます。 目次 本書について .................................................................................................................................. ix 第1部 デー タ ベース接続に関する作業 第1章 デー タ ベース と の接続について ............................................................................ 3 デー タ ベース と の接続の手順 .......................................................... 3 PowerBuilder でのデー タ ア ク セス方法 ........................................... 6 EAS Demo DB へのア ク セス ........................................................... 7 デー タ ベース プ ロ フ ァ イルの使い方............................................... 8 デー タ ベース プ ロ フ ァ イルの作成について ............................. 8 デー タ ベース プ ロ フ ァ イルの作成 ......................................... 11 次のス テ ッ プ .................................................................................. 13 第2部 標準デー タ ベース イ ン タ フ ェ ースの使い方 第2章 ODBC イ ン タ フ ェ ース ............................................................................................. 17 ODBC イ ン タ フ ェ ースについて .................................................... 18 ODBC と は ?........................................................................... 18 PowerBuilder での ODBC の使い方 ........................................ 19 ODBC 接続の コ ンポーネ ン ト ................................................. 19 ODBC ド ラ イバの種類 ............................................................ 21 ODBC ド ラ イバの合致レ ベル ................................................. 23 ODBC ド ラ イバの入手 ............................................................ 25 PowerBuilder Desktop 付属の ODBC ド ラ イバの使い方........ 25 ODBC ド ラ イバに関するヘルプ情報を入手するには ............. 25 ODBC デー タ ソ ースの準備 .......................................................... 26 ODBC デー タ ソ ースの定義 .......................................................... 27 PowerBuilder がデー タ ソ ースへのア ク セスに 必要な フ ァ イル ................................................................ 27 同一デー タ に対する複数のデー タ ソ ースの定義 .................... 30 ODBC ド ラ イバに関するオ ン ラ イ ンヘルプの表示................. 31 ODBC ト ラ ン ス レー タ の選択 ................................................. 31 デー タ ベース と の接続 iii 目次 ODBC イ ン タ フ ェ ースの定義........................................................ Sybase SQL Anywhere .................................................................. SQL Anywhere でサポー ト し ているバージ ョ ン ..................... SQL Anywhere の基本ソ フ ト ウ ェ ア コ ンポーネ ン ト ............. SQL Anywhere デー タ ソ ース を使用する ための準備............. SQL Anywhere デー タ ソ ースの定義...................................... Transact-SQL の特殊な timestamp カ ラ ムのサポー ト ........... 次のス テ ッ プ ........................................................................... 32 32 33 33 34 35 37 38 第3章 JDBC イ ン タ フ ェ ース .............................................................................................. 39 JDBC イ ン タ フ ェ ースについて ..................................................... 39 JDBC と は ? ............................................................................ 39 JDBC イ ン タ フ ェ ースの使い方 .............................................. 40 JDBC 接続の コ ンポーネ ン ト .................................................. 41 JDBC レ ジ ス ト リ エ ン ト リ ..................................................... 43 JDBC でサポー ト し ているバージ ョ ン .................................... 44 サポー ト し ている JDBC デー タ 型.......................................... 44 JDBC イ ン タ フ ェ ース を使用する ための準備................................ 44 JDBC イ ン タ フ ェ ースの定義......................................................... 46 第4章 OLE DB イ ン タ フ ェ ース ......................................................................................... 49 OLE DB イ ン タ フ ェ ースについて ................................................. 49 OLE DB と は ? ........................................................................ 50 OLE DB 接続の コ ンポーネ ン ト .............................................. 53 OLE DB デー タ プ ロバイ ダの入手.......................................... 54 サポー ト し ている OLE DB のバージ ョ ン ............................... 54 OLE DB イ ン タ フ ェ ース を使用する ための準備 ............................ 55 OLE DB イ ン タ フ ェ ースの定義 ..................................................... 57 第5章 ADO.NET イ ン タ フ ェ ース ..................................................................................... 59 ADO.NET について ........................................................................ 59 PowerBuilder の ADO.NET デー タ ベース イ ン タ フ ェ ースについて 61 ADO.NET 接続の コ ンポーネ ン ト ........................................... 61 OLE DB デー タ プ ロバイ ダ .................................................... 64 ADO.NET イ ン タ フ ェ ース を使用する ための準備 ......................... 66 ADO.NET イ ン タ フ ェ ースの定義 .................................................. 67 identity カ ラ ム値の取得........................................................... 68 第3部 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 第6章 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 ................................ 75 iv PowerBuilder 目次 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースについて ...................... 75 デー タ ベース イ ン タ フ ェ ース接続の コ ンポーネ ン ト ................... 76 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 ...................... 78 第7章 Adaptive Server Enterprise の使い方........................................................... 81 サポー ト し ている Adaptive Server のバージ ョ ン ......................... 81 サポー ト し ている Adaptive Server デー タ 型 ................................ 82 Adaptive Server の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト .................. 85 Adaptive Server デー タ ベース を使用する ための準備 ................... 86 Adaptive Server デー タ ベース イ ン タ フ ェ ースの定義 .................. 89 Open Client のセキ ュ リ テ ィ サービ ス........................................... 90 Open Client のセキ ュ リ テ ィ サービ ス と は ?.......................... 90 Open Client のセキ ュ リ テ ィ サービ ス を使用する ための条件 90 セキ ュ リ テ ィ サービ スの DBParm パラ メ ー タ ...................... 92 Open Client のデ ィ レ ク ト リ サービ スの使い方 ............................ 93 Open Client のデ ィ レ ク ト リ サービ ス と は ?.......................... 93 Open Client のデ ィ レ ク ト リ サービ ス を使用する ための条件 93 Open Client のデ ィ レ ク ト リ サービ ス を使用する場合の サーバ名の指定 ................................................................ 94 デ ィ レ ク ト リ サービ スの DBParm パ ラ メ ー タ ...................... 96 Adaptive Server ス ト ア ド プ ロ シージ ャ における PRINT 文の 使い方............................................................................... 96 デー タ ベース間の結合に基づ く デー タ ウ ィ ン ド ウの作成 ............. 97 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール .................................................................... 97 PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト と は ?........ 98 ス ク リ プ ト の実行方法 .......................................................... 101 第8章 Informix の使い方 ................................................................................................... サポー ト し ている Informix のバージ ョ ン .................................... サポー ト し ている Informix デー タ 型 ........................................... Informix の DateTime デー タ 型 ............................................. Informix の Time デー タ 型..................................................... Informix の Interval デー タ 型................................................. I10 イ ン タ フ ェ ースでサポー ト し ている機能 .............................. Unicode デー タ へのア ク セス ................................................ PowerBuilder カ タ ログ テーブルへのオーナーの割 り 当て... 長いオブ ジ ェ ク ト 名のサポー ト ............................................ イ ンデ ッ ク スの名前変更....................................................... SQL ス テー ト メ ン ト キ ャ ッ シ ュ .......................................... ロ ッ クせずに イ ンデ ッ ク スの作成 と 削除.............................. カ ラ ム レ ベルの暗号化 ......................................................... ユーザ定義ルーチ ン での複数の OUT パ ラ メ ー タ の使い方 .. デー タ ベース と の接続 105 105 106 107 107 108 108 108 110 110 110 110 111 112 112 v 目次 Informix の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト ............................. Informix デー タ ベース を使用する ための準備.............................. Informix デー タ ベース イ ン タ フ ェ ースの定義............................. サーバ名の指定 ..................................................................... PowerBuilder ス ク リ プ ト でのシ リ アル値へのア ク セス .............. 113 114 116 116 117 第9章 Microsoft SQL Server の使い方..................................................................... サポー ト し ている SQL Server のバージ ョ ン .............................. サポー ト し ている SQL Server デー タ 型 ..................................... Microsoft SQL Server の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト ....... SQL Server デー タ ベース を使用する ための準備........................ SQL Server デー タ ベース イ ン タ フ ェ ースの定義....................... MSS や OLE DB デー タ ベース イ ン タ フ ェ ースか ら の移行........ SQL Server 2005 の機能.............................................................. SNC イ ン タ フ ェ ース使用時の注意事項....................................... 119 119 120 122 123 125 126 129 130 第 10 章 Oracle の使い方........................................................................................................ サポー ト し ている Oracle のバージ ョ ン ...................................... サポー ト し ている Oracle デー タ 型 ............................................. デー タ 型の変換 ..................................................................... Oracle の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト ............................... Oracle デー タ ベース を使用する ための準備 ................................ Oracle デー タ ベース イ ン タ フ ェ ースの定義 ............................... Oracle サーバの接続記述子の指定........................................ デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使い方 Oracle ス ト ア ド プ ロ シージ ャ と は? ................................... Oracle ス ト ア ド プ ロ シージ ャ で可能な作業 ........................ Oracle で結果集合を返すス ト ア ド プ ロ シージ ャ の使い方... ラ ージ オブ ジ ェ ク ト 出力パラ メ ー タ の使用 ......................... Oracle ユーザ定義デー タ 型の使い方........................................... Oracle 10g の HA イ ベン ト 通知のサポー ト ................................ 133 133 134 137 138 138 141 141 142 142 142 143 147 147 149 第4部 デー タ ベース接続に関する作業 第 11 章 デー タ ベース接続の管理 ...................................................................................... デー タ ベース と の接続について ................................................... デー タ ベース と の接続 タ イ ミ ング ........................................ デー タ ベース プ ロ フ ァ イルの使い方.................................... デー タ ベース と の接続 ................................................................. デー タ ベース プ ロ フ ァ イルの選択 ....................................... 接続時の処理......................................................................... デー タ ベース プ ロ フ ァ イルでのパスワー ド の指定 .............. vi 153 153 154 154 155 155 157 158 PowerBuilder 目次 PowerBuilder ア プ リ ケーシ ョ ンか ら デー タ ベースに 接続する ための [プ レ ビ ュ ー] タ ブの使い方................ デー タ ベース プ ロ フ ァ イルの管理 .............................................. デー タ ベース プ ロ フ ァ イルの共有 .............................................. 共有デー タ ベース プ ロ フ ァ イルについて............................. 共有デー タ ベース プ ロ フ ァ イルの設定 ................................ 共有デー タ ベース プ ロ フ ァ イルを使用 し た接続.................. ロー カルで共有デー タ ベース プ ロ フ ァ イルを変更する ....... 共有デー タ ベース プ ロ フ ァ イルの管理 ................................ デー タ ベース プ ロ フ ァ イルのイ ンポー ト と エ ク スポー ト .......... PowerBuilder 拡張属性シ ス テム テーブルについて .................... デー タ ベースへの初めてのロ グ イ ン ..................................... PowerBuilder 拡張属性シ ス テム テーブルの表示 ................. 拡張属性シ ス テム テーブルの内容 ....................................... シ ス テム テーブルへのア ク セスの制御 ................................ 第 12 章 第 13 章 デー タ ベース と の接続 158 159 159 160 160 162 163 163 164 165 165 166 168 169 接続パ ラ メ ー タ の追加設定................................................................................. 接続パラ メ ー タ を設定する ための基本手順 ................................. DB プ ロ フ ァ イル設定 ダ イ ア ログボ ッ ク スについて ................... デー タ ベース パラ メ ー タ の設定 .................................................. 開発環境でのデー タ ベース パラ メ ー タ の設定 ..................... PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト での デー タ ベース パラ メ ー タ の設定 .................................... デー タ ベース環境設定項目の設定 ............................................... 開発環境でのデー タ ベース環境設定項目の設定................... PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト における AutoCommit と Lock の設定........................................... 173 173 174 175 176 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ン グ........................... ト ラ ブルシ ュ ーテ ィ ング ツールの概要 ....................................... デー タ ベース ト レース ツールの使い方 ...................................... デー タ ベース ト レース ツール.............................................. デー タ ベース ト レース ツールの起動................................... デー タ ベース ト レース ツールの停止................................... デー タ ベース ト レース ログの使い方................................... デー タ ベース ト レース ログのサン プル ............................... SQL 文 ト レース ユーテ ィ リ テ ィ の使い方 .................................. ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 ............... ODBC ド ラ イバ マネージ ャ ト レース .................................. ODBC ド ラ イバ マネージ ャ ト レースの起動 ........................ ODBC ド ラ イバ マネージ ャ ト レースの停止 ....................... ODBC ド ラ イバ マネージ ャ ト レース ログの表示 ................ ODBC ド ラ イバ マネージ ャ ト レース ログのサン プル ......... 191 191 192 192 196 202 204 205 207 209 209 210 215 217 218 176 179 180 186 vii 目次 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方................ JDBC ド ラ イバ マネージ ャ ト レース ................................... JDBC ド ラ イバ マネージ ャ ト レースの起動 ........................ JDBC ド ラ イバ マネージ ャ ト レースの停止 ......................... JDBC ド ラ イバ マネージ ャ ト レース ログの表示 ................. 第5部 ト ラ ンザク シ ョ ン サーバでの作業 第 14 章 PowerBuilder コ ンポーネ ン ト 内でのデー タ ベース接続の確立 .... EAServer への コ ンポーネ ン ト の配布.......................................... 共有接続を使用する場合にサポー ト さ れる デー タ ベース接続........................................................... Microsoft DTC を使用する場合にサポー ト さ れる デー タ ベース接続........................................................... OTS/XA を使用する場合にサポー ト さ れる デー タ ベース接続........................................................... SYJ デー タ ベース イ ン タ フ ェ ースの使い方......................... JDB デー タ ベース イ ン タ フ ェ ースの使い方 ........................ 自動 コ ミ ッ ト モー ド の指定 .................................................. COM+ への COM コ ンポーネ ン ト の配布 .................................... ODBC デー タ ベース イ ン タ フ ェ ースの使い方..................... Oracle デー タ ベース イ ン タ フ ェ ースの使い方..................... PowerBuilder コ ンポーネ ン ト に対する DBParm のサポー ト ...... 第6部 付録 付録 A PBODB110 初期設定フ ァ イルへの関数の追加 ....................................... PBODB110 初期設定 フ ァ イルについて ...................................... PBODB110.INI への関数の追加................................................... 既存のセ ク シ ョ ンへの関数の追加 ........................................ 新 し いセ ク シ ョ ンへの関数の追加 ........................................ 221 222 223 227 228 233 233 234 235 235 236 237 237 237 238 238 238 243 243 244 244 247 索引 ............................................................................................................................................. 251 viii PowerBuilder 本書について 対象 と する読者 こ のマニ ュ アルは、PowerBuilder® を使用 し てデー タ ベース に接続 す る 開発者やエ ン ド ユーザを対象 と し てい ます。 読者が使用す る デー タ ベー ス に詳 し く 、 ま た、 接続に必要なサーバや ク ラ イ ア ン ト の ソ フ ト ウ ェ アがすでに イ ン ス ト ール さ れてい る も の と し てい ます。 目的 こ のマニ ュ アルでは、標準ま たはネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ー ス を使用 し て PowerBuilder でデー タ ベース に接続す る 方法 について解説 し てい ます。 デー タ ベース接続のための準備、 定義、 接続の方法のほか、 メ ン テナン ス や ト ラ ブルシ ュ ーテ ィ ン グの方 法について説明 し てい ま す。 こ れ ら の操作を行 う 手順の概要につ いては、 3 ページ の「 基本的な 接続手順」 を参照 し て く だ さ い。 関連マニ ュ アル サポー ト さ れてい る デー タ ベース イ ン タ フ ェ ース、 DBParm パ ラ メ ー タ 、 デー タ ベー ス 環境設定項目の詳細については、 オ ン ラ イ ン ヘルプのデー タ ベース接続に関す る セ ク シ ョ ン を参照 し て く だ さ い。 PowerBuilder の す べ て の マ ニ ュ ア ル の 一 覧 に つ い て は、 PowerBuilder の 『入門』 マニ ュ アルを参照 し て く だ さ い。 そのほかの情報 製品に関す る そのほかの詳細情報については、 PowerBuilder DVD、 ア シ ス ト Web サ イ ト 、 お よ び Sybase 製品マニ ュ アル Web サ イ ト (英語) を参照 し て く だ さ い。 • PowerBuilder DVD には、製品マニ ュ アルが収め ら れてい ます。 製品マニ ュ アルは、 PDF 形式で提供 し てい ます。 PDF フ ァ イ ルを読んだ り 、 印刷 し た り す る には、 Adobe Acrobat Reader が 必要です。 Adobe Acrobat Reader は、 Adobe Web サ イ ト か ら 無 料でダ ウ ン ロ ー ド す る こ と がで き ます。 • ア シ ス ト Web サ イ ト には、 標準の Web ブ ラ ウ ザでア ク セ スす る こ と がで き る オ ン ラ イ ン版のマ ニ ュ アルが あ り ま す。 こ の Web サ イ ト では、 PDF お よ び HTML 形式でマニ ュ アルを見 る こ と がで き ます。 オ ン ラ イ ン版のマニ ュ アルには、 ア シ ス ト の PowerBuilder のサ イ ト http://www.ashisuto.co.jp/prod/powerbuilder/ にあ る 「技術情報」 か ら ア ク セ ス で き ます。 デー タ ベース と の接続 ix • Sybase 製品マニ ュ アル Web サ イ ト (英語) は、 標準の Web ブ ラ ウ ザか ら ア ク セ ス で き 、 Sybase の製品マニ ュ アルのほか、 EBF/ メ ン テナン ス、 技術文書な どへの リ ン ク も 含んでい ます。 Sybase 製品マ ニ ュ アル Web サ イ ト には、 Product Manuals のサ イ ト http://www.sybase.com/support/manuals/ か ら ア ク セ ス で き ます。 表記規則 こ のマニ ュ アルは、 以下の表記規則に準拠 し て記述 さ れてい ます。 表記例 Retrieve お よ び Update 意味 説明文で使用 さ れてい る 場合、 左記 フ ォ ン ト は次 の項目のいずれか を示 し ます。 • コ マ ン ド 名、 関数名、 メ ソ ッ ド 名 • true、 false、 null な ど のキーワー ド • Integer 型、 Char 型な ど のデー タ 型 • emp_id、 f_name な ど のデー タ ベース カ ラ ム名 変 数 (variable) ま た は フ ァ イ ル名 (file name) • dw_emp、 w_main な ど のユーザ定義オブジ ェ ク ト 説明文や構文の説明で使用 さ れてい る 場合、斜体 フ ォ ン ト は次の項目のいずれか を示 し ます。 • myCounter な ど の変数名 • pblname.pbd な ど、 入力が必要な入力テ キ ス ト の一部 [フ ァ イ ル|上書き 保存] dw_1.Update() • フ ァ イ ル と パス名 メ ニ ュ ー名や メ ニ ュ ー項目は、単純なテ キ ス ト で 記述 さ れてい ます。 縦棒 (|) は、 メ ニ ュ ーの選 択順序を示 し ます。 た と えば、 [フ ァ イ ル|上書 き 保存] は、 「[フ ァ イ ル] メ ニ ュ ーか ら [上書き 保存] を選択する 」 こ と を示 し ます。 こ のフ ォ ン ト は次の項目のいずれか を示 し ます。 • ダ イ ア ロ グボ ッ ク スやコ マ ン ド ラ イ ンに入力 する 情報 • サンプル ス ク リ プ ト の一部 • サンプル出力の一部 サポー ト について x 「サポー ト ハン ド ブ ッ ク 」 を参照 し て く だ さ い。 PowerBuilder 第 1 部 デー タ ベース接続に関す る 作業 第 1 部では、PowerBuilder でのデー タ 接続について解説 し ます。 PowerBuilder 開発環境でデー タ ベースに接続する方 法を理解する こ と がで き ます。 第 1 章 デー タ ベース と の接続について こ の章について こ の章では、 PowerBuilder 開発環境でデー タ ベー ス に接続す る た めの概念や手順について、 その概要を解説 し ます。 内容 項目 デー タ ベース と の接続の手順 PowerBuilder でのデー タ ア ク セ ス方法 EAS Demo DB へのア ク セ ス デー タ ベース プ ロ フ ァ イ ルの使い方 次の ス テ ッ プ ページ 3 6 7 8 13 デー タ ベース と の接続の手順 PowerBuilder では、 開発環境 ま たはア プ リ ケーシ ョ ン の ス ク リ プ ト でデー タ ベース に接続で き ます。 こ のマ ニ ュ アルでは、 PowerBuilder 開発環境におけ る デー タ ベー スへの接続方法について解説 し ます。 PowerBuilder ア プ リ ケーシ ョ ン の ス ク リ プ ト でのデー タ ベー ス へ の接続については、『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルを 参照 し て く だ さ い。 基本的な接続手順 以下の表に、 接続手順の概略、 それぞれの ス テ ッ プの内容や参照 先を示 し ます。 表 1-1: 基本的な接続手順 ステ ッ プ 1 概要 内容 参照先 (オ プ シ ョ ン) PowerBuilder 必要に応 じ て、PowerBuilder 第 1 章 ( こ の章) に お け る デー タ ベー ス 接続 が開発環境において ど の よ の概要 う にデー タ ベー ス に接続す る かについて学習す る デー タ ベース と の接続 3 デー タ ベース と の接続の手順 ステ ッ プ 2 概要 内容 PowerBuilder で デ ー タ ソ ー PowerBuilder の外部の環境 ス やデー タ ベー ス に 初 め て で、 接 続 に 必 要 な ネ ッ ト 接続する 前に、デー タ ソ ース ワ ー ク 、 デー タ ベース サー やデー タ ベー ス を 使用す る バ、 お よ びデー タ ベース ク ための準備 ラ イアン ト ソ フ ト ウ ェア を イ ン ス ト ール し 、 デー タ ベース に接続で き る こ と を 確認する 参照先 ODBC デー タ ソ ー ス について は、 第 2 章 「ODBC イ ン タ フ ェース」 JDBC デー タ ソ ー ス につい て は、第 3 章「JDBC イ ン タ フ ェー ス」 OLE DB デー タ ソ ー ス につい ては、 第 4 章 「OLE DB イ ン タ フ ェース」 ADO.NET デー タ ソ ー ス につ いては、 第 5 章 「ADO.NET イ ン タ フ ェース」 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース については、第 6 章 「ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェース の使い方」 3 ODBC ド ラ イ バ、 OLE DB デー タ ア ク セ ス に 必要 な データ プロ バイ ダ、ADO.NET ド ラ イ バ、 デー タ ベース プ デー タ プ ロ バ イ ダ、ま たはネ ロ バ イ ダ、 ま たはネ イ テ ィ イ テ ィ ブ デー タ ベー ス イ ン ブ デー タ ベー ス イ ン タ タ フ ェ ース の イ ン ス ト ール フ ェ ース を イ ン ス ト ールす る 4 デー タ ソ ー ス の定義 (ODBC ODBC 経由でア ク セ スす る 接続 と 一部の OLE DB ド ラ イ デー タ ソ ー ス に 必要 な 設 バの場合) 定を作成する 4 使用 し て い る プ ラ ッ ト フ ォ ー ム でサ ポー ト さ れ て い る リ ス ト の内容については、オン ラ イ ン ヘルプの 「サポー ト し てい る デー タ ベー ス イ ン タ フ ェ ー ス」 ODBC デー タ ソ ー ス について は、 第 2 章 「ODBC イ ン タ フ ェース」 PowerBuilder 第1章 ステ ッ プ 5 概要 内容 データ ベース イ ン タ フ ェ ー デー タ ベー ス プ ロ フ ァ イ ス の定義 ルを作成する デー タ ベース と の接続について 参照先 ODBC デー タ ソ ー ス について は、 第 2 章 「ODBC イ ン タ フ ェ ース」 JDBC デー タ ソ ー ス につい て は、第 3 章「JDBC イ ン タ フ ェー ス」 OLE DB デー タ ソ ー ス につい ては、 第 4 章 「OLE DB イ ン タ フ ェ ース」 ADO.NET デー タ ソ ー ス につ いては、 第 5 章 「ADO.NET イ ン タ フ ェ ース」 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース については、第 6 章 「ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ース の使い方」 6 EAServer 接続の定義 EAServer プ ロ フ ァ イ ル を 作成する 7 デー タ ソ ー ス ま た はデー タ ベース と の接続 (オ プ シ ョ ン) 接続パ ラ メ ー タ の追加設定 PowerBuilder か ら デー タ に ア ク セ スする 必要に応 じ て、 デー タ ベー ス 接続を円滑に し た り 、 使 用す る イ ン タ フ ェ ース でサ ポ ー ト さ れ て い る DBMS 固有の機能を利用 し た り す る ために DBParm パ ラ メ ー タ やデー タ ベー ス環境を設 定する 必 要 に 応 じ て、 ト レ ー ス ツールを使用 し て、 接続に 関す る ト ラ ブルシ ュ ーテ ィ ン グ を行 う 8 9 (オ プ シ ョ ン) デー タ ベー ス 接続に関す る ト ラ ブル シ ュ ーテ ィ ン グ デー タ ベース と の接続 PowerBuilder コ ン ポーネ ン ト については、 第 14 章 「PowerBuilder コ ン ポーネ ン ト 内でのデー タ ベース接続の確 立」 第 14 章 「PowerBuilder コ ン ポーネ ン ト 内でのデー タ ベー ス接続の確立」 第 11 章 「デー タ ベース接続の 管理」 操作手順については、 第 12 章 「接続パ ラ メ ー タ の追加設定」 DBParm の解説については、 オ ン ラ イ ン ヘルプ デー タ ベー ス の環境設定につ いては、 オン ラ イ ン ヘルプ 第 13 章 「デー タ ベース接続に 関す る ト ラ ブル シ ュ ーテ ィ ン グ」 5 PowerBuilder でのデー タ ア ク セス方法 PowerBuilder でのデー タ ア ク セス方法 PowerBuilder 開発環境では、以下の方法でデー タ にア ク セ ス で き ます。 標準デー タ ベース イ ン タ フ ェ ース • ODBC、 JDBC、 ADO.NET、 ま たは OLE DB な ど の標準デー タ ベー ス イ ン タ フ ェース を経由す る 方法 • ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース を経由す る 方法 標準デー タ ベース イ ン タ フ ェ ース は、 標準準拠 ド ラ イ バ (ODBC お よ び JDBC の場合)、ま たはデー タ プ ロ バ イ ダ(OLE DB お よ び ADO.NET の場合) を経由 し てデー タ ベース と 通信 し ま す。 標準準拠 ド ラ イ バ ま たはデー タ プ ロ バ イ ダは、 標準の API に よ っ て定義 さ れ る 抽象的な関 数呼び出 し を、 それぞれのデー タ ベース が解釈で き る 関数呼び出 し に 変換 し ます。 標準デー タ ベース イ ン タ フ ェ ース を使用す る には、 まず 標準の API と 適切な ド ラ イ バ ま たはデー タ プ ロ バ イ ダ を イ ン ス ト ー ルす る 必要があ り ます。 次に、 PowerBuilder セ ッ ト ア ッ プ プ ロ グ ラ ム で、 DBMS にア ク セ スす る のに使 う 標準デー タ ベース イ ン タ フ ェ ース を選択 し 、 イ ン ス ト ールす る 必要があ り ます。 PowerBuilder は、 現時点で以下の標準 イ ン タ フ ェ ー ス を サポー ト し て い ます。 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ー ス • Open Database Connectivity (ODBC) • Java Database Connectivity (JDBC) • Microsoft 社製 Universal Data Access Component OLE DB • Microsoft 社製 ADO.NET ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス は直接接続でデー タ ベー ス と 通信 し ま す。 デー タ ベー ス と の通信には そ のデー タ ベー ス の ネ イ テ ィ ブな API を使い ます。 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を経由 し てデー タ にア ク セ スす る には、 自分のサ イ ト のサーバや ク ラ イ ア ン ト ワ ー ク ス テーシ ョ ンに、 適切なデー タ ベース ソ フ ト ウ ェ ア を あ ら か じ め イ ン ス ト ール し ます。 次に、 PowerBuilder セ ッ ト ア ッ プ プ ロ グ ラ ム で、 DBMS にア ク セ ス す る ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を選択 し 、 イ ン ス ト ール し ます。 た と えば、 Sybase Adaptive Server® Enterprise のサーバお よ び ク ラ イ ア ン ト ソ フ ト ウ ェ アが イ ン ス ト ール さ れてい る 場合は、 Adaptive Server Enterprise デー タ ベース イ ン タ フ ェ ース を イ ン ス ト ール し て、そのデー タ ベース にア ク セ ス し ます。 6 PowerBuilder 第1章 デー タ ベース イ ン タ フ ェ ース ラ イ ブ ラ リ のロー ド デー タ ベース と の接続について PowerBuilder では、 デー タ ベース に接続す る と 、 そのデー タ ベース イ ン タ フ ェ ー ス が使用す る ラ イ ブ ラ リ が ロ ー ド さ れ ま す。 PowerBuilder で は、 デー タ ベー ス と の 接続 が解除 さ れ て も デー タ ベー ス イ ン タ フ ェース ラ イ ブ ラ リ の自動的な解放は行われ ません。 こ の手法では メ モ リ の消費量がい く ら か増え ますが (デー タ ベース イ ン タ フ ェ ー ス ラ イ ブ ラ リ が メ モ リ に ロ ー ド さ れた ま ま にな る ので) 、 デー タ ベース の接続に際 し て起 こ る ラ イ ブ ラ リ の解放 と リ ロ ー ド に関 す る 問題が解消 さ れ る のでパフ ォ ーマ ン ス の向上につなが り ます。 デー タ ベー ス と の接続解除時に、 今 ま で ど お り デー タ ベー ス イ ン タ フ ェース ラ イ ブ ラ リ を解放 し たい場合には、 以下の よ う にデフ ォ ル ト の動作を変更で き ます。 デ フ ォ ル ト の動作 を 変更する接続 開発環境での接続 実行時の接続 操作 シ ス テ ム オプシ ョ ン ダ イ ア ロ グボ ッ ク ス の [全般] タ ブで [切断時にデー タ ベース ド ラ イ バ ラ イ ブ ラ リ を解放す る ] チ ェ ッ ク ボ ッ ク ス を オンにする アプ リ ケーシ ョ ン ペ イ ン タ の [プ ロ パテ ィ ] ビ ュ ー の [全般] タ ブ、 ま たは ス ク リ プ ト 上で、 アプ リ ケー シ ョ ン オブジ ェ ク ト の FreeDBLibraries (DB ラ イ ブ ラ リ の解放) プ ロ パテ ィ を TRUE に設定 し ます。 EAServer コ ンポーネ ン ト コ ン ポーネ ン ト を EAServer に配布す る 場合には、 デー タ ベー ス イ ン タ フ ェ ース ラ イ ブ ラ リ の自動解放は行え ません。 EAS Demo DB へのア ク セス PowerBuilder に は EAS Demo DB と い う ス タ ン ド ア ロ ン の SQL Anywhere® デー タ ベース が付属 し てい ます。こ のデー タ ベース は、セ ッ ト ア ッ プ プ ロ グ ラ ム で こ のオプシ ョ ン の選択を ク リ ア し ない限 り 、 自 動的に イ ン ス ト ール さ れ ま す。 PowerBuilder のチ ュ ー ト リ アル を使用 す る 際に、 こ の EAS Demo DB 内のテーブルへア ク セ ス す る こ と にな り ます。 ア ク セ スす る 際に SQL Anywhere ODBC ド ラ イ バを使用す る ので、SQL Anywhere デー タ ベース は ODBC デー タ ソ ース と みな さ れ ます。 デー タ ベース と の接続 7 デー タ ベース プ ロ フ ァ イルの使い方 デー タ ベース プ ロ フ ァ イルの使い方 デー タ ベース プ ロ フ ァ イル と は ? デー タ ベース プ ロ フ ァ イ ルは、 PowerBuilder 開発環境で、 特定のデー タ ベー ス と の接続を定義す る シ ス テ ム レ ジ ス ト リ に格納 さ れてい る 、 パ ラ メ ー タ セ ッ ト です。デー タ ベース プ ロ フ ァ イ ルはデー タ 接続ご と に作成す る 必要があ り ます。 実行で き る作業 デー タ ベース プ ロ フ ァ イ ルを使用す る と 、 PowerBuilder 開発環境での デー タ ベー ス への接続管理が容易にな り ます。 た と えば、 デー タ ベー ス プ ロ フ ァ イ ルに よ っ て、 以下の操作がで き ます。 詳細について • デー タ ベース プ ロ フ ァ イ ルを選択 し て、 デー タ ベース に接続 し た り 、 別のデー タ ベース に切 り 替え た り す る • デー タ ベース プ ロ フ ァ イ ルを編集 し て、 接続を カ ス タ マ イ ズす る • ア ク セ スす る 必要がな く な っ たデー タ ベース プ ロ フ ァ イ ルを削除 する • データ ベース プロ フ ァ イ ルを イ ン ポート およ びエク ス ポート し て、 接続パ ラ メ ー タ を共有す る デー タ ベース プ ロ フ ァ イ ルの使い方については、第 11 章 「デー タ ベー ス接続の管理」 を参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イルの作成について PowerBuilder でデー タ ベー ス プ ロ フ ァ イ ルを作成す る 際には、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス と イ ン タ フ ェ ース固有の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス と い う 2 つのダ イ ア ロ グボ ッ ク ス を設定 し ます。 デー タ ベース ペ イ ン タ を使用 し たデー タ ベース プ ロ フ ァ イルの作成 デー タ ベース プ ロ フ ァ イ ルは、デー タ ベース ペ イ ン タ のオブジ ェ ク ト ビ ュ ーか ら 作成す る こ と も で き ます。 8 PowerBuilder 第1章 DB プ ロ フ ァ イル ダ イ ア ログボ ッ ク ス デー タ ベース と の接続について DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス では、 イ ン ス ト ール済みのデー タ ベー ス イ ン タ フ ェ ー ス お よ び定義済みデー タ ベー ス プ ロ フ ァ イ ル が、 ナビ ゲー ト し やすい ツ リ ー形式で表示 さ れます。 デー タ ベース プ ロ フ ァ イ ルの作成、 編集、 お よ び削除は、 こ のダ イ ア ロ グ ボ ッ ク ス で 行い ます。 PowerBuilder セ ッ ト ア ッ プ プ ロ グ ラ ム を実行す る と 、 HKEY_LOCAL_MACHINE レ ジ ス ト リ キーの PowerBuilder® セ ク シ ョ ン の Vendors リ ス ト が更新 さ れ、 イ ン ス ト ールす る イ ン タ フ ェース が 追加 さ れ ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス には、 Vendors リ ス ト に入っ てい る イ ン タ フ ェース が表示 さ れます。 Vendors リ ス ト の格納場所 PowerBuilder と InfoMaker® は HKEY_LOCAL_MACHINE\SOFTWARE の Sybase\PowerBuilder\11.0\Vendors キーを使用 し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス を使用 し てデー タ ベース に接続 し た り プ ロ フ ァ イ ルを管理 し た り す る 方法については、 第 11 章 「デー タ ベース接続の管理」 を参照 し て く だ さ い。 デー タ ベース と の接続 9 デー タ ベース プ ロ フ ァ イルの使い方 DB プ ロ フ ァ イル設定 ダ イ ア ログボ ッ ク ス 各デー タ ベース イ ン タ フ ェ ース には、 それぞれ独自の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス が あ り 、 イ ン タ フ ェ ー ス 固有の接続パ ラ メ ー タ を設定で き ます。 た と えば、 Adaptive Server® Enterprise ASE イ ン タ フ ェ ース を イ ン ス ト ール し 、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス でそれを選択 し て [新規作成] を ク リ ッ ク す る と 、 DB プ ロ フ ァ イ ル 設定 - Adaptive Server Enterprise ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 こ の イ ン タ フ ェ ース に適用す る 接続オプシ ョ ンの設定が示 さ れ ます。 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス では、 関連す る 接続パ ラ メ ー タ が同 じ タ ブ ページ に グ ループ化 さ れ、 チ ェ ッ ク ボ ッ ク ス、 ド ロ ッ プダ ウ ン リ ス ト 、 お よ びテ キ ス ト ボ ッ ク ス を使 う こ と で値が設定 し やす く な っ てい ます。 基本 (必須) 接続パ ラ メ ー タ は、 [接続] タ ブ 上で設定 し 、 追加接続オプシ ョ ン (DBParm パ ラ メ ー タ と SQLCA プ ロ パテ ィ ) はほかの タ ブ ページで設定 し ます。 PowerBuilder の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定す る と 、 選択 し た オ プ シ ョ ン に合わせて正 し い PowerScript® 接続構文が [プ レ ビ ュ ー] タ ブ上に生成 さ れ ます。 [プ レ ビ ュ ー] タ ブに表示 さ れ た構文 を PowerBuilder ア プ リ ケ ーシ ョ ン の ス ク リ プ ト に コ ピ ー し ま す。 10 PowerBuilder 第1章 DB プ ロ フ ァ イル設定 ダ イ ア ログボ ッ ク スの 値の指定 デー タ ベース と の接続について デー タ ベース イ ン タ フ ェース に よ っ ては、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス のすべて の ボ ッ ク ス に値 を 入力す る 必要は あ り ま せ ん。 プ ロ フ ァ イ ル名だけ を入力 し て [OK] ボ タ ン を ク リ ッ ク す る と 、 デー タ ベー ス への接続の際に、 PowerBuilder は必要な追加情報を求め る ダ イ ア ロ グボ ッ ク ス を順番に表示 し ます。 こ の接続情報には次の内容があ り ます。 ユーザ ID ま たは ロ グ イ ン ID パ ス ワ ー ド ま たは ロ グ イ ン パ ス ワー ド デー タ ベース名 サーバ名 データ ベース によ っ ては、プロ フ ァ イ ル名の指定だけでは、PowerBuilder が接続に必要な追加情報を判断で き ない場合があ り ます。 その よ う な デー タ ベース イ ン タ フ ェース の場合は、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス に表示 さ れ る ボ ッ ク ス に、 適切な値を入力 し ます。 使用す る 接続に対 し て入力が必要な値についての詳細は、 使用す る イ ン タ フ ェース の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス で[ヘルプ] ボ タ ン を ク リ ッ ク し て参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イルの作成 デー タ ベー ス イ ン タ フ ェ ー ス の新 し いデー タ ベー ス プ ロ フ ァ イ ル を 作成す る には、 デー タ ベー ス 接続に使用す る イ ン タ フ ェ ー ス 用に DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定 し なければな り ません。 ❖ データ ベース イ ン タ フ ェ ースに対応する データ ベース プロ フ ァ イ ルを 作成する 1 パ ワーバーの [DB プ ロ フ ァ イ ル] ボ タ ン を ク リ ッ ク し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が開 き 、 イ ン ス ト ール済み のデー タ ベース イ ン タ フ ェ ース が一覧表示 さ れ ます。 特定の イ ン タ フ ェ ース 用に定義 さ れてい る デー タ ベース プ ロ フ ァ イ ルを表示 す る には、 イ ン タ フ ェース名の左の正符号 (+) を ク リ ッ ク す る か、 イ ン タ フ ェース名を ダブル ク リ ッ ク し て リ ス ト を展開 し ます。 2 イ ン タ フ ェ ー ス 名を選択 し て [新規作成] ボ タ ン を ク リ ッ ク し ま す。 選択 し た イ ン タ フ ェ ー ス 用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。 た と えば、 SYC イ ン タ フ ェ ース を選択 し た場合、 表示 さ れ る ダ イ ア ロ グ ボ ッ ク ス は DB プ ロ フ ァ イ ル設 定 - Adaptive Server Enterprise ダ イ ア ロ グボ ッ ク ス です。 デー タ ベース と の接続 11 デー タ ベース プ ロ フ ァ イルの使い方 ク ラ イ ア ン ト ソ フ ト ウ ェ アおよび イ ン タ フ ェ ースのイ ン ス ト ールが必要 イ ン タ フ ェ ース用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を 表示す る には、 必要な ク ラ イ ア ン ト ソ フ ト ウ ェ アお よ びネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース が適切に イ ン ス ト ール さ れ、 正 し く 設定 さ れていなければな り ません。 使用す る デー タ ベース イ ン タ フ ェ ー ス に固有の操作については、 それぞれの イ ン タ フ ェ ー ス の章を参照 し て く だ さ い。 3 [接続] タ ブで、 プ ロ フ ァ イ ル名を入力 し 、 使用す る イ ン タ フ ェ ー ス で接続に必要な基本パ ラ メ ー タ の値を指定 し ます。 イ ン タ フ ェ ー ス の基本接続パ ラ メ ー タ お よ び指定す る 値について の詳細は、 [ヘルプ] ボ タ ン を ク リ ッ ク し て参照 し て く だ さ い。 DBMS 識別名について デー タ ベー ス プ ロ フ ァ イ ルに DBMS 識別子 を 指定す る 必要は あ り ません。 イ ン ス ト ール済みのデー タ ベース イ ン タ フ ェ ース のプ ロ フ ァ イ ルを新規作成す る と 、PowerBuilder に よ っ て正 し い DBMS 接続構文が自動的に生成 さ れ ます。 4 (オプシ ョ ン) ほかの タ ブ ページで、追加接続オプシ ョ ン (DBParm パ ラ メ ー タ お よ び SQLCA プ ロ パテ ィ ) の値を指定 し ます。 こ れ ら のオプシ ョ ン を設定す る と 、 イ ン タ フ ェ ー ス がサポー ト し てい る DBMS 固有の機能を最大限に活かす こ と がで き ます。 イ ン タ フ ェ ー ス の追加接続パ ラ メ ー タ お よ び指定す る 値について の詳細は、 [ヘルプ] ボ タ ン を ク リ ッ ク し て参照 し て く だ さ い。 5 (オプシ ョ ン) 選択 し たオプシ ョ ンに合わせて PowerBuilder に よ っ て 生 成 さ れ た PowerScript 接 続 構 文 を 表 示 す る 場 合 は、 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 [プ レ ビ ュ ー] タ ブ に 表 示 さ れ て い る PowerScript 接 続 構 文 は、 PowerBuilder ア プ リ ケーシ ョ ン の ス ク リ プ ト に直接 コ ピ ーす る こ と がで き ます。 PowerBuilder アプ リ ケーシ ョ ンか ら 接続す る ために [プ レ ビ ュ ー] タ ブ を利用す る 手順については、 『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルの ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の使用方法について 説明 し てい る 節を参照 し て く だ さ い。 12 PowerBuilder 第1章 6 デー タ ベース と の接続について [OK] ボ タ ン を ク リ ッ ク し て変更を保存 し 、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ま す。 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ない で特定の タ ブ ページ の変更 を保存す る には、 [更新] ボ タ ン を ク リ ッ ク し ます。 DB プロ フ ァ イ ル ダイ アロ グ ボッ ク ス が表示さ れ、 該当する イ ン タ フ ェース名の下に新 し いプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れ ま す。 デー タ ベース プ ロ フ ァ イ ルの値は HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\11.0\Data baseProfiles\PowerBuilder 内のシス テム レ ジス ト リ に保存さ れま す。 レ ジ ス ト リ の項目を参照 し た り 、 164 ページの 「デー タ ベー ス プ ロ フ ァ イ ルの イ ン ポー ト と エ ク ス ポー ト 」 に記載 さ れてい る プ ロ フ ァ イ ルのエ ク ス ポー ト を行っ た り し て、 変更 し た文字列を確認 す る こ と が で き ま す。 デ フ ォ ル ト では、 NewLogic パ ラ メ ー タ は True に設定 さ れます。 こ の設定は、パ ス ワー ド を Unicode エ ン コ ー デ ィ ン グで暗号化す る こ と を指定 し てい ます。 次のス テ ッ プ ODBC デー タ ソ ース を使用す る ための準備や定義については、 第 2 章 「ODBC イ ン タ フ ェ ース」 を参照 し て く だ さ い。 JDBC デー タ ベー ス イ ン タ フ ェ ース を使用す る ための準備や定義につ いては、 第 3 章 「JDBC イ ン タ フ ェース」 を参照 し て く だ さ い。 OLE DB デー タ プ ロ バ イ ダ を使用す る ための準備や定義については、 第 4 章 「OLE DB イ ン タ フ ェース」 を参照 し て く だ さ い。 ADO.NET デー タ プ ロ バ イ ダ を 使用す る た め の準備や定義につい て は、 第 5 章 「ADO.NET イ ン タ フ ェ ース」 を参照 し て く だ さ い。 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を使用す る ための準備や定 義については、 第 6 章 「ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース の使 い方」 を参照 し て く だ さ い。 デー タ ベース と の接続 13 次のス テ ッ プ 14 PowerBuilder 第 2 部 標準データ ベース イ ン タ フ ェ ースの使い方 第 2 部では、標準デー タ ベース イ ン タ フ ェ ース を使用 し て ア ク セ スするデー タ ベース接続を セ ッ ト ア ッ プお よび定義 する方法について説明 し ます。 第 2 章 ODBC イ ン タ フ ェ ース こ の章について こ の章では、 ODBC イ ン タ フ ェ ー ス の概要について説明 し 、 デー タ ソ ー ス を 使用す る ための準備、 デー タ ソ ー ス の定義、 お よ び ODBC デー タ ソ ー ス プ ロ フ ァ イ ルの定義の し か たについ て解説 し ます。 ま た、 Sybase SQL Anywhere ODBC ド ラ イ バの使い方につ いて も 解説 し ます。 内容 詳細について デー タ ベース と の接続 項目 ODBC イ ン タ フ ェース について ODBC デー タ ソ ース の準備 ODBC デー タ ソ ース の定義 ODBC イ ン タ フ ェース の定義 Sybase SQL Anywhere ページ 18 26 27 32 32 こ の章では、各 ODBC デー タ ソ ース を使用す る ための準備 と 定義 に関す る 一般的な内容について説明 し ま す。 詳細については、 以 下を参照 し て く だ さ い。 • 31 ページの 「ODBC ド ラ イ バに関す る オ ン ラ イ ンヘルプの表 示」 で説明 さ れてい る よ う に、 ODBC ド ラ イ バの各ベン ダが提 供す る オ ン ラ イ ン ヘルプ を使用 し て く だ さ い。 こ のヘルプに はデー タ ソ ース を使用す る 上での重要な内容が含ま れてい ま す。 • ODBC デー タ ソ ース に接続す る 方法を解説 し たテ ク ニ カル ド キ ュ メ ン ト があ る か ど う か を確認 し て く だ さ い。 接続に関す る 新 し い情報は、 Sybase サポー ト と ダウ ン ロー ド のサ イ ト http://www.sybase.com/support か ら 入手で き ます。 17 ODBC イ ン タ フ ェ ースについて ODBC イ ン タ フ ェ ースについて PowerBuilder では、 さ ま ざ ま な ODBC デー タ ソ ース にア ク セ ス で き ま す。 こ の節では、 ODBC イ ン タ フ ェース を使用 し て PowerBuilder か ら ODBC デー タ ソ ース に接続す る 方法について解説 し ます。 ODBC と は ? ODBC API Open Database Connectivity (ODBC) と は、 Microsoft 社に よ っ て開発 さ れた標準アプ リ ケーシ ョ ン プ ロ グ ラ ム用 イ ン タ フ ェ ー ス (API) で す。 ODBC を使用す る と 、 1 つのアプ リ ケーシ ョ ン か ら 、 ODBC に準 拠す る ド ラ イ バ を 備え た複数のデー タ ソ ー ス に ア ク セ ス す る こ と が で き ます。 こ の場合、 SQL (Structured Query Language) を標準のデー タ ア ク セ ス言語に使用 し ます。 ODBC API では、 以下の内容が定義 さ れてい ます。 • デー タ ソ ースへの接続、 SQL 文の実行、 お よ び結果の取得を行 う ODBC 関数呼び出 し ラ イ ブ ラ リ • DBMS に接続 し て ロ グ イ ンす る ための標準的な方法 • X/Open と SQL Access Group (SAG) の CAE 仕様 (1992) に基づく SQL 構文 • デー タ 型の標準表記法 • エ ラ ー コ ー ド の標準セ ッ ト ODBC デー タ ソ ース へのア ク セス PowerBuilder の よ う に ODBC イ ン タ フ ェ ース を備え た アプ リ ケーシ ョ ンは、 ODBC ド ラ イ バをサポー ト す る デー タ ソ ース にア ク セ ス で き ま す。 ODBC デー タ ソ ー ス ド ラ イ バは、 ODBC 関数が実装 さ れた ダ イ ナ ミ ッ ク リ ン ク ラ イ ブ ラ リ (DLL) です。 アプ リ ケーシ ョ ンは、 特定 のデー タ ソ ース にア ク セ スす る ために、そのデー タ ソ ース に対応す る ODBC ド ラ イ バを起動 し ます。 Unicode デー タ へのア ク セス PowerBuilder は、 ODBC イ ン タ フ ェース を使用 し て、 ANSI/DBCS お よ び Unicode の両方のデー タ ベー ス のデー タ に接続、 保存、 検索す る こ と がで き ますが、 Unicode と ANSI/DBCS 間でのデー タ 変換を行い ませ ん。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベース に送信 さ れ る と 、 PowerBuilder は Unicode 文字列 を 送信 し ま す。 デー タ が 正 し く Unicode デー タ と し て保存 さ れ る こ と を ド ラ イ バが保証す る 必要が あ り ます。 PowerBuilder は文字デー タ を検索す る と き 、 デー タ は Unicode であ る と 仮定 し ます。 18 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース Unicode データ ベース は、 文字セッ ト が Unicode 形式 (UTF-8、 UTF-16、 UCS-2、 UCS-4 な ど) に設定 さ れ る デー タ ベース の こ と です。 すべての デー タ は、 Unicode 形式でなければな ら ず、 デー タ ベース に保存 さ れ る デー タ は、 暗黙的に ま たは明示的に Unicode デー タ に変換 さ れな けれ ばな り ません。 文字セ ッ ト と し て ANSI (ま たは DBCS) を使用す る デー タ ベー ス は、 Unicode デー タ を格納す る 特殊なデー タ 型を使用す る こ と があ り ます。 こ れ ら のデー タ 型を持つカ ラ ムは、 Unicode デー タ だけです。 その よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換 さ れ る 必要 があ り ます。 こ の変換はデー タ ベース サーバ ま たは ク ラ イ ア ン ト が処 理す る 必要があ り ます。 PowerBuilder での ODBC の使い方 実行で き る作業 PowerBuilder では以下の ODBC 接続機能を使用で き ます。 • SQL Anywhere ODBC ド ラ イ バお よ び ODBC イ ン タ フ ェ ース を使 用 し て、 SQL Anywhere ス タ ン ド ア ロ ン デー タ ベース (EAS Demo DB を含む) に接続す る • ロ ーカルな SQL Anywhere デー タ ベース を作成お よ び削除す る 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 • PowerBuilder Desktop を除 く エデ ィ シ ョ ン で Sybase 社以外のベン ダか ら 入手 し た レベル 1 以上の ODBC 準拠の ド ラ イ バを使用 し て デー タ にア ク セ スす る 25 ページの 「ODBC ド ラ イ バの入手」 を参照 し て く だ さ い。 • Microsoft の ODBC デー タ ソ ース ア ド ミ ニ ス ト レー タ を使用 し て ODBC デー タ ソ ース を定義す る 27 ページの 「ODBC デー タ ソ ース の定義」 を参照 し て く だ さ い。 ODBC 接続の コ ンポーネ ン ト ODBC の接続方法 デー タ ベース と の接続 PowerBuilder か ら ODBC デー タ ソ ー ス に ア ク セ ス す る 場合、 デー タ ソ ー ス に到達す る ま でにい く つかの レ イ ヤ を経由 し ます。 それぞれの レ イ ヤは、 接続におけ る 独立 し た コ ン ポーネ ン ト で あ り 、 コ ン ポーネ ン ト ご と に提供 し てい る ベン ダが違 う 可能性があ り ます。 19 ODBC イ ン タ フ ェ ースについて ODBC は標準 API で あ る た め、 PowerBuilder で は ど の よ う な ODBC デー タ ソ ー ス の ア ク セ ス に も 、 共通の イ ン タ フ ェ ー ス が使用 さ れ ま す。 ド ラ イ バが ODBC に準拠 し ていれば、 PowerBuilder で ODBC ド ラ イ バ マネージ ャ に対す る ODBC イ ン タ フ ェ ース を経由 し て、その ド ラ イ バにア ク セ ス で き ます。 開発環境 と ODBC イ ン タ フ ェ ース は、 アプ リ ケーシ ョ ン コ ン ポーネ ン ト と し て、 一緒に動作 し ます。 図 2-1 では、 ODBC 接続の一般的な コ ン ポーネ ン ト を示 し ます。 図 2-1: ODBC 接続のコ ンポーネ ン ト コ ンポーネ ン ト の説明 20 表 2-1 に、 図に示 さ れた各 ODBC コ ン ポーネ ン ト の提供元 と その概要 を示 し ます。 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース 表 2-1: ODBC 接続コ ンポーネ ン ト の提供元 と 動作 コ ンポーネ ン ト アプ リ ケーシ ョ ン 提供元 Sybase 社 ODBC ド ラ イ バ マネージ ャ Microsoft 社 ド ラ イバ ド ラ イ バ ベン ダ デー タ ソ ース DBMS ま たは デー タ ベース ベ ンダ 動作内容 ODBC 関数を呼び出 し 、 SQL 文の発 行、 カ タ ロ グ 情 報 の 要 求、 デ ー タ ソ ース が返す結果な ど を取得す る PowerBuilder では、 ど の ODBC デー タ ソ ー ス に対 し て も 共通の ODBC イ ン タ フ ェース が使用 さ れ る アプ リ ケーシ ョ ン のために、 ド ラ イ バの イ ン ス ト ール、ロ ー ド 、ア ン ロ ー ド をす る ODBC 関数の 呼び出し を 処理し 、 SQL リ ク エス ト を 特定のデータ ソ ー ス へ発行し 、 ア プリ ケ ーシ ョ ン にそ の結果を 返す 必要に応 じ 、 アプ リ ケーシ ョ ン が発 行 し た リ ク エ ス ト は、 バ ッ ク エ ン ド デー タ ベー ス が サ ポ ー ト す る SQL 構文に変換 さ れ る (詳細については、 次の 「ODBC ド ラ イ バの種類」 を参 照) アプ リ ケーシ ョ ン のためにデー タ の 保管や管理 を す る 。 デー タ ソ ー ス は、 ア ク セ ス す る デー タ 、 デー タ を 管理 し てい る DBMS、 オペレーテ ィ ン グ シ ス テ ムのほか、 場合に よ っ て は、 DBMS に ア ク セ ス す る た め の ネ ッ ト ワー ク ソ フ ト ウ ェ アか ら構 成される ODBC ド ラ イバの種類 PowerBuilder か ら ODBC デー タ ソ ース に接続す る と 、 ODBC ド ラ イ バ か ら 、 単一層 (single-tier) ま たは複数層 (multiple-tier) と い う 単語を 含む メ ッ セージが表示 さ れます。 こ れ ら の用語は ODBC 標準で定義 さ れた も ので、 以下の 2 種類の ド ラ イ バを意味 し てい ます。 単一層 ド ラ イバ デー タ ベース と の接続 単一層 ODBC ド ラ イ バでは、 ODBC 関数 と SQL 文の両方が処理 さ れ ます。 つま り 、 単一層 ド ラ イ バには、 デー タ ソ ース フ ァ イ ル と カ タ ロ グ テーブルを管理す る ために必要なデー タ ア ク セ ス ソ フ ト ウ ェ アが 含まれてい ます。 Microsoft Access ド ラ イ バが、 単一層 ODBC ド ラ イ バ の例です。 21 ODBC イ ン タ フ ェ ースについて 図 2-2: 単一層 ODBC ド ラ イバ 複数層 ド ラ イバ 複数層 ODBC ド ラ イ バでは、 ODBC 関数が処理 さ れ ますが、 処理に当 た っ ては、 SQL 文がデー タ ベース エ ン ジ ンに送 ら れます。 単一層 ド ラ イ バ と は異な り 、 複数層 ド ラ イ バには、 直接デー タ を管理す る ための デー タ ア ク セ ス ソ フ ト ウ ェ アが含まれません。 Sybase SQL Anywhere ド ラ イ バが、 複数層 ODBC ド ラ イ バの例です。 22 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース 図 2-3: 複数層 ODBC ド ラ イバ ODBC ド ラ イバの合致レ ベル PowerBuilder Enterprise を使用す る 場合、DBMS ベン ダ な ど Sybase 以外 か ら 入手 し た ODBC ド ラ イ バを使用 し て、デー タ にア ク セ ス で き ます。 ほかのベン ダか ら ODBC ド ラ イ バを入手 し た場合は、 あ る 特定の適合 条件 (合致 レ ベル) を満た さ ない と 、 PowerBuilder で正 し く 動作 し ま せん。 こ の節では、 入手 し た ド ラ イ バが こ れ ら の条件を満た し てい る か ど う か を確認す る 方法について解説 し ます。 ODBC 合致レ ベル と は ? PowerBuilder で は、 ODBC に準拠 し た ド ラ イ バ を 備 え た さ ま ざ ま な デー タ ソ ース にア ク セ ス で き ます。し か し ODBC ド ラ イ バはそれぞれ 異な る ベン ダが提供 し てお り 、 ド ラ イ バに よ っ てサポー ト し てい る 機 能が大 き く 違っ てい る こ と があ り ます。 デー タ ベース と の接続 23 ODBC イ ン タ フ ェ ースについて ODBC イ ン タ フ ェ ース の標準的な準拠レベルを明確に し 、 ま た、 アプ リ ケーシ ョ ン ベン ダ側では、 必要 と す る 機能が ド ラ イ バか ら 提供 さ れ てい る か ど う か を判断で き る よ う にす る ために、 ODBC は、 以下の 2 つの領域で、 ODBC ド ラ イ バの合致レベルを定義 し てい ます。 • ODBC API サ ポー ト し て い る ODBC 関数呼び出 し につい て定義 し ます。 • ODBC SQL 文法 サポー ト し てい る SQL 文や SQL デー タ 型につい て定義 し ます。 API 合致レ ベル ODBC では、 機能の多 さ に応 じ て API 合致レベルが 3 種類定義 さ れて い ます。 ❖ • コ ア ISO Call Level Interface (CLI) と X/Open CLI 仕様に対応す る 一連の機能を実現す る コ ア API のセ ッ ト です。 • レ ベル 1 コ ア API 機能に、 OLTP リ レーシ ョ ナル DBMS で通常使 用可能ない く つかの拡張機能が追加 さ れてい ます。 • レ ベル 2 コ ア API やレベル 1 API の機能に、 い く つかの拡張機能 が追加 さ れてい ます。 適切な ODBC ド ラ イバ API 合致レ ベル • PowerBuilder では、 レベル 1 以上の API 合致レベルを満た し てい る ODBC ド ラ イ バ を 使 用 す る こ と を お 勧 め し ま す。 た だ し 、 PowerBuilder では、 コ ア API 合致 レ ベル を満た し てい る ド ラ イ バ も 動作 し ます。 ODBC では、機能の多 さ に応 じ て SQL 文法の合致レベルが 3 種類定義 さ れてい ます。 SQL 合致レ ベル • 最小 SQL 文法 ODBC の基本合致レベルを満たす SQL 文 と デー タ 型のセ ッ ト です。 ❖ • コ ア SQL 文法 最小 SQL 文法に、X/Open と SAG CAE 仕様 (1992) にほぼ対応す る デー タ 型 と ス テー ト メ ン ト が追加 さ れてい ます。 • 拡張 SQL 文法 最小 SQL 文法や コ ア SQL 文法に、DBMS 共通の拡 張 SQL をサポー ト す る デー タ 型 と ス テー ト メ ン ト が追加 さ れてい ます。 適切な ODBC ド ラ イバ SQL 合致レ ベルは • 24 PowerBuilder では、 コ ア SQL 文法以上の SQL 合致レベルを満た し て い る ODBC ド ラ イ バ を 使用す る こ と を お勧め し ま す。 ま た、 PowerBuilder では最小 SQL 文法の SQL 合致レベルを満た し てい る ド ラ イ バ も 動作 し ます。 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース ODBC ド ラ イバの入手 PowerBuilder と 一緒に提供 さ れ る Sybase の SQL Anywhere® Developer Edition の ODBC ド ラ イ バを使用 し て、デー タ にア ク セ スす る こ と がで き ます。 PowerBuilder Enterprise では、Sybase 以外のベン ダか ら 入手 し た Level 1 以上の ODBC 準拠の ド ラ イ バを使用 し てデー タ にア ク セ スす る こ と も で き ます。 ほ と ん ど の場合、 こ れ ら の ド ラ イ バは PowerBuilder で動作 し ます。 PowerBuilder Desktop 付属の ODBC ド ラ イバの使い方 既存の Microsoft ODBC ド ラ イバの使 い方 以下に示す Microsoft ODBC ド ラ イ バのバージ ョ ン 2.0 以上 を イ ン ス ト ール し て設定すれば、こ れ ら の ド ラ イ バを PowerBuilder Desktop で使 用 し て、 デー タ ソ ース に接続す る こ と がで き ます。 Microsoft Access (*.MDB) Microsoft Btrieve (*.DDF) Microsoft dBASE (*.DBF) Microsoft Excel (*.XLS) Microsoft FoxPro (*.DBF) Microsoft Paradox (*.DB) Microsoft Text (*.CSV, *.TXT) ODBC ド ラ イバに関するヘルプ情報を入手するには PowerBuilder で使用す る ODBC ド ラ イ バに関す る 最新かつ正確な情報 を得 る には、 以下に示す方法でヘルプ情報を入手 し ます。 ヘルプの内容 ODBC デー タ ソ ース ア ド ミ ニ ス ト レー タ ド ラ イ バの ODBC 設定の ダ イ ア ロ グ ボ ッ ク ス への 入力 SQL Anywhere の使い方 Sybase 社以外のベ ン ダ で 入手 し た ODBC ド ラ イ バ デー タ ベース と の接続 操作 それぞれの タ ブの [ヘルプ] ボ タ ン を ク リ ッ ク し ます。 ド ラ イ バの ODBC 設定の ダ イ ア ロ グ ボ ッ ク ス で [ヘルプ] ボ タ ン (存在す る 場合) を ク リ ッ ク し ます。 SQL Anywhere のマ ニ ュ アルを参照 し て く だ さ い。 そ の ド ラ イ バについ て の マ ニ ュ ア ル を 参照 し て く だ さ い。 25 ODBC デー タ ソ ースの準備 ヘルプの内容 操作 ODBC 接続に関す る ト ラ ブルシ ュ ーテ ィ ン グ ODBC デー タ ソ ー ス への接続方法 を 解説 し た テ ク ニ カ ル ド キ ュ メ ン ト が あ る か ど う か確認 し て く だ さ い。 接続に関する 新し い情報は、 Sybase サポー ト と ダ ウ ン ロ ー ド のサ イ ト http://www.sybase.com/support か ら 取得で き ます。 ODBC デー タ ソ ースの準備 ODBC デー タ ソ ース に接続す る ためには、 まず、 使用す る デー タ ソ ー ス を準備 し ま す。 デー タ ソ ー ス を準備す る こ と に よ り 、 PowerBuilder か ら そのデー タ ソ ース に接続 し て、 デー タ が利用で き る よ う にな り ま す。 PowerBuilder を起動 し 、 デー タ ソ ース を定義 し て接続す る 前に、 PowerBuilder の外部の環境でデー タ ソ ース を準備 し てお き ます。 各 デー タ ソ ース に よ っ て必要な条件は異な り ますが、 一般に、 デー タ ソ ース を準備す る には以下の手順を実行 し ます。 ❖ PowerBuilder で使用する ODBC デー タ ソ ース を準備する 1 データ ソ ース に接続する ためにネッ ト ワ ーク ソ フ ト ウ ェ ア が必要 な場合は、 こ れがサ イ ト と ク ラ イ ア ン ト マ シ ン に正 し く イ ン ス ト ール さ れ、 設定 さ れてい る こ と を確認 し ます。 2 デー タ ベース ソ フ ト ウ ェ アが必要な場合は、 こ れが自分のマシ ン と ネ ッ ト ワー ク サーバに正 し く イ ン ス ト ール さ れ、 設定 さ れてい る こ と を確認 し ます。 3 必要なデータ フ ァ イ ルが自分のマシン と ネッ ト ワ ーク サーバにあ る こ と を 確認し ま す。 4 ア ク セ スす る テーブル と カ ラ ムの名前が、 標準 SQL 命名規約に 従っ てい る こ と を確認 し ます。 テーブル と カ ラ ム の名前には、 ス ペー ス やデー タ ベー ス 固有の予 約語を使用 し ないで く だ さ い。 DBMS の大文字 と 小文字を区別す る オプシ ョ ン に注意 し て く だ さ い。PowerBuilder か ら ア ク セ スす る テーブルやカ ラ ム の名前は、 すべて大文字で設定す る のが最 も 適 切です。 5 26 デー タ ベー ス の必要に応 じ て、 ア ク セ ス す る テーブルに固有の イ ンデ ッ ク ス を指定 し ます。 PowerBuilder 第2章 6 ODBC イ ン タ フ ェ ース PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 以下を両方 と も イ ン ス ト ール し ます。 • 目的のデー タ ソ ース にア ク セ スす る ODBC ド ラ イ バ • ODBC イ ン タ フ ェース ODBC デー タ ソ ースの定義 ODBC デー タ ソ ース にア ク セ スす る ためには、そのデー タ ソ ース に対 応 し た ODBC ド ラ イ バが必要です。ODBC デー タ ソ ース を定義す る 際 には、 ODBC ド ラ イ バか ら デー タ ソ ース に接続す る ために必要な情報 を入力 し ます。 ODBC デー タ ソ ース の定義を、 デー タ ソ ース の設定ま たは、 コ ン フ ィ グ レーシ ョ ン と 言 う こ と があ り ます。 使用す る デー タ ソ ー ス の準備を終え た ら 、 Microsoft の ODBC デー タ ソ ー ス ア ド ミ ニ ス ト レ ー タ ユーテ ィ リ テ ィ を使用 し て、 そのデー タ ソ ース を定義す る 必要があ り ます。 こ のユーテ ィ リ テ ィ は Windows の コ ン ト ロ ール パネル ま たは PowerBuilder のデー タ ベー ス ペ イ ン タ か ら ア ク セ ス で き ます。 こ の節の残 り の部分では、 PowerBuilder の開発環境か ら ODBC デー タ ソ ース にア ク セ スす る ために必要な、 ODBC デー タ ソ ース を定義す る 方法について解説 し ます。 PowerBuilder がデー タ ソ ースへのア ク セスに必要な フ ァ イル PowerBuilder か ら ODBC デー タ ソ ース にア ク セ スす る 場合、 ODBC イ ン タ フ ェースや ODBC ド ラ イ バを操作 し て接続をす る ために、 複数の 初期設定フ ァ イ ル と レ ジ ス ト リ エ ン ト リ が必要にな り ます。 PBODB110 初期設定フ ァ イル 内容 デー タ ベース と の接続 PBODB110.INI は、 Sybase\Shared\PowerBuilder デ ィ レ ク ト リ に イ ン ス ト ール さ れ ます。 PowerBuilder では、 ODBC API 呼び出 し でサポー ト さ れて い ないバ ッ ク エ ン ド DBMS の拡張機能への ア ク セ ス を 管理す る ために PBODB110.INI が使用 さ れ ます。 拡張機能の例には、 SQL 構 文や DBMS 固有の関数呼び出 し が挙げ ら れ ます。 27 ODBC デー タ ソ ースの定義 編集 通常、PBODB110.INI を編集す る 必要はあ り ません。 し か し 場合に よ っ ては、 バ ッ ク エ ン ド DBMS の PBODB110.INI に関数を追加す る 必要が あ り ます。 詳 し い手順については、 付録の 「PBODB110 初期設定フ ァ イ ルへの関 数の追加」 を参照 し て く だ さ い。 ODBCINST レ ジ ス ト リ エ ン ト リ 内容 ODBCINST 初期設定情報は、 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI レ ジ ス ト リ キーにあ り ます。 ODBC 準拠 ド ラ イ バを イ ン ス ト ールす る と 、 そ の ド ラ イ バの記述に関 し て ODBCINST.INI が自動的に更新 さ れ ます。 こ の記述内容は以下の と お り です。 編集 • ド ラ イ バに関連付け ら れた DBMS ま たはデー タ ソ ース • ド ラ イ バと セッ ト アッ プ DLL のド ラ イ ブおよ びディ レ ク ト リ (デー タ ソ ース に よ っ ては、 ド ラ イ バ と セ ッ ト ア ッ プ DLL が同 じ も のが あ り ます) • ド ラ イ バ固有のそのほかの接続パ ラ メ ー タ 接続情報を変更す る ために、 レ ジ ス ト リ キーを直接編集す る 必要はあ り ません。 ド ラ イ バが ODBCINST.INI レ ジ ス ト リ キーの中の情報を使 用す る 場合、 ド ラ イ バを イ ン ス ト ールす る と 、 キーは自動的に更新 さ れ ます。 Sybase 社が提供す る ド ラ イ バだけでな く 、 ほかのベン ダが提 供す る ド ラ イ バであ っ て も 、 レ ジ ス ト リ サブキーは同 じ よ う に更新 さ れ ます。 ODBC レ ジ ス ト リ エ ン ト リ 内容 ODBC 初期設定情報は、 HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI レ ジ ス ト リ キーにあ り ます。 特定の ODBC ド ラ イ バに対応す る デー タ ソ ース を 定義す る と き 、 ODBC 設定のダ イ ア ロ グボ ッ ク ス で指定 し た値が、 ド ラ イ バに よ っ て ODBC.INI レ ジ ス ト リ キーに書 き 込まれます。 ODBC.INI キ ーは、 定義 さ れ て い る デー タ ソ ー ス に指定 さ れ た サ ブ キーを含んでい ます。 各サブキーは、 ODBC 設定のダ イ ア ロ グ ボ ッ ク ス のそのデー タ ソ ース に対 し て指定 さ れた値が記述 さ れてい ます。 こ の値はデー タ ソ ース に よ っ て異な り ますが、 一般に以下の内容が格納 さ れ ます。 • 28 デー タ ベース PowerBuilder 第2章 編集 • ド ラ イバ • オプシ ョ ンの記述 • DBMS 固有の接続パ ラ メ ー タ ODBC イ ン タ フ ェ ース 接続情報を変更す る ために、 ODBC サブキーを直接編集す る 必要はあ り ません。 その代わ り に、 ODBC デー タ ソ ース ア ド ミ ニ ス ト レー タ な ど の、 ODBC デー タ ソ ース を定義 し 、 ODBC コ ン フ ィ グ レーシ ョ ン を 自動的に更新す る こ と を目的 と し て設計 さ れた ODBC 管理ツールを使 用 し ます。 デー タ ベース プ ロ フ ァ イル レ ジ ス ト リ エ ン ト リ 内容 全デー タ ソ ース のデー タ ベース プ ロ フ ァ イ ルは、 HKEY_CURRENT_USER\SOFTWARE\Sybase\PowerBuilder\11.0\Data baseProfiles の レ ジ ス ト リ に格納 さ れてい ます。 編集 接続情報を変更す る ために、 プ ロ フ ァ イ ルを直接編集す る 必要はあ り ません。 こ れ ら の フ ァ イ ルは、 PowerBuilder が ODBC デー タ ソ ース定 義の一部 と し てデー タ ベース プ ロ フ ァ イ ルを作成す る と き に、 自動的 に更新 さ れます。 PowerBuilder において、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の プ ロ フ ァ イ ルを編集 し た り 、 DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス に入力 し た り す る こ と に よ っ て、 レ ジ ス ト リ に格納 さ れ る ほ か の接続パ ラ メ ー タ を指定す る こ と も で き ます (詳 し い手順については、 第 12 章 「接続パ ラ メ ー タ の追加設定」 を参照 し て く だ さ い)。 例 以下の例は、 EAS Demo DB デー タ ソ ース に対す る デー タ ベース プ ロ フ ァ イ ルの一部を示 し てい ます。 DBMS=ODBC DBParm=ConnectString='DSN=EAS Demo DB;UID=dba;PWD=00c61737' Prompt=0 こ の レ ジ ス ト リ エ ン ト リ の例で示 さ れて い る よ う に、 ODBC デー タ ソ ース に対応す る デー タ ベース プ ロ フ ァ イ ルの中で、 最 も 重要な値は 以下の と お り です。 • デー タ ベース と の接続 DBMS の値(ODBC)か ら 、デー タ ソ ースへの接続に ODBC イ ン タ フ ェース を使用 し てい る こ と が示 さ れ ます。 DBMS 29 ODBC デー タ ソ ースの定義 • DBParm ConnectString DBParm パ ラ メ ー タ の値は、 ODBC デー タ ソ ー ス への接続 を コ ン ト ロ ール し ま す。 接続文字列に は、 DSN (デー タ ソ ース名) の値を指定 し ます。 DSN の値に よ っ て接続 し た いデー タ ソ ース が ODBC に指定 さ れ ます。デー タ ベース プ ロ フ ァ イ ル を 選択 し てデー タ ソ ー ス に接続す る 場合、 ODBC に よ っ て ODBC.INI レ ジ ス ト リ キーの中か ら 、 プ ロ フ ァ イ ルで指定 さ れた デー タ ソ ース名に対応 し たサブキーが検索 さ れます。 次に、 サブ キーの情報に基づいて、 必要な ラ イ ブ ラ リ が ロ ー ド さ れ、 デー タ ソ ース に接続 さ れ ます。 接続文字列には、 接続に必要な UID (ユー ザ ID) 値お よ び PWD (パ ス ワー ド ) 値を入れ る こ と も で き ます。 同一デー タ に対する複数のデー タ ソ ースの定義 PowerBuilder で ODBC デー タ ソ ース を定義す る と き には、 それぞれの デー タ ソ ース名を固有に し ます。 し か し 、 デー タ ソ ース名が固有であ れば、 同 じ デー タ にア ク セ スす る デー タ ソ ース を複数定義で き ます。 た と えば、 デー タ ソ ース は、 C:\SQL Anywhere\SALES.DB にあ る SQL Anywhere デー タ ベース であ る と し ます。 アプ リ ケーシ ョ ン ご と に、 別 のパ ス ワー ド やユーザ ID な ど、こ のデー タ ベース にア ク セ スす る ため の接続パ ラ メ ー タ を個別に指定 し ます。 ま た、使用する パス ワ ード と ユーザ ID がアプリ ケーショ ンごと に異なって い る と し ます。こ の よ う な場合、同一のデー タ ベース (C:\SQL Anywhere \SALES.DB) に対 し て Sales1 と Sales2 と い う 2 つの ODBC デー タ ソ ー ス を定義 し て、 パ ス ワー ド と ユーザ ID を別々に指定 し ます。 ど ち ら か のデー タ ソ ー ス 用に作成 し た プ ロ フ ァ イ ル を 使用 し てデー タ ソ ー ス に接続すれば、 違 う 接続パ ラ メ ー タ を使用 し て同 じ デー タ にア ク セ ス で き ます。 図 2-4: 2 つのデー タ ソ ース を使用 し てデー タ ベースにア ク セスする方法 30 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース ODBC ド ラ イバに関する オ ン ラ イ ンヘルプの表示 PowerBuilder の ODBC ド ラ イ バに関す る オ ン ラ イ ン ヘルプは、 ド ラ イ バ ベン ダに よ っ て提供 さ れます。 ヘルプ情報の内容は以下の と お り で す。 • ODBC 設定のダ イ ア ロ グボ ッ ク ス に入力 し て、 デー タ ソ ース を定 義す る 方法 • ODBC ド ラ イ バを定義 し てデー タ ソ ース にア ク セ スす る 方法 ODBC ド ラ イバに関するオ ン ラ イ ンヘルプ ODBC ド ラ イ バの ODBC 設定のダ イ ア ロ グ ボ ッ ク ス か ら 以下の手順を 実行す る と 、 ベン ダ提供のオ ン ラ イ ン ヘルプ を表示で き ます。 ❖ ODBC ド ラ イバに関するオ ン ラ イ ン ヘルプ を表示する • ド ラ イ バの ODBC 設定のダ イ ア ロ グボ ッ ク ス の [ヘルプ] ボ タ ン を ク リ ッ ク し ます。 ODBC 設定の ダ イ ア ロ グ ボ ッ ク ス 内の各機能 を 説明す る ヘルプ ウ ィ ン ド ウ が表示 さ れます。 ODBC ト ラ ン ス レー タ の選択 ODBC ト ラ ン ス レー タ とは ? 一部の ODBC ド ラ イ バでは、 デー タ ソ ース を定義す る 際に、 ト ラ ン ス レー タ を指定で き ます。 ODBC ト ラ ン ス レー タ は、 アプ リ ケーシ ョ ン と デー タ ソ ース と の間で受け渡 さ れ る デー タ を変換す る DLL です。一 般に、デー タ を あ る 文字セ ッ ト か ら 別の文字セ ッ ト に変換す る ために、 ト ラ ン ス レー タ を使用 し ます。 必要な操作 以下の手順で、 ODBC ド ラ イ バの ト ラ ン ス レー タ を選択 し ます。 ❖ ODBC ド ラ イバで使用する ト ラ ン ス レー タ を選択する 1 ド ラ イ バの ODBC 設定のダ イ ア ロ グボ ッ ク ス で、 ト ラ ン ス レー タ の選択 ダ イ ア ロ グボ ッ ク ス を表示 し ます。 ト ラ ン ス レー タ の選択 ダ イ ア ロ グ ボ ッ ク ス を表示す る 方法は、 ド ラ イ バ と Windows のプ ラ ッ ト フ ォ ーム に よ っ てそれぞれ異な り ま す。 ド ラ イ バの ODBC 設定のダ イ ア ロ グ ボ ッ ク ス で [ヘルプ] ボ タ ン を ク リ ッ ク し て、 ト ラ ン ス レー タ の選択 ダ イ ア ロ グボ ッ ク ス を表示す る 手順を参照 し て く だ さ い。 デー タ ベース と の接続 31 ODBC イ ン タ フ ェ ースの定義 ト ラ ン ス レー タ の選択 ダ イ ア ロ グボ ッ ク ス に ど の ト ラ ン ス レー タ が表示 さ れ る かは、 ODBCINST.INI レ ジ ス ト リ キーの値に よ っ て 決ま り ます。 2 [使用可能な ト ラ ン ス レー タ ] リ ス ト ボ ッ ク ス か ら 使用す る ト ラ ン ス レー タ を選択 し ます。 ト ラ ン ス レー タ の選択 ダ イ ア ロ グボ ッ ク ス に関す る ヘルプが必要 な場合は、 [ヘルプ] ボ タ ン を ク リ ッ ク し ます。 3 [OK] ボ タ ン を ク リ ッ ク し ます。 ト ラ ン ス レー タ の選択 ダ イ ア ロ グ ボ ッ ク ス が閉 じ て、 ド ラ イ バが 変換処理を実行 し ます。 ODBC イ ン タ フ ェ ースの定義 ODBC イ ン タ フ ェ ー ス を使用す る 接続を定義す る には、 DB プ ロ フ ァ イ ル設定 - ODBC ダ イ ア ロ グ ボ ッ ク ス で基本接続パ ラ メ ー タ な ど の値 を指定 し て、 デー タ ベー ス プ ロ フ ァ イ ルを作成す る 必要があ り ま す。 作成後は、 いつで も こ のプ ロ フ ァ イ ル を 選択 し て開発環境でデー タ ソ ース に接続で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 Sybase SQL Anywhere こ の 節 で は、 Sybase SQL Anywhere ODBC ド ラ イ バ を 使用 し て SQL Anywhere のデー タ ソ ー ス を作成お よ び定義 し 、 接続す る 方法につい て解説 し ます。 名称の変更 SQL Anywhere デー タ ベース サーバは、 バージ ョ ン 6 か ら 9 ま で Adaptive Server® Anywhere (ASA) と 呼ばれてい ま し た。 32 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース SQL Anywhere には、 パー ソ ナル デー タ ベース サーバ と ネ ッ ト ワー ク デー タ ベース サーバの 2 つのデー タ ベース サーバが含まれてい ます。 Sybase SQL Anywhere の使い方については、 SQL Anywhere のマニ ュ ア ルを参照 し て く だ さ い。 SQL Anywhere でサポー ト し ているバージ ョ ン SQL Anywhere ODBC ド ラ イ バは、 以下の ソ フ ト ウ ェ ア で作成 さ れた ロ ーカル デー タ ベー ス や リ モー ト デー タ ベー ス と の接続を サポー ト し てい ます。 • 自分のマシ ン上で稼働 し てい る PowerBuilder • SQL Anywhere バージ ョ ン 10.x • ASA バージ ョ ン 9.x • ASA バージ ョ ン 8.x • ASA バージ ョ ン 7.x • ASA バージ ョ ン 6.x • SQL Anywhere バージ ョ ン 5.x SQL Anywhere の基本ソ フ ト ウ ェ ア コ ンポーネ ン ト 図 2-5 は、 PowerBuilder か ら SQL Anywhere デー タ ソ ー ス に接続す る ために必要な基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト を示 し てい ます。 デー タ ベース と の接続 33 Sybase SQL Anywhere 図 2-5: SQL Anywhere 接続のコ ンポーネ ン ト SQL Anywhere デー タ ソ ース を使用する ための準備 PowerBuilder で SQL Anywhere デー タ ソ ース の定義 と 接続を行 う 前に、 以下の手順に従っ てデー タ ソ ース を準備 し ます。 ❖ SQL Anywhere デー タ ソ ース を準備する 1 SQL Anywhere デー タ ソ ース のデー タ ベース フ ァ イ ルが存在す る こ と を確認 し ま す。 デー タ ベー ス を新 し く 作成す る には、 以下の 操作を実行 し ます。 • 34 Create ASA Database ユーテ ィ リ テ ィ を起動 し ます。自分のマシ ン上で PowerBuilder が稼働 し てい る 場合は、 デー タ ベース プ ロ フ ァ イ ルの ODBC イ ン タ フ ェ ー ス の Utilities フ ォ ルダ ま た はデー タ ベー ス ペ イ ン タ か ら こ のユーテ ィ リ テ ィ にア ク セ ス で き ます。 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース こ の方法の場合、 自分のマシ ン上に ロ ーカルな SQL Anywhere デー タ ベー ス が作成 さ れ、 その接続に対応す る デー タ ソ ー ス 定義やデー タ ベー ス プ ロ フ ァ イ ル も 作成 さ れ ま す (詳 し い手 順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い)。 • 2 ほかのユーザのマシ ン上で稼働 し てい る PowerBuilder を使用 し た り 、 PowerBuilder の外部の環境で SQL Anywhere を使用 し た り す る な ど、 ほかの方法でデー タ ベース を作成 し ます (詳 し い手順については、 SQL Anywhere のマニ ュ アルを参照 し て く だ さ い)。 SQL Anywhere データ ベース に対し てロ グ フ ァ イ ルが存在する こ と を確認 し ます。 デー タ ベース が損傷を受けて も 、 正常な ロ グ フ ァ イ ルがあれば復旧可能です。 SQL Anywhere デー タ ベー ス の ロ グ フ ァ イ ルが存在 し な い場合、 SQL Anywhere デー タ ベース エ ン ジ ン で作成 さ れ ます。 し か し 、 ほ かのマ シ ンやデ ィ レ ク ト リ か ら デー タ ベー ス を コ ピー ま たは移動 す る 場合は、 ロ グ フ ァ イ ル も 一緒に コ ピーま たは移動 し ます。 SQL Anywhere デー タ ソ ースの定義 ロ ーカルな SQL Anywhere デー タ ベース を作成す る と 、PowerBuilder に よ っ て、デー タ ソ ース定義やデー タ ベース プ ロ フ ァ イ ルが自動的に作 成 さ れます。 し たが っ て、 ほかのマシ ン上の PowerBuilder で作成 さ れ た SQL Anywhere デー タ ベー ス にア ク セ ス す る と き に限 り 、 以下の手 順で SQL Anywhere デー タ ソ ース を定義 し ます。 ❖ デー タ ベース と の接続 SQL Anywhere ド ラ イバに対 し て SQL Anywhere デー タ ソ ース を定義する 1 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス ま たはデー タ ベース ペ イ ン タ の ODBC ユーテ ィ リ ィ の一覧か ら [Create ODBC Data Source] を 選択 し ます。 2 [ユーザーデー タ ソ ース] を選択 し て [次へ] ボ タ ン を ク リ ッ ク し ます。 3 [デー タ ソ ース の新規作成] ページで、 SQL Anywhere ド ラ イ バを 選択 し て、 [完了] ボ タ ン を ク リ ッ ク し ます。 35 Sybase SQL Anywhere SQL Anywhere の ODBC 設定 ダ イ ア ロ グボ ッ ク ス が表示 さ れます。 4 以下の値を指定す る 必要があ り ます。 • [ODBC] タ ブのデー タ ・ ソ ース名 • [ ロ グ イ ン] タ ブ ページのユーザ ID と パ ス ワ ー ド • [デー タ ベース] タ ブ ページのデー タ ベース ・ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス の フ ィ ール ド につい て の詳細 を 確認す る に は、 [ヘルプ] ボ タ ン を ク リ ッ ク し ます。 5 (オプシ ョ ン) デー タ を あ る 文字セ ッ ト か ら 別の文字セ ッ ト に変換 す る ODBC ト ラ ン ス レー タ を選択す る には、 [ODBC] タ ブの [ ト ラ ン ス レー タ を選択] ボ タ ン を ク リ ッ ク し ます。 31 ページの 「ODBC ト ラ ン ス レー タ の選択」 を参照 し て く だ さ い。 6 [開始行] 値の指定 36 [OK] ボ タ ン を ク リ ッ ク し て、 デー タ ソ ース定義を保存 し ます。 SQL Anywhere ODBC ド ラ イ バが、 PATH 変数お よ びデー タ ベース名の 設定値を使用 し て稼働 し てい る パー ソ ナル デー タ ベー ス サーバ ま た はネ ッ ト ワ ー ク デー タ ベース サーバを見つけ る こ と がで き ない場合、 [開始行] フ ィ ール ド に指定 さ れて い る コ マ ン ド を 使用 し て、 デー タ ベース サーバを起動 し ます。 PowerBuilder 第2章 ODBC イ ン タ フ ェ ース [デー タ ベー ス] タ ブ ページの [開始行] フ ィ ール ド に、 以下の コ マ ン ド のいずれか を 指定 し ま す。 n は、 使用 し て い る SQL Anywhere の バージ ョ ン です。 指定する コ マ ン ド dbengn.exe rtengn.exe 機能 パー ソ ナル デー タ ベース サーバ と [デー タ ベー ス フ ァ イ ル] ボ ッ ク ス に指定 し たデー タ ベース を起動す る 制限付 き ラ ン タ イ ム デー タ ベー ス サ ー バ と [デー タ ベー ス フ ァ イ ル] ボ ッ ク ス に指定 し た デー タ ベース を起動す る SQL Anywhere の ODBC 設定 ダ イ ア ロ グボ ッ ク ス の設定方法について は、 SQL Anywhere のマニ ュ アルを参照 し て く だ さ い。 Transact-SQL の特殊な timestamp カ ラ ムのサポー ト デー タ ウ ィ ン ド ウ 、 デー タ パ イ プ ラ イ ン、 ま たはデー タ ベース ペ イ ン タ で SQL Anywhere テ ー ブ ル を 処 理 す る 場 合、 デ フ ォ ル ト で は、 timestamp と い う 名前の カ ラ ム が、 SQL Anywhere Transact-SQL の特殊 な timestamp カ ラ ム と し て処理 さ れます。 特殊な Transact-SQL timestamp カ ラ ム を SQL Anywhere テーブルに作成 す る こ と がで き ます。 特殊な timestamp カ ラ ムの作成 ❖ PowerBuilder において SQL Anywhere テーブル内に Transact-SQL の特殊 な timestamp カ ラ ムを作成する 1 2 Transact-SQL の特殊な timestamp カ ラ ム と し て処理す る Timestamp 型のカ ラ ムに対 し て、 timestamp と い う 名前を設定 し ます。 以下の いずれかの方法で操作 し ます。 • ペ イ ン タ を使用す る 場合 - カ ラ ムの名前に timestamp を選択 し ま す。 (詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。) • SQL CREATE TABLE 文を使用す る 場合 - 詳細については、 次 の 「CREATE TABLE の例」 を参照 し て く だ さ い。 カ ラ ム のデフ ォ ル ト 値 と し て timestamp を指定 し ます。以下のいず れかの方法で操作 し ます。 • デー タ ベース と の接続 ペイ ンタ を使用する 場合 - カラ ムのデフォ ルト 値と し て timestamp を選択 し ます。 (詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。) 37 Sybase SQL Anywhere • 3 SQL CREATE TABLE 文を使用す る 場合 - 詳細については、 次の 「CREATE TABLE の例」 を参照 し て く だ さ い。 デー タ パ イ プ ラ イ ン ペ イ ン タ でテーブルを処理 し てい る 場合、 特 殊な timestamp カ ラ ムに対 し て、 ワ ー ク スペース の初期値カ ラ ム の ド ロ ッ プダ ウ ン リ ス ト か ら 、 「デフ ォ ル ト 値」 を選択 し ます。 INSERT 文や UPDATE 文か ら 特殊な timestamp カ ラ ム を使用す る た めには、 初期値 と し て 「デフ ォ ル ト 値」 を選択 し ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 以下に示す CREATE TABLE 文では、 employee_ID、 hours、 timestamp と い う 3 つのカ ラ ム で構成 さ れ る timesheet と い う 名前の SQL Anywhere テ ー ブ ル が作成 さ れ ま す。 な お、 employee_ID は Integer 型、 hours は Decimal 型、timestamp は Timestamp 型でデフ ォ ル ト 値が timestamp です。 CREATE TABLE の例 CREATE TABLE timesheet ( employee_ID INTEGER, hours DECIMAL, timestamp TIMESTAMP default timestamp ) デ フ ォ ル ト の 動 作 を 変 更 す る 場 合、 timestamp と い う 名 前 の SQL Anywhere カ ラ ム を、 Transact-SQL の特殊な timestamp カ ラ ム と し て処 理 し ない よ う に、 PowerBuilder に対 し て指定で き ます。 特殊 timestamp カ ラ ムを使用 し ない場合 ❖ timestamp と い う 名前のカ ラ ムを Transact-SQL の特殊な timestamp カ ラ ム と し て処理 し ないよ う に、 PowerBuilder に対 し て指定する • PBODB110 初期設定フ ァ イ ルの [Sybase SQL Anywhere] セ ク シ ョ ン を編集 し て、 SQLSrvrTSName の値を 'Yes' か ら 'No' に変更 し ます。 初期設定 フ ァ イ ルに変更 を 加 え た 後、 変更 を 反映 さ せ る た め に デー タ ベー ス に再接続す る 必要が あ り ま す。 付録の 「PBODB110 初期設定フ ァ イ ルへの関数の追加」 を参照 し て く だ さ い。 次のス テ ッ プ ODBC デー タ ソ ース と の接続の手順については、 155 ページの 「デー タ ベース と の接続」 を参照 し て く だ さ い。 38 PowerBuilder 第 3 章 JDBC イ ン タ フ ェ ース こ の章について こ の章では、 JDBC イ ン タ フ ェース の概要について説明 し 、 こ の イ ン タ フ ェ ー ス を 使用す る た めの準備や JDBC デー タ ベー ス プ ロ フ ァ イ ルの定義の し かたについて解説 し ます。 内容 詳細について 項目 JDBC イ ン タ フ ェース について JDBC イ ン タ フ ェース を使用す る ための準備 JDBC イ ン タ フ ェース の定義 ページ 39 44 46 JDBC の詳細については、 Java Web のサイ ト http://java.sun.com/products/jdbc を参照 し て く だ さ い。 JDBC イ ン タ フ ェ ースについて PowerBuilder では、 JDBC を経由 し て さ ま ざ ま なデー タ ベース にア ク セ ス で き ます。 こ の節では、 JDBC 接続を使用 し て PowerBuilder か ら デー タ にア ク セ ス す る ために知っ てお く 必要があ る 情報につ いて解説 し ます。 JDBC と は ? JDBC API デー タ ベース と の接続 Java Database Connectivity (JDBC) と は、 Java ア プ リ ケ ー シ ョ ン が、 標 準 の デ ー タ ア ク セ ス 言 語 と し て SQL (Structured Query Language) を サポー ト す る デー タ ベー ス にア ク セ ス す る ための標 準アプ リ ケーシ ョ ン プ ロ グ ラ ム用 イ ン タ フ ェース (API) です。 39 JDBC イ ン タ フ ェ ースについて JDBC API には、 デー タ ベー ス 接続を開いた り 、 SQL コ マ ン ド を実行 し た り 、 結果を処理 し た り で き る よ う に、 共通の SQL デー タ ベース ア ク テ ィ ビ テ ィ で共通な ク ラ ス が含ま れてい ます。 そのため Java プ ロ グ ラ ムは SQL 文を発行 し て、 結果のデー タ を処理す る 一般的な SQL プ ロ グ ラ ミ ン グ モデルを使用で き ます。 JDBC ク ラ ス は Java 1.1+ と Java 2 で java.sql パ ッ ケージ と し て含まれてい ます。 JDBC API では、 以下の内容が定義 さ れてい ます。 • デー タ ベースへの接続、 SQL 文の実行、 お よ び結果の取得を行 う JDBC 関数呼び出 し ラ イ ブ ラ リ • DBMS に接続 し て ロ グ イ ンす る ための標準的な方法 • X/Open SQL Call Level Interface ま たは X/Open と SQL Access Group (SAG) の CAE 仕様 (1992) に基づ く SQL 構文 • デー タ 型の標準表記法 • エ ラ ー コ ー ド の標準セ ッ ト JDBC API の実装 JDBC API の実装は、 既存の ODBC ド ラ イ バ と 通信す る も の (JDBCODBC ブ リ ッ ジ) と 、 ネ イ テ ィ ブ デー タ ベー ス API と 通信す る も の (JDBC 呼び出 し を特定のデー タ ベー ス ベン ダに よ っ て使用 さ れ る 通 信プ ロ ト コ ルに変換す る JDBC ド ラ イ バ) と の 2 つのカ テ ゴ リ に分類 さ れ ます。 PowerBuilder は、 JDBC 準拠 ド ラ イ バが存在す る 任意のデー タ ベース と の接続に使用で き る JDBC イ ン タ フ ェ ース を実装 し ます。 PowerBuilder JDB イ ン タ フ ェ ース Java 仮想マシ ン (JVM) は Java プ ロ グ ラ ムのバ イ ト コ ー ド を変換お よ び実行す る のに必要です。 PowerBuilder JDB イ ン タ フ ェース は、 Sun の Java Runtime Environment (JRE) バージ ョ ン 1.2 以上をサポー ト し てい ます。 JDBC イ ン タ フ ェ ースの使い方 PowerBuilder では、 JDBC イ ン タ フ ェース を使用 し て、 以下の コ ン ポー ネ ン ト やアプ リ ケーシ ョ ン を開発で き ます。 • 40 実行 し て い る Web ブ ラ ウ ザ ま たはオペレーテ ィ ン グ シ ス テ ム内部で、 ク ラ イ ア ン ト が すでに JVM を実行 し てい る 場合、 ODBC を使用す る 場合 と は異な り 、JDBC イ ン タ フ ェ ース を使用 し てデー タ ベース にア ク セ スす る のに、 ク ラ イ ア ン ト 側でのデー タ ベース ド ラ イ バの イ ン ス ト ール や管理は必要あ り ません。 シ ン ク ラ イ ア ン ト /サーバ ア プ リ ケーシ ョ ン PowerBuilder 第3章 • JDBC イ ン タ フ ェ ース デー タ ウ ィ ン ド ウ Web コ ン ト ロール ActiveX で使用 さ れるデー タ ウ ィ ン ド ウ オブ ジ ェ ク ト JDBC イ ン タ フ ェ ー ス を 使用 し て も 、 ク ラ イ ア ン ト 側でのデー タ ベース ド ラ イ バの イ ン ス ト ールは必要あ り ま せん。 こ れは、 JDBC ド ラ イ バは CAB フ ァ イ ルで Web ActiveX と と も にダ ウ ン ロ ー ド さ れ る ためです。 • EAServer JDBC イ ンタ フ ェ ースを経由し てデータ ベースにアク セスする、 EAServer で配布 さ れる ト ラ ンザク シ ョ ン コ ンポーネ ン ト JDBC イ ン タ フ ェ ー ス を使用す る と 、 PowerBuilder の ト ラ ン ザ ク シ ョ ン コ ン ポーネ ン ト が別の コ ン ポーネ ン ト と 同 じ ト ラ ン ザ ク シ ョ ン を共有 で き ます。 JDBC 接続の コ ンポーネ ン ト JDBC の接続方法 PowerBuilder か ら JDBC イ ン タ フ ェ ー ス を経由 し てデー タ ベー ス にア ク セ ス す る 場合、 デー タ ベー ス に到達す る ま でにい く つかの レ イ ヤ を 経由 し ます。 それぞれの レ イ ヤは、 接続におけ る 独立 し た コ ン ポーネ ン ト であ り 、 コ ン ポーネ ン ト ご と に提供 し てい る ベン ダが違 う 可能性 があ り ます。 JDBC は標準 API で あ る ため、 PowerBuilder は ど の よ う な JDBC 準拠 デー タ ベー ス ド ラ イ バへア ク セ ス す る 場合で も 共通の イ ン タ フ ェ ー ス を使用 し ます。 図 3-1 では、 JDBC 接続の一般的な コ ン ポーネ ン ト を示 し ます。 デー タ ベース と の接続 41 JDBC イ ン タ フ ェ ースについて 図 3-1: JDBC 接続の コ ンポーネ ン ト JDBC DLL pbjdb110.dll は、 PowerBuilder が提供 し ます。 こ の DLL は、 Sun の Java Runtime Environment (JRE) バージ ョ ン 1.2 以上で使用で き ます。 PowerBuilder Java パ ッ ケージ PowerBuilder には、小 さ な Java ク ラ ス のパ ッ ケージが含まれてい ます。 こ れ は、 ほ か の PowerBuilder イ ン タ フ ェ ー ス に あ る よ う な エ ラ ー チ ェ ッ ク お よ び効率性の レベル (SQLException の捕捉) を JDBC イ ン タ フ ェ ー ス に提供 し ま す。 こ のパ ッ ケージは、 pbjdbc12110.jar と い う 名前で Sybase\Shared\PowerBuilder に置かれてい ます。 Java 仮想マシ ン Java 仮想マシ ン (JVM) は Java 開発 ソ フ ト ウ ェ アの コ ン ポーネ ン ト で す。 PowerBuilder を イ ン ス ト ー ル す る と 、 Java Runtime Environment (JRE) を 含 む Sun の Java Development Kit (JDK) が シ ス テ ム の Sybase\Shared\PowerBuilder に イ ン ス ト ー ル さ れ ま す。 PowerBuilder 11.0 の場合、JDK 1.5 が イ ン ス ト ール さ れます。 こ のバージ ョ ン の JVM は、 JDBC 接続のほか、 JVM が必要 と な る プ ロ セ ス を使用す る と 自動 的に起動 し 、 PowerBuilder のセ ッ シ ョ ン全体にわた っ て使用 さ れ ます。 ほかの JVM を使用す る 必要があ る 場合は、 44 ページの 「JDBC イ ン タ フ ェ ース を使用す る ための準備」 を参照 し て く だ さ い。 JVM の起動方 法の詳細については、 『ア プ リ ケーシ ョ ン テ ク ニ ッ ク 』 マ ニ ュ アルの アプ リ ケーシ ョ ンの配布について説明 し た章を参照 し て く だ さ い。 42 PowerBuilder 第3章 JDBC イ ン タ フ ェ ース JDBC ド ラ イバ JDBC イ ン タ フ ェ ー ス は、 Sybase jConnect™ for JDBC、 Oracle、 IBM INFORMIX の JDBC ド ラ イ バな ど、 任意の JDBC 準拠 ド ラ イ バ と も 通 信で き ます。 こ れ ら の ド ラ イ バは、 Java のネ イ テ ィ ブ プ ロ ト コ ル ド ラ イ バであ り 、 JDBC 呼び出 し をデー タ ベース がサポー ト す る SQL 構文 に変換 し ます。 Unicode デー タ へのア ク セス PowerBuilder は、 ODBC イ ン タ フ ェース を使用 し て、 ANSI/DBCS お よ び Unicode の両方のデー タ ベー ス のデー タ に接続、 保存、 検索す る こ と がで き ますが、 Unicode と ANSI/DBCS 間でのデー タ 変換は行い ませ ん。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベース に送信 さ れ る と 、 PowerBuilder は Unicode 文字列 を 送信 し ま す。 デー タ が 正 し く Unicode デー タ と し て保存 さ れ る こ と を ド ラ イ バが保証す る 必要が あ り ます。 PowerBuilder は文字デー タ を検索す る と き 、 デー タ は Unicode であ る と 仮定 し ます。 Unicode データ ベース は、 文字セッ ト が Unicode 形式 (UTF-8、 UTF-16、 UCS-2、 UCS-4 な ど) に設定 さ れ る デー タ ベース の こ と です。 すべての デー タ は、 Unicode 形式でなければな ら ず、 デー タ ベース に保存 さ れ る デー タ は、 暗黙的に ま たは明示的に Unicode デー タ に変換 さ れな けれ ばな り ません。 文字セ ッ ト と し て ANSI (ま たは DBCS) を使用す る デー タ ベー ス は、 Unicode デー タ を格納す る 特殊なデー タ 型を使用す る こ と があ り ます。 こ れ ら のデー タ 型を持つカ ラ ムは、 Unicode デー タ だけです。 その よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換 さ れ る 必要 があ り ます。 こ の変換はデー タ ベース サーバ ま たは ク ラ イ ア ン ト が処 理す る 必要があ り ます。 JDBC レ ジ ス ト リ エ ン ト リ PowerBuilder JDBC イ ン タ フ ェ ー ス を 経由 し てデー タ に ア ク セ ス す る 際、PowerBuilder は内部レ ジ ス ト リ を使用 し て SQL 構文の定義、DBMS 固有 の 関数呼び出 し 、 お よ びバ ッ ク エ ン ド DBMS の デ フ ォ ル ト の DBParm パ ラ メ ー タ 設定を保守 し ま す。 こ の内部 レ ジ ス ト リ には、 現 時点では、 SQL Anywhere、 Adaptive Server Enterprise、 お よ び Oracle の デー タ ベース用のサブエ ン ト リ が含まれてい ます。 デー タ ベース と の接続 43 JDBC イ ン タ フ ェ ース を使用する ための準備 通常、 JDBC エ ン ト リ を変更す る 必要はあ り ま せん。 ただ し 、 既存の エ ン ト リ を カ ス タ マ イ ズ し た り 、 新 し いエ ン ト リ を追加 し た り す る 必 要が あ る 場合は、 直接 レ ジ ス ト リ を 編集す る か、 ま た は レ ジ ス ト リ フ ァ イ ルを実行 し て シ ス テ ム レ ジ ス ト リ を変更で き ます。シ ス テ ム レ ジ ス ト リ に対す る 変更は PowerBuilder の内部レ ジ ス ト リ エ ン ト リ を上 書 き し ます。 エ ン ト リ の設定値を変更す る ために実行で き る レ ジ ス ト リ フ ァ イ ルの例につい て は、 Sybase\Shared\PowerBuilder の egreg.txt フ ァ イ ルを参照 し て く だ さ い。 JDBC でサポー ト し てい るバージ ョ ン PowerBuilder JDBC イ ン タ フ ェ ース は、 JDBC ド ラ イ バを経由 し てデー タ ベース にア ク セ スす る と き に pbjdb110.dll を使用 し ます。 JDBC イ ン タ フ ェ ー ス を使用 し て jConnect ド ラ イ バにア ク セ ス す る に は、 jConnect バージ ョ ン 4.2 以上を使用 し て く だ さ い。 jConnect の詳細 については、 Sybase のマニ ュ アルを参照 し て く だ さ い。 JDBC イ ン タ フ ェ ー ス を使用 し て Oracle JDBC ド ラ イ バにア ク セ ス す る には、 Oracle 8 JDBC ド ラ イ バのバージ ョ ン 8.0.4 以上を使用 し て く だ さ い。 Oracle JDBC ド ラ イ バの詳細については、 Oracle のマニ ュ アル を参照 し て く だ さ い。 サポー ト し てい る JDBC デー タ 型 ODBC の場合 と 同様に、 JDBC イ ン タ フ ェ ース は、 ネ イ テ ィ ブ イ ン タ フ ェ ー ス の動作 を 可能な限 り エ ミ ュ レ ー ト す る た めにバ ッ ク エ ン ド デー タ ベース でネ イ テ ィ ブなデー タ 型の リ ス ト を コ ンパ イ ル、 ソ ー ト 、 表示、 お よ び使用 し ます。 JDBC イ ン タ フ ェ ース を使用する ための準備 JDBC イ ン タ フ ェ ース を定義 し 、 JDBC イ ン タ フ ェース を経由 し てデー タ ベー ス に接続す る た めには、 以下の手順に従 っ て使用す る デー タ ベース を準備す る 必要があ り ます。 1 44 デー タ ベース サーバを JDBC 接続用に設定 し 、 JDBC 準拠 ド ラ イ バお よ びネ ッ ト ワ ー ク ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 PowerBuilder 第3章 ス テ ッ プ 1: デー タ ベース サーバの設定 JDBC イ ン タ フ ェ ース 2 JDBC ド ラ イ バを イ ン ス ト ール し ます。 3 CLASSPATH 環境変数の値、 お よ びシ ス テ ム オプシ ョ ン ダ イ ア ロ グ ボ ッ ク ス の [Java] タ ブの値を設定す る か、 ま たは こ の値を確認 し ます。 JDBC 接続を行え る よ う にデー タ ベース サーバを設定 し 、JDBC ド ラ イ バお よ びネ ッ ト ワ ー ク ソ フ ト ウ ェ ア を イ ン ス ト ールす る 必要が あ り ます。 ❖ デー タ ベース サーバを JDBC 接続用に設定する 1 JDBC 接続を行え る よ う にデー タ ベース サーバが設定 さ れてい る こ と を確認 し ます。 設定の手順については、 デー タ ベース ベン ダ のマニ ュ アルを参照 し て く だ さ い。 2 適切な JDBC ド ラ イ バ ソ フ ト ウ ェ アがデー タ ベース サーバに イ ン ス ト ール さ れ、 実行 さ れてい る こ と を確認 し ます。 デー タ ベー ス プ ロ フ ァ イ ルで指定が必要な ド ラ イ バ名、 URL 形 式、 お よ び ド ラ イ バ固有のプ ロ パテ ィ については、 ド ラ イ バ ベン ダのマニ ュ アルを参照 し て く だ さ い。jConnect ド ラ イ バの詳細につ いては、 46 ページの 「jConnect ド ラ イ バの設定」 を参照 し て く だ さ い。 3 マシ ン上に必要なネ ッ ト ワ ー ク ソ フ ト ウ ェ ア (TCP/IP な ど) が イ ン ス ト ール、 実行 さ れていて、 自分のサ イ ト のデー タ ベース サー バへ接続で き る よ う に正 し く 設定 さ れてい る こ と を確認 し ます。 た と えば、 使用 し てい る ネ ッ ト ワ ー ク プ ロ ト コ ルやオペレーテ ィ ン グ シ ス テ ム プ ラ ッ ト フ ォ ーム を サポー ト す る 、ネ ッ ト ワ ー ク コ ミ ュ ニ ケーシ ョ ン ド ラ イ バを イ ン ス ト ールす る 必要があ り ます。 イ ン ス ト ール と 設定の手順については、 ネ ッ ト ワ ー ク ま たはデー タ ベース の管理者に問い合わせて く だ さ い。 ス テ ッ プ 2:JDBC ド ラ イバのイ ン ス ト ール PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 標準 イ ン ス ト ールを選択 す る か、 カ ス タ ム イ ン ス ト ールを選択 し た場合は JDBC ド ラ イ バを選 択 し て く だ さ い。 ス テ ッ プ 3: CLASSPATH 環境変 数、 および [Java] タ ブの値の確認または 設定 PATH 環境変数 と CLASSPATH 環境変数、 ま たは PowerBuilder のシ ス テ ム オプシ ョ ン ダ イ ア ロ グボ ッ ク ス の [Java] タ ブの ク ラ ス パ ス リ ス ト に、 完全修飾 さ れた適切な フ ァ イ ル名を示す値が設定 さ れてい る こ と を確認設定す る か、 それ ら を設定 し ます。 PowerBuilder と 一緒に イ ン ス ト ール し た JDK を使用 し てい る 場合、 こ れ ら の環境変数を変更す る 必要はあ り ません。 デー タ ベース と の接続 45 JDBC イ ン タ フ ェ ースの定義 JDK 1.2 以上を使用 し てい る 場合、 CLASSPATH 環境変数には Sun Java VM パ ッ ケージ を含む必要はあ り ませんが、 PATH 環境変数には Sun Java VM ラ イ ブ ラ リ jvm.dll のエ ン ト リ (た と えば path\ JDK15\JRE\bin\client) が含まれてい る 必要があ り ます。 jConnect ド ラ イバの 設定 Sybase jConnect ド ラ イ バを使用す る 場合は、Adaptive Server デー タ ベー ス で JDBC ス ト ア ド プ ロ シージ ャ を イ ン ス ト ールす る な ど、 必要な設 定手順を完了 し てい る こ と を確認 し て く だ さ い。ま た、使用 コ ン ピ ュ ー タ の CLASSPATH 環境変数ま たは PowerBuilder のシ ス テ ム オプシ ョ ン ダ イ ア ロ グボ ッ ク ス の [Java] タ ブの ク ラ ス パ ス リ ス ト に、 jConnecgt ド ラ イ バの保存場所を指 し てい る エ ン ト リ が含ま れてい る こ と も 確認 し ます。 た と えば、 jConnect 6.05 を使用 し てい る 場合は、 次の よ う なエ ン ト リ が含ま れてい る こ と が必要です。 C:\Program Files\Sybase\jConnect-6.05\classes\jconn3.jar jConnect の設定方法の詳細については、 jConnect for JDBC のマニ ュ ア ルを参照 し て く だ さ い。 JDBC イ ン タ フ ェ ースの定義 プ ロ フ ァ イルの作成 JDBC イ ン タ フ ェ ース を使用す る 接続を定義す る には、 DB プ ロ フ ァ イ ル設定- JDBC ダ イ ア ロ グボ ッ ク ス で基本接続パ ラ メ ー タ な ど の値を指 定 し てデー タ ベース プ ロ フ ァ イ ルを作成す る 必要があ り ます。 次回以 降、 こ のデー タ ベース プ ロ フ ァ イ ルを選択す る と 、 そのデー タ ベース にいつで も 接続で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 接続パ ラ メ ー タ の指定 JDBC API で提供 さ れ る 最大の柔軟性を提供す る ために、 JDBC イ ン タ フ ェ ース は、 接続パ ラ メ ー タ の さ ま ざ ま な組み合わせでのデー タ ベー ス接続をサポー ト し ます。 • 46 ド ラ イバ名、 URL、 プ ロパテ ィ ド ラ イ バ固有の プ ロ パ テ ィ を 定義 す る 必要があ る 場合は、 こ の よ う な接続パ ラ メ ー タ の組み合わせ で値を指定す る 必要があ り ます。プ ロ パテ ィ を定義す る と き は、プ ロ パテ ィ フ ィ ール ド でユーザ ID と パ ス ワ ー ド も 定義す る 必要が あ り ます。 PowerBuilder 第3章 JDBC イ ン タ フ ェ ース た と えば、 jConnect ド ラ イ バに接続す る 場合は、 [ ド ラ イ バ固有の パ ラ メ ー タ ] フ ィ ール ド に以下の値を入力す る 必要があ り ます。 SQLINITSTRING=set TextSize 32000; user=system;password=manager; • ド ラ イバ名、 URL、 ユーザ ID、 パスワー ド ド ラ イ バ 固 有 の プ ロ パ テ ィ を定義す る 必要がない場合は、 こ の よ う な接続パ ラ メ ー タ の 組み合わせで値を指定 し ます。 Driver Name: URL: Login ID: Password: • com.sybase.jdbc.SybDriver jdbc:sybase:Tds:localhost:2638 dba sql ド ラ イバ名、 URL ユーザ ID と パ ス ワ ー ド が URL の一部に含まれ る 場合は、 こ の よ う な接続パ ラ メ ー タ の組み合わせで値を指定 し ます。 た と えば、 Oracle JDBC ド ラ イ バに接続す る 場合は、 次の よ う に URL にユーザ ID と パ ス ワ ー ド を含め る こ と がで き ます。 jdbc:oracle:thin:userid/password@host:port:dbname jConnect へ接続する際のプ ロパテ ィ の指定 PowerBuilder で Blob 型を使用す る 場合、jConnect では Blob サ イ ズに制 約があ る こ と に注意が必要です。 そのため、 PowerBuilder か ら デー タ ベー ス 接続 を 行 う 前に、 使用す る 予定の最大サ イ ズ よ り 大 き い値に Blob サ イ ズ を設定 し 直 し ます。 Blob サ イ ズ を設定す る には、 [接続] ページの [ ド ラ イ バ固有のパ ラ メ ー タ ] ボ ッ ク ス で jConnect の SQLINITSTRING プ ロ パテ ィ を定義 し ます。SQLINITSTRING プ ロ パテ ィ は、次の よ う に、バ ッ ク エ ン ド デー タ ベース サーバに渡 さ れ る コ マ ン ド を定義す る のに使用 さ れ ます。 SQLINITSTRING=set TextSize 32000; [ ド ラ イ バ固有のパ ラ メ ー タ ] ボ ッ ク ス でプ ロ パテ ィ を 定義す る 場合 は、ユーザ ID と パ ス ワー ド も 定義す る 必要があ る こ と に注意 し て く だ さ い。 デー タ ベース と の接続 47 JDBC イ ン タ フ ェ ースの定義 48 PowerBuilder 第 4 章 OLE DB イ ン タ フ ェ ース こ の章について こ の章では、 OLE DB イ ン タ フ ェ ー ス の概要について説明 し 、 こ の イ ン タ フ ェ ース を使用す る ための準備や OLE DB デー タ ベース プ ロ フ ァ イ ルの定義の し かたについて解説 し ます。 内容 詳細について 項目 OLE DB イ ン タ フ ェース について OLE DB イ ン タ フ ェース を使用す る ための準備 OLE DB イ ン タ フ ェース の定義 ページ 49 55 57 こ の章では、 一般的な OLE DB イ ン タ フ ェース の使用について説 明 し てい ます。 詳細については、 以下を参照 し て く だ さ い。 • Microsoft MSDN ラ イ ブ ラ リ のサイ ト http://msdn2.microsoft.com/enus/library/ms713643.aspx の 『OLE DB Programmer’s Guide』 マ ニ ュ アルを参照 し て く だ さ い。 • デー タ プ ロ バ イ ダのベン ダが提供す る オ ン ラ イ ン ヘルプ • OLE DB デー タ プ ロ バ イ ダに接続す る 方法を解説 し たテ ク ニ カル ド キ ュ メ ン ト があ る か ど う か を確認 し て く だ さ い。 接続 に関す る 新 し い情報は、 Sybase サポー ト と ダウン ロー ド のサイ ト http://www.sybase.com/support か ら 取得で き ます。 OLE DB イ ン タ フ ェ ースについて PowerBuilder では、 OLE DB デー タ プ ロ バ イ ダ を経由 し て さ ま ざ ま なデー タ にア ク セ ス で き ま す。 こ の節では、 OLE DB 接続を使 用 し て PowerBuilder か ら デー タ にア ク セ スす る ために知っ てお く 必要があ る 情報について解説 し ます。 デー タ ベース と の接続 49 OLE DB イ ン タ フ ェ ースについて サポー ト し ている OLE DB デー タ プ ロバイ ダ PowerBuilder で提供 さ れ る OLE DB デー タ プ ロ バ イ ダ と 、 ア ク セ ス で き る デー タ の一覧については、 オ ン ラ イ ン ヘルプの 「デー タ ベース イ ン タ フ ェース」 を参照 し て く だ さ い。 OLE DB と は ? OLE DB API OLE DB は、 Microsoft 社が開発 し た標準アプ リ ケーシ ョ ン プ ロ グ ラ ミ ン グ イ ン タ フ ェ ー ス (API) で、 Microsoft の Data Access Components ソ フ ト ウ ェ アの構成要素 と な っ てい ます。 OLE DB を使 う と 、 アプ リ ケーシ ョ ンは OLE DB デー タ プ ロ バ イ ダがあ る さ ま ざ ま なデー タ にア ク セ ス で き ます。 OLE DB に よ り 、 アプ リ ケーシ ョ ンは、 SQL ベース の DBMS だけでな く 、Btrieve の よ う な イ ンデ ッ ク ス付 き シーケ ン シ ャ ル フ ァ イ ル、 Paradox の よ う なパー ソ ナル デー タ ベース、 ス プ レ ッ ド シー ト や電子 メ ール と い っ た ツールな ど、 さ ま ざ ま な形式で保存 さ れ てい る デー タ に対 し て同一の方法でア ク セ ス で き ます。 OLE DB イ ン タ フ ェース では、 SQL ベース のデー タ ベース に直接接続 で き ます。 OLE DB を経由 し た デー タ ア ク セス OLE DB イ ン タ フ ェ ー ス を 提供す る PowerBuilder な ど の ア プ リ ケ ー シ ョ ンは、 OLE DB デー タ プ ロ バ イ ダがあ る デー タ にア ク セ ス で き ま す。 OLE DB デー タ プ ロ バ イ ダは、 特定のデー タ ソ ース にア ク セ スす る ための OLE DB 関数呼び出 し を実装す る ダ イ ナ ミ ッ ク リ ン ク ラ イ ブ ラ リ (DLL) です。 PowerBuilder OLE DB イ ン タ フ ェ ー ス は、 表 4-1 に示す OLE DB オブ ジ ェ ク ト イ ン タ フ ェ ー ス を サポー ト す る 任意の OLE DB デー タ プ ロ バ イ ダに接続で き ま す。 OLE DB デー タ プ ロ バ イ ダは Microsoft OLE DB 2.0 仕様に準拠す る ために こ れ ら の イ ン タ フ ェース をサポー ト し て い る 必要があ り ます。 50 PowerBuilder 第4章 OLE DB イ ン タ フ ェ ース 表 4-1: 必要な OLE DB イ ン タ フ ェ ース IAccessor IDBInitialize IColumnsInfo IDBProperties ICommand IOpenRowset ICommandProperties IRowset ICommandText IRowsetInfo IDBCreateCommand IDBSchemaRowset IDBCreateSession ISourcesRowset 必要な OLE DB イ ン タ フ ェ ース に加え て、 PowerBuilder は、 さ ら に高 度な機能を提供す る ために、 表 4-2 に示す OLE DB イ ン タ フ ェース も 使用 し ます。 デー タ ベース と の接続 51 OLE DB イ ン タ フ ェ ースについて 表 4-2: そのほかの OLE DB イ ン タ フ ェ ース OLE DB イ ン タ フ ェ ース ICommandPrepare IDBInfo IDBCommandWithParameters IErrorInfo IErrorRecords IIndexDefinition IMultipleResults IRowsetChange IRowsetUpdate ISQLErrorInfo ISupportErrorInfo ITableDefinition PowerBuilder での使用目的 コ マ ン ド の準備お よ びカ ラ ム情報の取得 デー タ プ ロ バ イ ダへのプ ロ パ テ ィ の問い合 わせ。 こ の イ ン タ フ ェ ース がサポー ト さ れて いない場合、 デー タ ベース接続は失敗す る こ と があ る デー タ プ ロ バ イ ダへのパ ラ メ ー タ の問い合 わせ エ ラ ー情報の提供 エ ラ ー情報の提供 拡張属性シ ス テ ム テーブルの イ ン デ ッ ク ス の作成。 デー タ ベース ペ イ ン タ の イ ンデ ッ ク ス の作成。 こ の イ ン タ フ ェ ース がサポー ト さ れていない場合、 PowerBuilder は pbodb110.ini フ ァ イ ルで イ ンデ ッ ク ス定義構文を探す 情報の提供 拡張属性シ ス テ ム テーブル作成時に値 を 入 力す る 。 Blob の更新 拡張属性シ ス テ ム テーブルの作成 エ ラ ー情報の提供 エ ラ ー情報の提供 拡張属性シ ス テ ム テーブルの作成。 デー タ ベース ペ イ ン タ のテーブルの作成。 こ の イ ン タ フ ェ ース がサポー ト さ れていない場合、 以 下の こ と が起 こ り ます。 • PowerBuilder は、 pbodb110.ini フ ァ イ ルで テーブル定義構文を探す • PowerBuilder カ タ ロ グ テーブルが使用で き ない ITransactionLocal Unicode デー タ への ア ク セス 52 • カ ラ ムの変更やデー タ ベース ペ イ ン タ で のデー タ の編集な ど、 DDL 操作、 DML 操 作が正 し く 機能 し ない ト ラ ン ザ ク シ ョ ン のサポー ト 。 こ の イ ン タ フ ェ ー ス が サ ポ ー ト さ れ て い な い 場 合、 PowerBuilder は デ フ ォ ル ト で AutoCommit モー ド を使用す る PowerBuilder は、 OLE DB イ ン タ フ ェース を使用 し て、 ANSI/DBCS お よ び Unicode の両方のデー タ ベー ス のデー タ に接続、 保存、 検索す る こ と がで き ますが、 Unicode と ANSI/DBCS 間でのデー タ 変換は行い ま せん。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベース に送信 さ れ PowerBuilder 第4章 OLE DB イ ン タ フ ェ ース る と 、 PowerBuilder は Unicode 文字列を送信 し ま す。 デー タ が正 し く Unicode デー タ と し て保存 さ れ る こ と をデー タ プ ロ バ イ ダが保証す る 必要があ り ま す。 PowerBuilder は文字デー タ を検索す る と き 、 デー タ は Unicode であ る と 仮定 し ます。 Unicode データ ベース は、 文字セッ ト が Unicode 形式 (UTF-8、 UTF-16、 UCS-2、 UCS-4 な ど) に設定 さ れ る デー タ ベー ス の こ と です。 すべて のデー タ は、 Unicode 形式でなければな ら ず、 デー タ ベース に保存 さ れ る デー タ は、 暗黙的に ま たは明示的に Unicode デー タ に変換 さ れな け ればな り ません。 文字セ ッ ト と し て ANSI (ま たは DBCS) を使用す る デー タ ベー ス は、 Unicode デー タ を格納す る 特殊なデー タ 型を使用す る こ と があ り ます。 こ れ ら のデー タ 型を持つカ ラ ムは、 Unicode デー タ だけです。 その よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換 さ れ る 必要 があ り ます。 こ の変換はデー タ ベース サーバ ま たは ク ラ イ ア ン ト が処 理す る 必要があ り ます。 OLE DB 接続の コ ンポーネ ン ト PowerBuilder で OLE DB デー タ プ ロ バ イ ダにア ク セ スす る 場合、 デー タ プ ロ バ イ ダに到達す る ま でにい く つかの レ イ ヤ を経由 し ます。 それ ぞれの レ イ ヤは、 接続におけ る 独立 し た コ ン ポーネ ン ト で あ り 、 コ ン ポーネ ン ト ご と に提供 し てい る ベン ダが違 う 可能性があ り ます。 OLE DB は標準 API で あ る ため、 PowerBuilder は ど の よ う な OLE DB デー タ プ ロ バ イ ダへア ク セ ス す る 場合で も 共通の イ ン タ フ ェ ー ス を 使用 し ます。 PowerBuilder が必要 と す る オブジ ェ ク ト イ ン タ フ ェース を OLE DB デー タ プ ロ バ イ ダがサポー ト し てい る 限 り 、 PowerBuilder は OLE DB イ ン タ フ ェース を経由 し てその OLE DB デー タ プ ロ バ イ ダ にア ク セ ス で き ます。 図 4-1 では、 OLE DB 接続の一般的な コ ン ポーネ ン ト を示 し ます。 デー タ ベース と の接続 53 OLE DB イ ン タ フ ェ ースについて 図 4-1: OLE DB 接続のコ ンポーネ ン ト OLE DB デー タ プ ロバイ ダの入手 PowerBuilder Enterprise を使用 し てい る 場合、 PowerBuilder で要求 さ れ る OLE DB オブ ジ ェ ク ト イ ン タ フ ェ ー ス を サポー ト す る も ので あれ ば、Sybase 社以外のベン ダか ら 入手 し た OLE DB デー タ プ ロ バ イ ダで あ っ て も デー タ にア ク セ ス す る こ と がで き ます。 ほ と ん ど の場合、 こ の よ う な ド ラ イ バを PowerBuilder で使用で き ますが、 Sybase 社ではほ かのベン ダが提供す る ド ラ イ バの正式な接続検証テ ス ト は実施 し てい ません。 サポー ト し てい る OLE DB のバージ ョ ン OLE DB イ ン タ フ ェース は OLE DB デー タ プ ロ バ イ ダ を経由 し てデー タ ベー ス にア ク セ ス す る 際に PBOLE110.DLL と い う 名前の DLL を使 用 し ます。 54 PowerBuilder 第4章 OLE DB イ ン タ フ ェ ース 必要 と さ れる OLE DB のバージ ョ ン OLE DB イ ン タ フ ェース を使用 し て OLE DB デー タ ベース にア ク セ ス す る には、OLE DB バージ ョ ン 2.0 以上をサポー ト す る OLE DB デー タ プ ロ バ イ ダ を経由 し て接続す る 必要があ り ま す。 OLE DB 仕様の詳細 に つ い て は、 Microsoft ラ イ ブ ラ リ のサ イ ト http://msdn2.microsoft.com/enus/library/default.aspx を参照 し て く だ さ い。 OLE DB イ ン タ フ ェ ース を使用する ための準備 イ ン タ フ ェース を定義 し 、 OLE DB を経由 し てデー タ プ ロ バ イ ダに接 続す る 前に、 次の操作を行い ます。 ス テ ッ プ 1: デー タ サーバのイ ン ス ト ール と 設定 1 デー タ ベース サーバ、 ネ ッ ト ワー ク 、 お よ び ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し て設定 し ます。 2 OLE DB イ ン タ フ ェ ース、 お よ びデー タ ソ ース にア ク セ スす る た めの OLE DB デー タ プ ロ バ イ ダ を イ ン ス ト ール し ます。 3 マシ ン に Microsoft Data Access Components ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 4 必要であれば、 OLE DB デー タ ソ ース を定義 し ます。 デー タ ベース サーバを イ ン ス ト ールお よ び設定 し 、ネ ッ ト ワー ク ソ フ ト ウ ェ ア と ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ールす る 必要が あ り ます。 ❖ デー タ ベース サーバ、 ネ ッ ト ワー ク、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定する 1 サーバに適切なデー タ ベース ソ フ ト ウ ェ アが イ ン ス ト ール さ れ、 実行 さ れてい る こ と を確認 し ます。 デー タ ベー ス サーバ ソ フ ト ウ ェ ア はデー タ ベー ス のベン ダ か ら 入手す る 必要が あ り ま す。 イ ン ス ト ールの手順については、 デー タ ベース ベン ダのマニ ュ アルを参照 し て く だ さ い。 デー タ ベース と の接続 55 OLE DB イ ン タ フ ェ ース を使用する ための準備 2 マシ ン上に必要なネ ッ ト ワ ー ク ソ フ ト ウ ェ ア (TCP/IP な ど) が イ ン ス ト ール、 実行 さ れていて、 自分のサ イ ト のデー タ サーバへ接 続で き る よ う に正 し く 設定 さ れてい る こ と を確認 し ま す。 た と え ば、 使用 し てい る ネ ッ ト ワ ー ク プ ロ ト コ ルやオペレーテ ィ ン グ シ ス テ ム プ ラ ッ ト フ ォ ーム をサポー ト す る 、 ネ ッ ト ワ ー ク コ ミ ュ ニ ケーシ ョ ン ド ラ イ バを イ ン ス ト ールす る 必要があ り ます。 イ ン ス ト ールお よ び設定の手順については、 ネ ッ ト ワ ー ク ま たは デー タ ソ ース の管理者にお問い合わせ く だ さ い。 3 必要に応 じ て、PowerBuilder が イ ン ス ト ール さ れてい る ク ラ イ ア ン ト マシ ン それぞれに、 適切な ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 ク ラ イ ア ン ト ソ フ ト ウ ェ アの要件 ク ラ イ ア ン ト ソ フ ト ウ ェ アの要件を確認す る には、 デー タ ベース ベン ダのマニ ュ アルを参照 し て く だ さ い。 ス テ ッ プ 2:OLE DB イ ン タ フ ェ ース と OLE DB デー タ プ ロ バイ ダのイ ン ス ト ール PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 カ ス タ ム イ ン ス ト ールを 選択 し 、 デー タ ベース にア ク セ スす る OLE DB プ ロ バ イ ダ を選択 し ま す。 PowerBuilder 付属の OLE DB デー タ プ ロ バ イ ダ を イ ン ス ト ール し て も 、 ほかのベン ダか ら 提供 さ れ る デー タ プ ロ バ イ ダ を イ ン ス ト ール し て も か ま い ません。 ス テ ッ プ 3:Microsoft Data Access Components ソ フ ト ウ ェ アのイ ン ス ト ール PowerBuilder OLE DB イ ン タ フ ェース は、 Microsoft Data Access Components (MDAC) バージ ョ ン 2.8 以降の ソ フ ト ウ ェ アの機能を必 要 と し ます。 バージ ョ ン 2.8 は Windows XP Service Pack 2 お よ び Windows Server 2003 と と も に配布 さ れます。 マシ ン の MDAC のバージ ョ ン を確認す る には、 MDAC のバージ ョ ン を確 認 す る 方法の ペ ー ジ のサ イ ト http://support.microsoft.com/kb/301202/ja か ら MDAC Component Checker ユーテ ィ リ テ ィ を ダ ウ ン ロ ー ド し ます。 Windows Vista オペ レ ーテ ィ ン グ シ ス テ ム では、 Windows Data Access Components (DAC) 6.0 は Vista で動作す る ための変更を含んでい ます が、 それ以外は MDAC 2.8 と 機能上同等です。 MDAC と と も に イ ン ス ト ール さ れる OLE DB デー タ プ ロバイ ダ 自動的に SQL Server (SQLOLEDB) と ODBC (MSDASQL) のプ ロ バ イ ダ を含むい く つかの Microsoft OLE DB デー タ プ ロ バ イ ダが MDAC と と も に イ ン ス ト ール さ れ ます。 56 PowerBuilder 第4章 ス テ ッ プ 4:OLE DB デー タ ソ ースの定義 OLE DB イ ン タ フ ェ ース OLE DB デー タ プ ロ バ イ ダ を イ ン ス ト ール し た ら 、 そのデー タ プ ロ バ イ ダが ア ク セ ス す る OLE DB デー タ ソ ー ス を 定義す る 必要が あ り ま す。 デー タ ソ ース を定義す る 方法は、 使用 し てい る OLE DB デー タ と そのデー タ の提供ベン ダに よ っ て異な り ます。 ODBC デー タ プ ロ バ イ ダ (Microsoft OLE DB Provider for ODBC な ど) に接続す る 場合は、 直接 ODBC に接続す る 場合 と 同 じ よ う に ODBC デー タ ソ ース を定義す る 必要があ り ます。ODBC デー タ ソ ース を定義 す る には、Microsoft の ODBC Data Source Administrator ユーテ ィ リ テ ィ を 使 用 し ま す。 Windows の コ ン ト ロ ー ル パ ネ ル か ら 、 あ る い は PowerBuilder のデー タ ベース ペ イ ン タ か DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス か ら 、 こ のユーテ ィ リ テ ィ にア ク セ ス で き ます。 OLE DB イ ン タ フ ェ ースの定義 OLE DB のプ ロ フ ァ イ ルの作成 OLE DB イ ン タ フ ェ ース を使用す る 接続を定義す る には、DB プ ロ フ ァ イ ル設定 - OLE DB ダ イ ア ロ グ ボ ッ ク ス で基本接続パ ラ メ ー タ な ど の 値を指定 し てデー タ ベー ス プ ロ フ ァ イ ルを作成す る 必要があ り ま す。 作成後は、 いつで も こ のプ ロ フ ァ イ ルを選択 し て開発環境か ら デー タ に接続す る こ と がで き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 接続パラ メ ー タ の指定 デー タ ベース と の接続 接続パ ラ メ ー タ の [プ ロ バ イ ダ] お よ び [デー タ ソ ース] の値を指定 す る 必要があ り ま す。 [プ ロ バ イ ダ] ド ロ ッ プダ ウ ン リ ス ト の イ ン ス ト ール済みのデー タ プ ロ バ イ ダの リ ス ト か ら デー タ プ ロ バ イ ダ を選 択 し ま す。 [デー タ ソ ー ス] の値は、 以下の よ う に、 使用す る デー タ ソ ース接続の種類に よ っ て異な り ます。 以下に例を示 し ます。 • Microsoft OLE DB Provider for ODBC を使用 し て EAS Demo DB に 接続す る 場合は、 [プ ロ バ イ ダ] の値 と し て 「MSDASQL」 を選択 し 、[デー タ ソ ース] の値 と し て実際の ODBC デー タ ソ ース名 ( こ の場合は EAS Demo DB) を入力 し ます。 • Microsoft OLE DB Provider for SQL Server を使用す る 場合は、[プ ロ バ イ ダ] の値 と し て 「SQLOLEDB」 を選択 し 、 [デー タ ソ ース] の 値 と し て実際のサーバ名を入力 し ます。 複数のデー タ ベース イ ン ス タ ン ス を持つ こ と がで き る ため、 [拡張プ ロ パテ ィ ] フ ィ ール ド でデー タ ベース名 (た と えば Database=Pubs) も 使用す る 必要があ り ます。 57 OLE DB イ ン タ フ ェ ースの定義 デー タ リ ン ク API の 使い方 [デー タ リ ン ク ] オプシ ョ ン を使 う と 、 Microsoft デー タ リ ン ク API に ア ク セ ス し 、 フ ァ イ ルを定義 し た り 、 OLE DB 接続情報が格納 さ れた 既存の フ ァ イ ルを使用 し た り す る こ と がで き ます。デー タ リ ン ク フ ァ イ ルは、 .udl と い う 拡張子で識別 さ れます。 デー タ リ ン ク フ ァ イ ルを 使用 し てデー タ ソ ースへ接続す る 場合は、DB プ ロ フ ァ イ ル設定 - OLE DB ダ イ ア ロ グ ボ ッ ク ス で指定 し たほかの設定値はすべて無視 さ れ ま す。 こ のオプシ ョ ン を起動す る には、 [接続] タ ブの [フ ァ イ ル名] チ ェ ッ ク ボ ッ ク ス を選択 し て [フ ァ イ ル名] ボ ッ ク ス の隣のボ タ ン を ク リ ッ ク し ま す。 ま た、 デー タ ベー ス ペ イ ン タ の [使用で き る DB イ ン タ フ ェ ー ス] の リ ス ト で、 OLE DB イ ン タ フ ェ ー ス に含 ま れ る Manage Data Links ユーテ ィ リ テ ィ を ダブル ク リ ッ ク し て も デー タ リ ン ク API を起動で き ます。 デー タ リ ン ク API の使い方についての詳細は、 Microsoft MSDN ラ イ ブ ラ リ のサイ ト http://msdn2.microsoft.com/en-us/library/ms713643.aspx のマニ ュ アル 『OLE DB Programmer’s Guide』 を参照 し て く だ さ い。 58 PowerBuilder 第 5 章 ADO.NET イ ン タ フ ェ ース こ の章について こ の章では、 ADO.NET イ ン タ フ ェース の概要について説明 し 、 こ の イ ン タ フ ェ ー ス を使用す る ための準備や ADO.NET デー タ ベー ス プ ロ フ ァ イ ルの定義の し かたについて解説 し ます。 内容 詳細について 項目 ADO.NET について PowerBuilder の ADO.NET デー タ ベー ス イ ン タ フ ェ ー ス につ いて ADO.NET イ ン タ フ ェース を使用する ための準備 ADO.NET イ ン タ フ ェース の定義 ページ 59 61 66 67 こ の章では、 一般的な ADO.NET イ ン タ フ ェ ー ス の使用方法につ いて説明 し てい ます。 詳細については、 以下を参照 し て く だ さ い。 • Microsoft MSDN ラ イ ブ ラ リ のサイ ト http://msdn2.microsoft.com/enus/library/default.aspx の Data Access お よ び .NET 開発セ ク シ ョ ン を参照 し て く だ さ い。 • デー タ プ ロ バ イ ダのベン ダが提供す る オ ン ラ イ ン ヘルプ • ADO.NET データ プロ バイ ダに接続する 方法を 解説し たテク ニカ ル ド キュ メ ン ト がある かど う かを 確認し てく ださ い。 接続に関 する 新し い情報は、 Sybase サポー ト と ダウン ロー ド のサイ ト http://www.sybase.com/support か ら 取得で き ます。 ADO.NET について ADO.NET は Microsoft .NET Framework デー タ へのネ イ テ ィ ブ ア ク セ ス を提供す る 一連のテ ク ノ ロ ジです。n 階層のプ ロ グ ラ ミ ン グ環 境をサポー ト し 、 非接続型デー タ アーキ テ ク チ ャ に対応す る よ う に設計 さ れてい ます。ADO.NET は XML と 緊密に統合 さ れてお り 、 XML を含む異種 ソ ース か ら のデー タ を結合す る こ と がで き ます。 デー タ ベース と の接続 59 ADO.NET について ADO.NET の主要 コ ン ポーネ ン ト の 1 つが .NET Framework デー タ プ ロ バ イ ダであ り 、 デー タ ベー ス への接続、 コ マ ン ド の実行、 お よ び結果 の検索を行い ます。 Microsoft は、 .NET Framework に同梱 し て SQL Server お よ び OLE DB 用 .NET Framework デー タ プ ロ バ イ ダ を提供 し てお り 、 ODBC お よ び Oracle 用デー タ プ ロ バ イ ダは Microsoft の Web サ イ ト か ら ダ ウ ン ロ ー ド で き ます。 Sybase 社の Adaptive Server Enterprise 用 .NET Framework Data Provider な ど、ほかのベン ダか ら の .NET Framework デー タ プ ロ バ イ ダ を入手す る こ と も 可能です。 PowerBuilder ADO.NET デー タ ベー ス イ ン タ フ ェ ー ス を使用 し てデー タ ベース に接続す る には、.NET Framework デー タ プ ロ バ イ ダ を使用す る 必要があ り ます。 Unicode デー タ へのア ク セス PowerBuilder は、 ADO.NET イ ン タ フ ェ ー ス を 使用 し て、 ANSI/DBCS お よ び Unicode の両方のデー タ ベー ス のデー タ に接続、 保存、 検索す る こ と がで き ますが、 Unicode と ANSI/DBCS 間でデー タ 変換を行い ま せん。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベース に送信 さ れ る と 、 PowerBuilder は Unicode 文字列を送信 し ま す。 デー タ が正 し く Unicode デー タ と し て保存 さ れ る こ と をデー タ プ ロ バ イ ダが保証す る 必要があ り ま す。 PowerBuilder は文字デー タ を検索す る と き 、 デー タ は Unicode であ る と 仮定 し ます。 Unicode データ ベース は、 文字セッ ト が Unicode 形式 (UTF-8、 UTF-16、 UCS-2、 UCS-4 な ど) に設定 さ れ る デー タ ベース の こ と です。 すべての デー タ は、 Unicode 形式でなければな ら ず、 デー タ ベース に保存 さ れ る デー タ は、 暗黙的に ま たは明示的に Unicode デー タ に変換 さ れな けれ ばな り ません。 文字セ ッ ト と し て ANSI (ま たは DBCS) を使用す る デー タ ベー ス は、 Unicode デー タ を格納す る 特殊なデー タ 型を使用す る こ と があ り ます。 こ れ ら のデー タ 型を持つカ ラ ムは、 Unicode デー タ だけです。 その よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換 さ れ る 必要 があ り ます。 こ の変換はデー タ ベース サーバ ま たは ク ラ イ ア ン ト が処 理す る 必要があ り ます。 60 PowerBuilder 第5章 ADO.NET イ ン タ フ ェ ース PowerBuilder の ADO.NET デー タ ベース イ ン タ フ ェ ース について PowerBuilder ADO.NET デ ー タ ベ ー ス イ ン タ フ ェ ー ス を 使 用 し て、 PowerBuilder ODBC お よ び OLE DB デー タ ベース イ ン タ フ ェ ース を使 用す る の と 同 じ よ う に、 Adaptive Server® Enterprise、 Oracle、 Microsoft SQL Server な ど のデー タ ソ ース、 OLE DB や XML を使用 し て公開 さ れたデー タ ソ ース に接続で き ます。 パフ ォ ーマ ン ス ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を使用す る と 、 よ り 高いパ フ ォ ーマ ン ス を得 る こ と があ り ます。ADO.NET イ ン タ フ ェース の主な 目的は、 Sybase DataWindow .NET の .NET DataGrid な ど、 そのほかの デー タ ベース構造 と の共有接続を サポー ト す る こ と です。 ADO.NET 接続の コ ンポーネ ン ト PowerBuilder か ら ADO.NET を使用 し てデー タ ベー ス にア ク セ ス す る 場合、デー タ ベース に到達す る ま でにい く つかの レ イ ヤ を経由 し ます。 それぞれの レ イ ヤは、 接続におけ る 独立 し た コ ン ポーネ ン ト で あ り 、 コ ン ポーネ ン ト を提供 し てい る ベン ダが違 う 可能性があ り ます。 PowerBuilder ADO.NET イ ン タ フ ェ ース は、 ド ラ イ バ (pbado110.dll) と サーバ (Sybase.PowerBuilder.Db.dll ま たは Sybase.PowerBuilder.DbExt.dll のいずれか) で構成 さ れてい ます。 サーバは pbrth110.dll と 呼ばれ る フ ァ イ ル と 依存関係があ り ます。 こ れ ら の DLL は ADO.NET を使用す る デー タ ベース に接続す る アプ リ ケーシ ョ ン と 一緒に配布す る 必要が あ り ます。 Oracle 10g ま たは Adaptive Server 15 以上では、 Sybase.PowerBuilder.DbExt.dll を使用 し ます。 以前のバージ ョ ンお よ び ほかの DBMS では、 Sybase.PowerBuilder.Db.dll を使用 し ます。 ADO.NET 用の DataWindow .NET デー タ ベース イ ン タ フ ェース は、 表 5-1 の ADO.NET デー タ プ ロ バ イ ダ をサポー ト し ます。 デー タ ベース と の接続 61 PowerBuilder の ADO.NET デー タ ベース イ ン タ フ ェ ースについて 表 5-1: サポー ト する ADO.NET デー タ プ ロバイ ダ デー タ プ ロバイ ダ OLE DB 用 .NET Framework デー タ プ ロ バ イ ダ SQL Server 用 .NET Framework デー タ プ ロ バ イ ダ .NET (ODP.NET) 用 Oracle デー タ プ ロ バ イ ダ Adaptive Server Enterprise (ASE) 用 Sybase ADO.NET デー タ プ ロ バ イ ダ 名前空間 System.Data.OleDb System.Data.SqlClient Oracle.DataAccess.Client Sybase.Data.AseClient さ ら に、 将来の リ リ ー ス では .NET Framework デー タ プ ロ バ イ ダ も サ ポー ト さ れ る 予定です。 最新情報については、 『 リ リ ー ス ノ ー ト 』 マ ニ ュ アルを参照 し て く だ さ い。 図 5-1 に、 OLE DB .NET Framework デ ー タ プ ロ バ イ ダ を 使 用 し た ADO.NET 接続の一般的な コ ン ポーネ ン ト を示 し ます。 62 PowerBuilder 第5章 ADO.NET イ ン タ フ ェ ース 図 5-1: ADO.NET OLE DB 接続のコ ンポーネ ン ト 図 5-2 に、 ネ イ テ ィ ブ ADO.NET デー タ プ ロ バ イ ダ を使用 し た ADO.NET 接続の一般的な コ ン ポーネ ン ト を示 し ます。 デー タ ベース と の接続 63 PowerBuilder の ADO.NET デー タ ベース イ ン タ フ ェ ースについて 図 5-2: ネ イ テ ィ ブ ADO.NET 接続のコ ンポーネ ン ト OLE DB デー タ プ ロバイ ダ OLE DB 対応の .NET Framework データ プロ バイ ダを 使用し て、Microsoft SQLOLEDB、Microsoft MSDAORA、 ほかのベン ダか ら のデー タ プ ロ バ イ ダな ど、 OLE DB デー タ プ ロ バ イ ダ を経由 し てデー タ ベース に接続 し ます。 OLE DB 対 応 の .NET Framework Data Provider は、 ODBC 対 応 の MSDASQL プ ロ バ イ ダでは動作 し ません。ま た OLE DB バージ ョ ン 2.5 イ ン タ フ ェ ース はサポー ト し てい ません。 64 PowerBuilder 第5章 ADO.NET イ ン タ フ ェ ース OLE DB .NET Framework デー タ プ ロ バ イ ダでは、 表 5-2 に リ ス ト さ れ る OLE DB イ ン タ フ ェース を サポー ト す る ど の OLE DB デー タ プ ロ バ イ ダで も 使用で き ます。 サポー ト さ れてい る プ ロ バ イ ダの詳細につい ては、 Microsoft の 『 .NET Framework Developer’s Guide』 マニ ュ アルに 記載 さ れてい る .NET Framework デー タ プ ロ バ イ ダに関す る ト ピ ッ ク を参照 し て く だ さ い。 PowerBuilder ADO.NET イ ン タ フ ェ ー ス は、 OLE DB .NET Framework データ プロ バイ ダを 使用し た SQL Anywhere、Adaptive Server Enterprise、 Microsoft SQL Server、 Oracle、 Informix、 お よ び Microsoft Access への 接続を サポー ト し ます。 デー タ プ ロ バ イ ダの イ ン ス ト ール後に、それに対す る デー タ ソ ース を 定義す る 必要があ り ます。 表 5-2: OLE DB デー タ プ ロバイ ダに必要な イ ン タ フ ェ ース サポー ト OLE DB オブ ジ ェ ク ト OLE DB Services DataSource 必要な イ ン タ フ ェ ース IDataInitialize IDBInitialize IDBCreateSession IDBProperties Session IPersist ISessionProperties Command IOpenRowset ICommandText MultipleResults RowSet ICommandProperties IMultipleResults IRowset IAccessor IColumnsInfo Error IRowsetInfo (DBTYPE_HCHAPTER がサポー ト さ れ てい る 場合にのみ必要) IErrorInfo IErrorRecords デー タ ベース と の接続 65 ADO.NET イ ン タ フ ェ ース を使用する ための準備 ADO.NET イ ン タ フ ェ ース を使用する ための準備 イ ン タ フ ェ ース を定義 し 、ADO.NET を使用 し てデー タ ベース に接続す る 前に、 次の操作を行い ます。 ス テ ッ プ 1: デー タ サーバのイ ン ス ト ール と 設定 1 デー タ ベース サーバ、 ネ ッ ト ワー ク 、 お よ び ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し て設定 し ます。 2 ADO.NET イ ン タ フ ェ ース を イ ン ス ト ール し ます。 3 マシ ン に Microsoft Data Access Components バージ ョ ン 2.6 以上の ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 デー タ ベース サーバを イ ン ス ト ールお よ び設定 し 、ネ ッ ト ワ ー ク ソ フ ト ウ ェ ア と ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ールす る 必要が あ り ます。 ❖ デー タ ベース サーバ、ネ ッ ト ワー ク、ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ー ル し 、 設定する 1 サーバに適切なデー タ ベース ソ フ ト ウ ェ アが イ ン ス ト ール さ れ、 実行 さ れてい る こ と を確認 し ます。 デー タ ベー ス サーバ ソ フ ト ウ ェ アはデー タ ベー ス のベン ダ か ら 入手す る 必要があ り ま す。 イ ン ス ト ールの手順については、 デー タ ベース ベン ダのマニ ュ アルを参照 し て く だ さ い。 2 マシ ン上に必要なネ ッ ト ワ ー ク ソ フ ト ウ ェ ア (TCP/IP な ど) が イ ン ス ト ール さ れ、 実行 さ れてお り 、 自分のサ イ ト のデー タ サーバ へ接続で き る よ う に正 し く 設定 さ れてい る こ と を確認 し ま す。 た と えば、 使用 し てい る ネ ッ ト ワ ー ク プ ロ ト コ ルやオペレーテ ィ ン グ シ ス テ ム プ ラ ッ ト フ ォ ーム を サポー ト す る 、 ネ ッ ト ワ ー ク コ ミ ュ ニ ケーシ ョ ン ド ラ イ バを イ ン ス ト ールす る 必要があ り ます。 イ ン ス ト ールお よ び設定の手順については、 ネ ッ ト ワ ー ク ま たは デー タ ソ ース の管理者にお問い合わせ く だ さ い。 3 必要に応 じ て、PowerBuilder が イ ン ス ト ール さ れてい る ク ラ イ ア ン ト マシ ン それぞれに、 適切な ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 ク ラ イ ア ン ト ソ フ ト ウ ェ アの要件 ク ラ イ ア ン ト ソ フ ト ウ ェ アの要件を確認す る には、 デー タ ベース ベン ダのマニ ュ アルを参照 し て く だ さ い。 ス テ ッ プ 2:ADO.NET イ ン タ フ ェ ースのイ ン ス ト ール 66 PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 カ ス タ ム イ ン ス ト ールを 選択 し 、 ADO.NET デー タ ベース イ ン タ フ ェース を選択 し ます。 PowerBuilder 第5章 ス テ ッ プ 3:Microsoft Data Access Components ソ フ ト ウ ェ アのイ ン ス ト ール ADO.NET イ ン タ フ ェ ース PowerBuilder ADO.NET イ ン タ フ ェース は、 Microsoft Data Access Components (MDAC) バージ ョ ン 2.8 以降の ソ フ ト ウ ェ アの機能を必 要 と し ます。 バージ ョ ン 2.8 は、 Windows XP Service Pack 2 お よ び Windows Server 2003 と と も に配布 さ れます。 マシ ン の MDAC のバージ ョ ン を確認す る には、 MDAC のバージ ョ ン を確 認す る 方法の ペ ー ジ のサ イ ト http://support.microsoft.com/kb/301202/ja か ら MDAC Component Checker ユーテ ィ リ テ ィ を ダ ウ ン ロ ー ド し ます。 Windows Vista オペ レ ーテ ィ ン グ シ ス テ ム では、 Windows Data Access Components (DAC) 6.0 は Vista で動作す る ための変更を含んでい ます が、 それ以外は MDAC 2.8 と 機能上同等です。 MDAC と と も に イ ン ス ト ール さ れる OLE DB デー タ プ ロバイ ダ 自動的に SQL Server (SQLOLEDB) と ODBC (MSDASQL) のプ ロ バ イ ダ を含むい く つかの Microsoft OLE DB デー タ プ ロ バ イ ダが MDAC と と も に イ ン ス ト ール さ れます。 ADO.NET イ ン タ フ ェ ースの定義 ADO.NET デー タ ベー ス プ ロ フ ァ イル設定 の使い方 ADO.NET イ ン タ フ ェ ー ス を 使用す る 接続 を 定義す る には、 DB プ ロ フ ァ イ ル設定 - ADO.NET ダ イ ア ロ グボ ッ ク ス で、基本接続パ ラ メ ー タ な ど の値 を 指定 し てデー タ ベー ス プ ロ フ ァ イ ル を 作成す る 必要が あ り ます。作成後は、いつで も こ のプ ロ フ ァ イ ルを選択 し て PowerBuilder のデー タ に接続で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 接続パラ メ ー タ の指定 接続パ ラ メ ー タ の [名前空間] お よ び [デー タ ソ ース] の値 と [ユー ザ ID] お よ び [パ ス ワ ー ド ] の 値 を 指 定 す る 必 要 が あ り ま す。 System.Data.OleDb 名前空間を使用す る と き は、 [プ ロ バ イ ダ] ド ロ ッ プダ ウ ン リ ス ト の イ ン ス ト ール済みのデー タ プ ロ バ イ ダの リ ス ト か ら デー タ プ ロ バ イ ダ も 選択 し ます。 デー タ ベース と の接続 67 ADO.NET イ ン タ フ ェ ースの定義 [デー タ ソ ース] の値は、 使用す る デー タ ソ ース接続の種類に よ っ て 異な り ます。 た と えば、 Microsoft OLE DB Provider for SQL Server を使 用す る 場合は、 [プ ロ バ イ ダ] の値 と し て SQLOLEDB を選択 し 、 [デー タ ソ ー ス] の値 と し て実際のサーバ名 を 入力 し ま す。 Microsoft SQL Server の場合は、 複数のデー タ ベース イ ン ス タ ン ス を持つ こ と がで き る ため、 [拡張プ ロ パテ ィ ] フ ィ ール ド でデー タ ベー ス 名 (た と えば Database=Pubs) も 使用す る 必要があ り ます。 OLE DB でのデー タ リ ン ク API の使い方 [デー タ リ ン ク ] オプシ ョ ン を使 う と 、 Microsoft デー タ リ ン ク API に ア ク セ ス し 、 フ ァ イ ルを定義 し た り 、 OLE DB 接続情報が格納 さ れた 既存の フ ァ イ ルを使用 し た り す る こ と がで き ます。デー タ リ ン ク フ ァ イ ルは、 .udl と い う 拡張子で識別 さ れ ます。 こ のオプシ ョ ン を起動す る には、[接続] ページの [フ ァ イ ル名] チ ェ ッ ク ボ ッ ク ス を選択 し て [フ ァ イ ル名] ボ ッ ク ス の隣のボ タ ン を ク リ ッ ク し ます。 (ま た、 デー タ ベース ペ イ ン タ の [使用で き る デー タ ベー ス イ ン タ フ ェ ース] の リ ス ト で、 OLE DB イ ン タ フ ェ ース に含まれ る Manage Data Links ユーテ ィ リ テ ィ を ダブル ク リ ッ ク し て も デー タ リ ン ク API を起動で き ます)。 デー タ リ ン ク API の使い方についての詳細は、 Microsoft ラ イ ブ ラ リ のサ イ ト http://msdn2.microsoft.com/en-us/library/default.aspx を 参照 し て く だ さ い。 デー タ リ ン ク フ ァ イルの使用 対 デー タ ベース パラ メ ー タ の設定 デー タ リ ン ク フ ァ イ ル を 使用 し てデー タ ソ ー ス へ接続す る 場合は、 DB プ ロ フ ァ イ ル設定 ADO.NET ダ イ ア ロ グ ボ ッ ク ス で指定 し たほか の設定値はすべて無視 さ れます。 identity カ ラ ム値の取得 標準の select @@identity 構文を使用 し て identity カ ラ ム の値を取得 で き ま す。 アプ リ ケーシ ョ ン の .NET 構成フ ァ イ ルにセ ク シ ョ ン を追 加 し て、 select scope_identity() 等の別の構文を使用す る こ と も で き ます。 構成 フ ァ イルの dbConfiguration セ ク シ ョ ンの設定 以下の例は、 デー タ ベース構成セ ク シ ョ ン と 1 つのカ ス タ ム構成セ ク シ ョ ン を持つ構成フ ァ イ ルの一般的な構造を示 し てい ます。 <configuration> <configSections> <sectionGroup name="dbConfiguration"> <section name="mycustomconfig" 68 PowerBuilder 第5章 ADO.NET イ ン タ フ ェ ース type="Sybase.PowerBuilder.Db.DbConfiguration, Sybase.PowerBuilder.Db" /> </sectionGroup> </configSections> <dbConfiguration> <mycustomconfig dbParm="optional_value" getIdentity="optional_syntax" /> </dbConfiguration> </configuration> ❖ デー タ ベース構成セ ク シ ョ ン を .NET 構成フ ァ イルに追加するには 1 構成フ ァ イ ルの <configSections> セ ク シ ョ ン で、 名前 「dbConfiguration」 を持つ <sectionGroup> 要素を追加 し ます。 こ の 名前は大文字 と 小文字を区別 し ます。 <configSections> は、 構成フ ァ イ ルの始めに (<runtime> セ ク シ ョ ン があ る 場合はその前に) あ る 必要があ り ます。 2 dbConfiguration <sectionGroup> 要素で、 い く つかの <section> 要素 の う ちの 1 つを追加 し ます。 各セ ク シ ョ ン に対 し て、 選択肢の名前 と 種類を指定 し ます。 種類 は、 構成フ ァ イ ルの こ のセ ク シ ョ ン を解析す る ために使用 さ れ る アセ ン ブ リ の厳密な名前です。 3 <section> お よ び <configSections> 要素を閉 じ て、<dbConfiguration> 要素を追加 し ます。 4 手順 2 で定義 し た各セ ク シ ョ ンに対 し て、 新 し い要素を <dbConfiguration> 要素に追加 し ます。 た と えば、 config1 と い う セ ク シ ョ ン を定義 し た場合は、 config1 要素を追加 し ます。各要素は dbParm と getIdentity の 2 つ の属性を 持ち ま す。 こ れ ら の属性の ど ち ら か あ る いは両方を設定す る こ と がで き ます。 dbParm 値は、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm パ ラ メ ー タ の値を設定 し ます。 こ の値の最大長は 1000 文字です。 構成フ ァ イ ルでパ ラ メ ー タ の値を設定す る と 、コ ー ド あ る いは DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス で設定 し た値は上書 き さ れます。 getIdentity 値は、 identity カ ラ ム の値を取 り 出すために使用 さ れ る 構文を指定 し ます。 最大長は 100 文字です。 getIdentity の値を指定 し ない場合は、 select @@identity 構文が使用 さ れ ます。 デー タ ベース と の接続 69 ADO.NET イ ン タ フ ェ ースの定義 構成 フ ァ イルのサン プ ル PowerBuilder 11.0 の こ の構成 フ ァ イ ルのサ ン プルは、 pb110.exe.config と 呼ばれ ます。サン プルは 3 つのカ ス タ ム構成を含みます。<myconfig> 要素は dbParm お よ び getIdentity 属性の両方を設定し ま す。 <myconfig1> は getIdentity だけ を設定 し 、<myconfig2> は dbParm だけ を設定 し ます。 <runtime> セ ク シ ョ ンは、 PowerBuilder に付属の構成フ ァ イ ルの中にあ り ますが、 アプ リ ケーシ ョ ンに付属の構成フ ァ イ ル (拡張子 exe.config を持つアプ リ ケーシ ョ ン と 同 じ 名前を持つ) には含まれ ません。 .NET Web フ ォ ーム タ ーゲ ッ ト では、 カ ス タ ム構成を web.config フ ァ イ ルに 追加 し ます。 <configuration> <configSections> <sectionGroup name="dbConfiguration"> <section name="myconfig" type="Sybase.PowerBuilder.Db.DbConfiguration, Sybase.PowerBuilder.Db" /> <section name="myconfig1" type="Sybase.PowerBuilder.Db.DbConfiguration, Sybase.PowerBuilder.Db" /> <section name="myconfig2" type="Sybase.PowerBuilder.Db.DbConfiguration, Sybase.PowerBuilder.Db" /> </sectionGroup> </configSections> <runtime> <assemblyBinding xmlns= "urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name= "Sybase.PowerBuilder.Db"/> <codeBase href="file:///C:/Program Files/ Sybase/PowerBuilder 11.0/DotNET/bin/ Sybase.PowerBuilder.Db.dll"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name= "Sybase.PowerBuilder.WebService.WSDL"/> <codeBase href="file:///C:/Program Files/ Sybase/PowerBuilder 11.0/DotNET/bin/ Sybase.PowerBuilder.WebService.WSDL.dll"/> </dependentAssembly> <dependentAssembly> 70 PowerBuilder 第5章 ADO.NET イ ン タ フ ェ ース <assemblyIdentity name= "Sybase.PowerBuilder.WebService.Runtime"/> <codeBase href="file:///C:/Program Files/ Sybase/PowerBuilder 11.0/DotNET/bin/ Sybase.PowerBuilder.WebService. Runtime.dll"/> </dependentAssembly> <probing privatePath="DotNET/bin" /> </assemblyBinding> </runtime> <dbConfiguration> <myconfig dbParm="disablebind=1" getIdentity="select scope_identity()" /> <myconfig1 getIdentity="select scope_identity()" /> <myconfig2 dbParm= "Namespace='Oracle.DataAccess.Client', DataSource='ora10gen',DisableBind=1, NCharBind=1,ADORelease='10.1.0.301'" /> </dbConfiguration> </configuration> 使用 さ れる カ ス タ ム構 成の指定 ADO.NET の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [シ ス テ ム] タ ブ ページ あ る いは コ ー ド で、DbConfigSection パ ラ メ ー タ の値 と し て 使用 し たい カ ス タ ム構成セ ク シ ョ ン の名前 を 指定 し ま す。 た と えば、 次の よ う に指定 し ます。 Sqlca.DBParm="DbConfigSection='myconfig'" 構成フ ァ イ ルの中で も 設定 さ れ る プ ロ フ ァ イ ル内あ る いは コ ー ド 内で パ ラ メ ー タ を設定す る 場合は、 構成フ ァ イ ルで指定 し た値が優先 さ れ ます。 構成フ ァ イ ルは、 実行フ ァ イ ル と 同 じ デ ィ レ ク ト リ に存在 し 、 拡張子 .config を持つ同 じ 名前であ る 必要があ り ます。 デー タ ベース と の接続 71 ADO.NET イ ン タ フ ェ ースの定義 72 PowerBuilder 第 3 部 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 第 3 部では、 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース を 使用 し て ア ク セ スするデー タ ベース接続を セ ッ ト ア ッ プお よび定義する方法について説明 し ます。 第 6 章 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 こ の章について こ の章では、 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース の概要につ いて説明 し ます。 以降の章では、 デー タ ベー ス を使用す る ための 準備や、 デー タ にア ク セ スす る ための固有のデー タ ベース イ ン タ フ ェース パ ラ メ ー タ の定義の し かたについて解説 し ます。 内容 項目 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース について デー タ ベース イ ン タ フ ェ ース接続の コ ン ポーネ ン ト ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース の使い方 ページ 75 76 78 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースについて ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース では、 さ ま ざ ま なデー タ ベースや DBMS と ネ イ テ ィ ブな接続がで き ます。 こ の章では、 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を 使用 し てデー タ ベー ス に接続をす る 方法について解説 し ます。 PowerBuilder Desktop 版 で は、 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を 提供 し ま せん。 PowerBuilder Enterprise 版に ア ッ プ グ レー ド す る と 、 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース が使用で き ます。 サポー ト さ れてい る ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス の 一覧については、 オ ン ラ イ ン ヘルプの 「サポー ト し てい る デー タ ベース イ ン タ フ ェ ース」 を参照 し て く だ さ い。 ネイ ティ ブ データ ベース イ ンタ フ ェ ース を使用する と 、PowerBuilder か ら デー タ ベース に直接 (ネ イ テ ィ ブ) に接続 し ます。 デー タ ベース と の接続 75 デー タ ベース イ ン タ フ ェ ース接続の コ ンポーネ ン ト ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース は、ベン ダ固有のデー タ ベー ス API を経由 し て特定のデー タ ベース と 接続を行 う ために、 それぞれ 専用の イ ン タ フ ェ ー ス DLL を 使用 し ま す。 た と え ば Microsoft SQL Server の SQL Native Client イ ン タ フ ェース は、デー タ ベース にア ク セ ス す る ために PBSNC110.DLL と い う DLL を使用 し ます。 ま た、Oracle 10g デー タ ベー ス イ ン タ フ ェ ー ス は、 PBO10110.DLL を 使用 し てデー タ ベース にア ク セ ス し ます。 こ れに対 し て標準デー タ ベー ス イ ン タ フ ェ ー ス 接続の場合は、 標準 API を 使用し てデータ ベース にアク セス し ま す。たと えば、PowerBuilder は イ ン タ フ ェース DLL (PBODB110.DLL) を使用 し て ODBC ド ラ イ バ マネージ ャ や対応す る ド ラ イ バ と 通信 し て、 ODBC デー タ ソ ース にア ク セ ス し ます。 デー タ ベース イ ン タ フ ェ ース接続の コ ンポーネ ン ト ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を使用 し てデー タ ベー ス に ア ク セ ス す る 場合、 デー タ ベース に到達す る ま でにい く つかの レ イ ヤ を経由 し ます。 それぞれの レ イ ヤは、 デー タ ベー ス 接続におけ る 独立 し た コ ン ポーネ ン ト で あ り 、 レ イ ヤ ご と に提供 し て い る ベ ン ダ が異 な っ てい る 可能性があ り ます。 76 PowerBuilder 第6章 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 図 6-1: デー タ ベース接続の コ ンポーネ ン ト デー タ ベー ス接続の特定の コ ン ポーネ ン ト を示す図については、 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース を説明 し てい る 章の 「基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト 」 を参照 し て く だ さ い。 デー タ ベース と の接続 77 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を使用 し てデー タ ベー ス に ア ク セ スす る には、 い く つかの基本ス テ ッ プ を実行 し ます。 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を経由 し てデー タ ベー ス に 接続す る には、 まず、使用す る デー タ ベース を準備 し ます。デー タ ベー ス を準備す る と 、 PowerBuilder か ら そのデー タ にア ク セ ス し 利用で き る よ う にな り ます。 デー タ ベース を使用す る ための準備 PowerBuilder を起動 し 、 デー タ ベース イ ン タ フ ェース を定義 し てデー タ ベー ス に接続す る 前に、 PowerBuilder の外部の環境でデー タ ベー ス と 接続す る ための準備が必要です。 各デー タ ベース に よ っ て必要な条 件は異な り ますが、 一般に、 デー タ ベー ス を準備す る には以下の手順 を実行 し ます。 ❖ PowerBuilder で使用するデー タ ベース を準備する 1 必要なデー タ ベース サーバ ソ フ ト ウ ェ アが、 サ イ ト に正 し く イ ン ス ト ール さ れ、 設定 さ れてい る こ と を確認 し ます。 2 デー タ ベース サーバに接続す る ためにネ ッ ト ワー ク ソ フ ト ウ ェ アが必要 と な る 場合には、 ネ ッ ト ワ ー ク ソ フ ト ウ ェ アがサ イ ト と ク ラ イ ア ン ト マシ ン に正 し く イ ン ス ト ール さ れ、 設定 さ れてい る こ と を確認 し ます。 3 必要なデー タ ベース ク ラ イ ア ン ト ソ フ ト ウ ェ アが、 ク ラ イ ア ン ト マ シ ン に正 し く イ ン ス ト ール さ れ、 設定 さ れてい る こ と を確認 し ま す (通常、 ク ラ イ ア ン ト マ シ ン は、 PowerBuilder が稼動 し てい る マシ ン です)。 ク ラ イ ア ン ト ソ フ ト ウ ェ アは、 デー タ ベース ベン ダか ら 入手す る 必要が あ り ま す。 ま た、 イ ン ス ト ールす る ク ラ イ ア ン ト ソ フ ト ウ ェ ア のバージ ョ ン が、 以下をすべてサポー ト し てい る こ と を確 認 し て く だ さ い。 ク ラ イ ア ン ト マシ ン上で稼働 し てい る オペレーテ ィ ン グ シ ス テム ア ク セ スす る デー タ ベース のバージ ョ ン 稼働 し てい る PowerBuilder のバージ ョ ン 4 PowerBuilder の外部の環境で、ア ク セ ス し たいサーバやデー タ ベー ス に接続で き る こ と を確認 し ます。 デー タ ベース ご と の具体的な手順については、 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェース を説明 し てい る 章の 「デー タ ベース に接続す る ため の準備」 を参照 し て く だ さ い。 78 PowerBuilder 第6章 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ー スのイ ン ス ト ールにつ いて デー タ ベー ス を使用す る ための準備を し た後で、 デー タ ベー ス にア ク セ ス す る ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を イ ン ス ト ールす る 必要があ り ます。 詳細については、 それぞれの イ ン タ フ ェ ース の説 明を参照 し て く だ さ い。 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ー スの定義 デー タ ベー ス にア ク セ ス す る 準備を終え た ら 、 PowerBuilder を起動 し て、 デー タ ベース イ ン タ フ ェ ース を定義 し ます。 デー タ ベース イ ン タ フ ェ ース を定義す る には、 その イ ン タ フ ェ ース の DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス に適切な値を入力 し て、デー タ ベース プ ロ フ ァ イ ルを作成す る 必要があ り ます。 一般的な手順については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの 作成について」 を参照 し て く だ さ い。 それぞれのデー タ ベー ス に固有 なデー タ ベー ス イ ン タ フ ェ ー ス パ ラ メ ー タ を定義す る 手順について は、ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース を個別に解説 し てい る 章 の 「デー タ ベース に接続す る ための準備」 を参照 し て く だ さ い。 詳細について 以降の章では、各ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース の使用に関 す る 一般的な内容について説明 し ます。 詳細については、 以下を参照 し て く だ さ い。 • デー タ ベース に接続す る 方法を解説 し たテ ク ニ カル ド キ ュ メ ン ト が あ る か ど う か確認 し て く だ さ い。 接続に関す る 新 し い情報は、 Sybase サポー ト と ダ ウ ン ロ ー ド のサ イ ト http://www.sybase.com/support か ら 取得で き ます。 • デー タ ベース と の接続 データ ベース サーバやク ラ イ アン ト ソ フ ト ウ ェ アのイ ン ス ト ール や設定をす る 場合は、 そのサ イ ト のネ ッ ト ワ ー ク 管理者 ま たはシ ス テ ム管理者に相談 し て く だ さ い。 79 ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ースの使い方 80 PowerBuilder 第 7 章 Adaptive Server Enterprise の 使い方 こ の章について こ の章では、 PowerBuilder において Adaptive Server Enterprise デー タ ベース イ ン タ フ ェ ース を使用す る 方法について解説 し ます。 内容 項目 サポー ト し てい る Adaptive Server のバージ ョ ン サポー ト し てい る Adaptive Server デー タ 型 Adaptive Server の基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト Adaptive Server デー タ ベース を使用す る ための準備 Adaptive Server デー タ ベース イ ン タ フ ェ ース の定義 Open Client のセキ ュ リ テ ィ サービ ス Open Client のデ ィ レ ク ト リ サービ ス の使い方 Adaptive Server ス ト ア ド プ ロ シージ ャ におけ る PRINT 文の使 い方 デー タ ベース間の結合に基づ く デー タ ウ ィ ン ド ウ の作成 Adaptive Server デー タ ベー ス におけ る ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール ページ 81 82 85 86 89 90 93 96 97 97 サポー ト し ている Adaptive Server のバージ ョ ン SYC Adaptive Server デー タ ベー ス イ ン タ フ ェ ー ス を 使用 し て、 Adaptive Server バージ ョ ン 11.x、12.x、 お よ び 15.x にア ク セ ス がで き ます。 こ の イ ン タ フ ェース を使用 し たほかの Open Server™ プ ロ グ ラ ムへのア ク セ ス は、 サポー ト し てい ません。 SYC デー タ ベー ス イ ン タ フ ェ ー ス は、 PBSYC110.DLL と い う DLL を 使用 し て Open Client CT-Lib API 経由でデー タ ベース にア ク セ ス し ます。 デー タ ベース と の接続 81 サポー ト し ている Adaptive Server デー タ 型 ASE Adaptive Server デー タ ベース イ ン タ フ ェ ース を使用 し て、Adaptive Server バージ ョ ン 15.x に ア ク セ ス す る こ と も で き ま す。 こ の イ ン タ フ ェ ース を使用 し たほかの Open Server™ プ ロ グ ラ ムへのア ク セ ス は、 サポー ト し てい ません。 Adaptive Server デー タ ベース イ ン タ フ ェ ース は、 PBASE110.DLL と い う DLL を使用 し て Open Client CT-Lib API 経 由でデー タ ベー ス にア ク セ ス し ます。 こ の イ ン タ フ ェ ース を使用す る た め に は、 Adaptive Server 15 ク ラ イ ア ン ト が ク ラ イ ア ン ト の コ ン ピ ュ ー タ に イ ン ス ト ール さ れ て い る 必要 が あ り ま す。 ASE イ ン タ フ ェ ース は、 128 文字ま での大 き な識別子を サポー ト し ます。 Client Library API Adaptive Server データ ベース イ ンタ フ ェ ース は、 Open Client™ CT-Library (CT-Lib) アプ リ ケーシ ョ ン プ ロ グ ラ ミ ン グ イ ン タ フ ェース (API) を 使用 し てデー タ ベース にア ク セ ス し ます。 Adaptive Server デー タ ベース に接続す る と 、 PowerBuilder に よ っ て、 必 要な API 呼び出 し が行われ ま す。 し たが っ て、 デー タ ベー ス イ ン タ フ ェ ース を使用す る 上で、 CT -Lib に関す る 知識は必要あ り ません。 EAServer での PowerBuilder カ ス タ ム ク ラ ス ユーザ オブ ジ ェ ク ト の配布 EAServer で使用す る CT-Lib ソ フ ト ウ ェ アは、バージ ョ ンが少 し 異な り ます。 し たが っ て、 実行時には ASE や SYC ではな く SYJ デー タ ベー ス イ ン タ フ ェ ース を使用 し て Adaptive Server デー タ ベース に接続す る 必要があ り ます。 SYJ の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を 使 う と 、 適切な接続パ ラ メ ー タ を設定 し 、 構文を [プ レ ビ ュ ー] タ ブ か ら ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト の ス ク リ プ ト に簡単に コ ピ ーで き ま す。 SYJ デー タ ベー ス イ ン タ フ ェ ー ス は PBSYJ110.DLL と い う DLL を使用 し ます。 ただ し 、 SYJ イ ン タ フ ェ ー ス を使用 し て、 PowerBuilder 開発環境か ら デー タ ベース に接続す る こ と はで き ません。 そのため、 開発段階、 つ ま り コ ン ポーネ ン ト が EAServer に配布 さ れ る 前の段階では、 ASE や SYC イ ン タ フ ェース を使用 し てデー タ ベース に接続す る 必要があ り ま す。 サポー ト し ている Adaptive Server デー タ 型 Adaptive Server イ ン タ フ ェース は、 デー タ ウ ィ ン ド ウ オブジ ェ ク ト と 埋め込み SQL において、表 7-1 に示す Sybase デー タ 型をサポー ト し て い ます。 82 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 表 7-1: サポー ト し てい る Adaptive Server Enterprise デー タ 型 Binary NVarChar Real BigInt (15.x 以降) Bit SmallDateTime SmallInt Char (84 ページの 「カ ラ ムの長 さ の制限」 を参照) DateTime SmallMoney Decimal Text Double precision Timestamp Float TinyInt Identity UniChar Image UniText (15.x 以降) Int UniVarChar Money VarBinary NChar VarChar Numeric Adaptive Server 15.0 以降では、 PowerBuilder は符号付 き の bigint、 int、 お よ び smallint デー タ 型 と 同 じ よ う に符号な し のデー タ 型 も サポー ト し ます。 bigint、 int、 numeric、 smallint、 tinyint、 unsigned bigint、 unsigned int、 お よ び unsigned smallint デー タ 型 も 、 Adaptive Server 15.0 以降では Identity カ ラ ム と し て使用で き ます。 Unicode デー タ への ア ク セス PowerBuilder は、 ANSI/DBCS お よ び Unicode の両方のデー タ ベース の デー タ に接続、 保存、 検索す る こ と がで き ます。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベース に送信 さ れ る と 、PowerBuilder は UTF8 デー タ ベース パ ラ メ ー タ が 0 に設定 さ れてい る (デフ ォ ル ト ) 場合は、 DBCS 文 字 列 を 送 信 し ま す。 UTF8 が 1 に 設 定 さ れ て い る 場 合、 PowerBuilder は UTF-8 文字列を送信 し ます。 UTF-8 文字列を受け取 る には、 デー タ ベー ス サーバが正 し く 設定 さ れてい る 必要が あ り ま す。 詳細については、 オ ン ラ イ ン ヘルプの UTF8 デー タ ベース パ ラ メ ー タ の説明を参照 し て く だ さ い。 Adaptive Server デー タ ベース サーバで使用 さ れ る 文字セ ッ ト は、 サー バのすべて のデー タ ベー ス に適用 さ れ ま す。 サーバの文字セ ッ ト が UTF-8 の場合、 nchar と nvarchar デー タ 型は UTF-8 デー タ を格納 し ま す。 Unicode デー タ 型 unichar と univarchar は、 Unicode デー タ をサポー ト す る ために、 Adaptive Server 12.5 で導入 さ れ ま し た。 こ れ ら のデー タ 型を持つカ ラ ムは、 Unicode デー タ だけ を格納 し ます。 こ の よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換す る 必要があ り ます。 こ の変換は、 デー タ ベース サーバ ま たは ク ラ イ ア ン ト に よ っ て 行 う 必要があ り ます。 デー タ ベース と の接続 83 サポー ト し ている Adaptive Server デー タ 型 Adaptive Server 12.5.1 以降に Unicode デー タ に関 し て、追加サポー ト が 追加 さ れ ま し た。 詳細については、 Adaptive Server の使用バージ ョ ン のマニ ュ アルを参照 し て く だ さ い。 ペ イ ン タ での表示値の 違い unichar お よ び univarchar デー タ 型は UTF-16 エ ン コ ー テ ィ ン グ を サ ポー ト し ます。 そのため、 unichar あ る いは univarchar 文字はそれぞれ 2 バ イ ト の ス ト レ ージ を必要 と し ます。 次の例は、 1 unichar カ ラ ム が 10 Unicode 文字を保持す る テーブルを作成 し ます。 create table unitbl (unicol unichar(10)) デー タ ベー ス ペ イ ン タ では、 カ ラ ム が 20 バ イ ト の ス ト レージ を必要 と す る ため、カ ラ ム を unichar(20) と し て表示 し ます。こ れは、Sybase Central でカ ラ ム を表示す る 方法 と 一致 し てい ます。 し か し 、 デー タ ウ ィ ン ド ウ ペ イ ン タ におけ る カ ラ ム の仕様 ビ ュ ーの デー タ 型 と デー タ ベース におけ る テーブルのカ ラ ム のデー タ 型間での マ ッ ピ ン グは、 1 対 1 ではあ り ま せん。 カ ラ ム の仕様ビ ュ ーでのデー タ 型は、デー タ ウ ィ ン ド ウ カ ラ ムのデー タ 型 と デー タ ウ ィ ン ド ウ カ ラ ムの長 さ を表示 し ます。 カ ラ ム の長 さ は文字数にな り ます。 そのため、 Adaptive Server unichar(20) カ ラ ム は、 カ ラ ム の 仕 様 ビ ュ ー で は char(10) と し て表示 さ れ ます。 カ ラ ムの長 さ の制限 Adaptive Server 12.0 以下は、 カ ラ ム の長 さ を 255 バ イ ト に制限 し てい ま す。 Adaptive Server 12.5.x 以 降 は、 Char、 VarChar、 Binary、 お よ び VarBinary デー タ 型用の ワ イ ド カ ラ ム をサポー ト し 、 サーバが使用す る 論理ページ サ イ ズ と ロ ッ ク ス キーム に依存 し ます。 PowerBuilder では、以下の条件の時に、Adaptive Server 12.5.x で Char と VarChar デー タ 型用の ワ イ ド カ ラ ム を使用で き ます。 • Release デー タ ベース パ ラ メ ー タ を 12.5 以降に設定 • デー タ ベース ア ク セ ス に Open Client 12.5.x 以降を使用 最大幅の利点を享受す る には、 大容量の論理ページ サ イ ズ を使用す る よ う にデー タ ベース で設定す る 必要があ り ます。 ワ イ ド カ ラ ム と 設定の問題に関す る 詳細については、 製品マニ ュ アル の サイ ト http://www.sybase.com/support/manuals/ の Adaptive Server マニ ュ ア ルを参照 し て く だ さ い。Release デー タ ベース パ ラ メ ー タ の詳細につい ては、 オ ン ラ イ ン ヘルプ を参照 し て く だ さ い。 84 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 カラ ムの検索や更新処理を する 際、Adaptive Server データ 型と PowerScript デー タ 型の間で適宜、 デー タ 変換が行われ ます。 同様の名前、 ま たは 同一の名前 を持つ Adaptive Server デー タ 型 と PowerScript デー タ 型で あ っ て も 、 必ず し も 同 じ 定義を持つ と は限 り ません。 PowerScript デー タ 型の定義については、 『PowerScript リ フ ァ レ ン ス』 マ ニ ュ アル を参 照 し て く だ さ い。 PowerBuilder ス ク リ プ ト での型変換 変換後の文字列が Adaptive Server にオーバーフ ロ ーを 引き 起こ す可能 性があ る 場合、 小数部を 持たない Double 型は、 小数部が 1 桁付加さ れ た文字列に変換さ れま す。たと え ば、Double 型文字列の 12345678901234 はオーバーフ ロ ー エラ ーを 引き 起こ すため、 12345678901234.0 に変換 さ れま す。 Adaptive Server の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト 図 7-1 は、PowerBuilder か ら Adaptive Server デー タ ベース にア ク セ スす る ために必要な基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト を示 し てい ます。 デー タ ベース と の接続 85 Adaptive Server デー タ ベース を使用する ための準備 図 7-1: Adaptive Server Enterprise 接続のコ ンポーネ ン ト Adaptive Server デー タ ベース を使用する ための準備 デー タ ベー ス イ ン タ フ ェ ー ス を 定義 し 、 PowerBuilder か ら Adaptive Server デー タ ベー ス に接続す る 前に、 以下の手順に従 っ て 使用す る デー タ ベース を準備 し ます。 86 1 接続に必要なデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定 し ます。 2 Adaptive Server データ ベース イ ンタ フ ェ ース をイ ンス ト ールし ま す。 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 3 PowerBuilder の外部の環境で、 Adaptive Server に接続で き る こ と を 確認 し ます。 4 sybsystemprocs デー タ ベース に必要な PowerBuilder ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し ます。 PowerBuilder で使用す る Adaptive Server デー タ ベース を準備す る には、 基本的に共通の以下の 4 つの操作を し ます。 ス テ ッ プ 1 : デー タ ベース サーバのイ ン ス ト ール と 設定 Adaptive Server 用にデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定す る 必要があ り ます。 ❖ デー タ ベース サーバ、ネ ッ ト ワー ク 、ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ー ル し 、 設定する 1 デー タ ベース プ ロ フ ァ イ ルに指定 さ れてい る サーバ上に、Adaptive Server デー タ ベー ス ソ フ ト ウ ェ アが イ ン ス ト ール さ れてい る こ と を確認 し ます。 Sybase 社のデー タ ベー ス サーバ ソ フ ト ウ ェ ア を 入手す る 必要が あ り ます。 イ ン ス ト ールの手順については、Adaptive Server のマニ ュ アルを参 照 し て く だ さ い。 2 自分のマシ ン上に、 サポー ト し てい る ネ ッ ト ワ ー ク ソ フ ト ウ ェ ア (TCP/IP な ど) が イ ン ス ト ール さ れ、 稼働 し てい る こ と に加え て、 自分のサ イ ト か ら デー タ ベース サーバに接続す る 設定が正 し い こ と を確認 し ます。 た と えば、 使用 し てい る ネ ッ ト ワ ー ク プ ロ ト コ ルやオペレーテ ィ ン グ シ ス テ ム プ ラ ッ ト フ ォ ーム を サポー ト す る 、ネ ッ ト ワ ー ク コ ミ ュ ニ ケーシ ョ ン ド ラ イ バ を イ ン ス ト ールす る 必要が あ り ま す。 ド ラ イ バは、 Net-Library ク ラ イ ア ン ト ソ フ ト ウ ェ アの一部 と し て イ ン ス ト ール さ れ ます。 イ ン ス ト ール と 設定の手順については、 ネ ッ ト ワ ー ク ま たはデー タ ベース の管理者に問い合わせて く だ さ い。 3 PowerBuilder が イ ン ス ト ール さ れてい る 各 ク ラ イ ア ン ト マシ ン に、 必要な Open Client CT-Library (CT-Lib) ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 Sybase 社の Open Client ソ フ ト ウ ェ ア を入手す る 必要があ り ます。 イ ン ス ト ールす る Open Client のバージ ョ ン が、 以下 を すべて サ ポー ト す る こ と を確認 し ます。 ク ラ イ ア ン ト マシ ン上で稼働 し てい る オペレーテ ィ ン グ シ ス テム デー タ ベース と の接続 87 Adaptive Server デー タ ベース を使用する ための準備 ア ク セ スす る Adaptive Server のバージ ョ ン 稼働 し てい る PowerBuilder のバージ ョ ン ク ラ イ ア ン ト ソ フ ト ウ ェ アのバージ ョ ンの要件 ASE Adaptive Server イ ン タ フ ェ ー ス を 使用す る た め に は、 Open Client バージ ョ ン 15.x 以上 を イ ン ス ト ールす る 必要が あ り ま す。 SYC Adaptive Server イ ン タ フ ェ ー ス を 使用す る た め に は、 Open Client バージ ョ ン 11.x 以上を イ ン ス ト ールす る 必要があ り ます。 4 自分のサ イ ト か ら デー タ ベース に接続で き る よ う に、 Open Client ソ フ ト ウ ェ アが正 し く 設定 さ れてい る こ と を確認 し ます。 Open Client ソ フ ト ウ ェ ア を イ ン ス ト ールす る と 、 ク ラ イ ア ン ト マ シ ンの Adaptive Server デ ィ レ ク ト リ に SQL.INI 構成フ ァ イ ルが イ ン ス ト ール さ れます。 SQL.INI 構成フ ァ イ ルは、 サ イ ト か ら デー タ ベー ス サーバを検出 し 、 接続す る た めに必要な Adaptive Server の情報 を 提供 し ま す。 Open Client ソ フ ト ウ ェ ア と と も に提供 さ れ る 構成ユーテ ィ リ テ ィ を使用す る と 、 SQL.INI の内容の変更や表示がで き ます。 SQL.INI やそ の ほ か の構成 フ ァ イ ルの設定につい て は、 Adaptive Server のマニ ュ アルを参照 し て く だ さ い。 ス テ ッ プ 2 : デー タ ベース イ ン タ フ ェ ー スのイ ン ス ト ール 5 オペレーテ ィ ン グ シ ス テ ムの必要に応 じ て、 Open Client ソ フ ト ウ ェ アのデ ィ レ ク ト リ がシ ス テ ム パ ス にあ る こ と を確認 し ます。 6 以下の フ ァ イ ルが ク ラ イ ア ン ト マシ ン上に イ ン ス ト ール さ れてい る こ と を確認 し ます。 • Adaptive Server イ ン タ フ ェ ース DLL • ネ ッ ト ワー ク コ ミ ュ ニ ケーシ ョ ン DLL (Windows Sockets 準拠 TCP/IP 用の NLWNSCK.DLL な ど) • デー タ ベース ベン ダ DLL (LIBCT.DLL な ど) PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 標準 イ ン ス ト ールを選択 す る か、 カ ス タ ム イ ン ス ト ー ル を 選 択 し た 場 合 は Adaptive Server Enterprise (ASE ま たは SYC) デー タ ベース イ ン タ フ ェ ース を選択 し て く だ さ い。 PowerBuilder お よ び EAServer を 使 用 す る 場 合、 EAServer (SYJ) の Adaptive Server イ ン タ フ ェ ース も 選択す る 必要があ り ます。 ス テ ッ プ 3 : 接続の確 認 88 PowerBuilder の外部の環境で、 Adaptive Server デー タ ベース サーバに 接続 し 、 ア ク セ ス し たいデー タ ベー ス に ロ グ イ ン で き る こ と を確認 し ます。 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 以下の ツールを実行す る と 、 接続を確認で き ます。 ステ ッ プ 4 : PowerBuilder ス ト ア ド プ ロ シージ ャの イ ン ス ト ール デー タ ベース サーバ と の接続 • Open Client/Open Server Configuration ユーテ ィ リ テ ィ (ま たは Ping ユーテ ィ リ テ ィ ) な ど の ツ ールは、 自分のマシ ン か ら デー タ ベース サーバにア ク セ ス で き る か ど う か をチ ェ ッ ク し ます。 • ISQL (対話型 SQL ユーテ ィ リ テ ィ ) な ど の ツールは、 デー タ ベー ス に ロ グ イ ン し 、 デー タ ベー ス 操作が実行 で き る か ど う か を チ ェ ッ ク し ま す。 デー タ ベー ス にア ク セ ス す る と き PowerBuilder のデー タ ベース プ ロ フ ァ イ ルで使用す る 予定の 接続パ ラ メ ー タ と 、 同 じ 値の接続パ ラ メ ー タ を指定す る こ と をお 勧め し ます。 デー タ ベース と の接続 PowerBuilder では、 Adaptive Server デー タ ベー ス に最初に接続す る 前 に、 sybsystemprocs デー タ ベー ス に特定の ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し てお く 必要が あ り ま す。 PowerBuilder は、 こ の ス ト ア ド プ ロ シージ ャ を使用 し て、 DBMS シ ス テ ム カ タ ロ グか ら テーブルやカ ラ ムについての情報を取得 し ます。 sybsystemprocs デー タ ベース に PowerBuilder ス ト ア ド プ ロ シージ ャ を イ ン ス ト ールす る ために必要な SQL ス ク リ プ ト を実行 し ます。 詳 し い手順については、 97 ページの 「Adaptive Server デー タ ベース に おけ る ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール」 を参照 し て く だ さ い。 Adaptive Server デー タ ベース イ ン タ フ ェ ースの定義 Adaptive Server イ ン タ フ ェ ー ス を介 し た接続を定義す る には、 少な く と も 、DB プ ロ フ ァ イ ル設定 - Adaptive Server Enterprise ダ イ ア ロ グ ボ ッ ク ス の基本接続パ ラ メ ー タ 用の値を指定 し て、 デー タ ベース プ ロ フ ァ イ ルを作成 し なければな り ません。 次回以降、 こ のデー タ ベース プ ロ フ ァ イ ルを選択す る と 、 開発環境でそのデー タ ベース にいつで も 接続 で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 デー タ ベース と の接続 89 Open Client のセキ ュ リ テ ィ サービ ス EAServer で配布 さ れ る PowerBuilder カ ス タ ム ク ラ ス ユーザ オ ブ ジ ェ ク ト 用の接続を定義する SYJ イ ン タ フ ェース を使用 し て、PowerBuilder 開発環境か ら デー タ ベー ス に接続す る こ と はで き ません。 ただ し 、 SYJ の DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス を使 う と 、 適切な接続パ ラ メ ー タ を設定 し 、 構 文を [プ レ ビ ュ ー] タ ブか ら ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の ス ク リ プ ト に簡単に コ ピーで き ます。 Open Client のセキ ュ リ テ ィ サービ ス Adaptive Server イ ン タ フ ェ ース は、Open Client 11.1.x 以上のネ ッ ト ワ ー ク ベー ス のセ キ ュ リ テ ィ サー ビ ス を ア プ リ ケーシ ョ ン 内で有効にす る DBParm パ ラ メ ー タ を提供 し ます。 必要なデー タ ベース、 セ キ ュ リ テ ィ 、 お よ び PowerBuilder の 3 つの ソ フ ト ウ ェ ア を使用すれば、 Open Client のセ キ ュ リ テ ィ サービ ス の利点を活かすアプ リ ケーシ ョ ン を構 築で き ます。 Open Client のセキ ュ リ テ ィ サービ ス と は ? Open Client 11.1.x 以上のセキ ュ リ テ ィ サービ ス に よ り 、 サポー ト さ れ てい る サー ド パーテ ィ のセキ ュ リ テ ィ メ カ ニ ズ ム (CyberSafe Kerberos な ど) を使用 し て、 アプ リ ケーシ ョ ン に対 し て ロ グ イ ン認証やパケ ッ ト 単位のセ キ ュ リ テ ィ を提供す る こ と がで き ます。 ロ グ イ ン認証は安 全な接続を確立 し 、 パケ ッ ト 単位のセ キ ュ リ テ ィ はネ ッ ト ワ ー ク を介 し たデー タ 転送を保護 し ます。 Open Client のセキ ュ リ テ ィ サービ ス を使用する ための条件 アプ リ ケーシ ョ ン において Open Client のセ キ ュ リ テ ィ サービ ス を使 用す る には、 以下の条件をすべて満た さ なければな り ません。 90 • Open Client Client-Library (CT-Lib) 11.1.x 以上を使用 し て Adaptive Server デー タ ベース サーバにア ク セ ス し ます。 • ネッ ト ワ ーク セキュ リ ティ メ カニズム およ びド ラ イ バが必要です。 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 Sybase がサポー ト し て い る ネ ッ ト ワ ー ク セ キ ュ リ テ ィ メ カ ニ ズ ムお よ び Sybase か ら 提供 さ れ る セ キ ュ リ テ ィ ド ラ イ バ を イ ン ス ト ール し 、使用環境に合わせて正 し く 設定 し てお き ます。オペレー テ ィ ン グ シ ス テ ム に よ っ て異な り ますが、 サポー ト さ れてい る セ キ ュ リ テ ィ メ カ ニ ズ ム に は、 Distributed Computing Environment (DCE)セ キ ュ リ テ ィ サービ ス と ク ラ イ ア ン ト 、CyberSafe Kerberos、 お よ び Windows NT LAN Manager Security Services Provider Interface (SSPI) があ り ます。 Sybase 社が Open Client のセ キ ュ リ テ ィ サービ ス を使用 し て動作 確認 し た サー ド パーテ ィ のセ キ ュ リ テ ィ メ カ ニ ズ ム お よ びオペ レーテ ィ ン グ シ ス テ ムの詳細については、 Open Client マニ ュ アル を参照 し て く だ さ い、 • PowerBuilder の外部の安全なサーバにア ク セ ス で き ます。 PowerBuilder の外部の環境か ら Open Client 11.1.x 以上を使用 し て 安全な Adaptive Server にア ク セ ス で き なければな り ません。 接続を確認す る には、 ISQL ま たは SQL Advantage な ど の ツールを 使用 し て、 サーバに接続 し デー タ ベー ス に ロ グ イ ン で き る か ど う か をチ ェ ッ ク し ます。 こ の際、接続パ ラ メ ー タ お よ びセキ ュ リ テ ィ オプシ ョ ンには、PowerBuilder アプ リ ケーシ ョ ン で使用す る 予定の 値 と 同 じ 値を指定 し ます。 • PowerBuilder デー タ ベース イ ン タ フ ェ ース を使用 し ます。 デー タ ベース のア ク セ ス には ASE ま たは SYC Adaptive Server イ ン タ フ ェ ース を使用 し ます。 • Release DBParm パ ラ メ ー タ にデー タ ベース に適切な値を設定 し ま す。 アプ リ ケーシ ョ ンが Open Client CT-Lib ソ フ ト ウ ェ アの適切なバー ジ ョ ン を利用で き る よ う に、 Release DBParm パ ラ メ ー タ を 11 以上 に設定 し てお き ます。 こ の詳細については、オ ン ラ イ ン ヘルプの Release の ト ピ ッ ク を参 照 し て く だ さ い。 • セ キ ュ リ テ ィ メ カ ニズ ムお よ び ド ラ イ バは要求 さ れたサービ ス を サポー ト し ます。 使用す る セ キ ュ リ テ ィ メ カ ニ ズ ムお よ び ド ラ イ バは、 DBParm が 要求す る サービ ス を サポー ト し ていなければな り ません。 デー タ ベース と の接続 91 Open Client のセキ ュ リ テ ィ サービ ス セキ ュ リ テ ィ サービ スの DBParm パラ メ ー タ 90 ページの「Open Client のセキ ュ リ テ ィ サービ ス を使用す る ための条 件」を満た し ていれば、接続用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス ま たは PowerBuilder ア プ リ ケーシ ョ ン ス ク リ プ ト 内で セ キ ュ リ テ ィ サービ ス の DBParm パ ラ メ ー タ を設定す る こ と がで き ます。 Open Client のセ キ ュ リ テ ィ サー ビ ス を サポー ト す る ために設定す る DBParm パ ラ メ ー タ は、 ロ グ イ ン認証 と パケ ッ ト 単位のセ キ ュ リ テ ィ の 2 種類です。 ログ イ ン認証 DBParm 以下の ロ グ イ ン認証 DBParm パ ラ メ ー タ は、 Open Client 11.1.x 以上の 接続プ ロ パテ ィ に相当 し てお り 、 こ れ ら のパ ラ メ ー タ を使用す る こ と で、 アプ リ ケーシ ョ ンが安全な接続を確立す る こ と がで き ます。 Sec_Channel_Bind Sec_Cred_Timeout Sec_Delegation Sec_Keytab_File Sec_Mechanism Sec_Mutual_Auth Sec_Network_Auth Sec_Server_Principal Sec_Sess_Timeout DBParm パ ラ メ ー タ の設定手順については、 オ ン ラ イ ン ヘルプでそれ ぞれのパ ラ メ ー タ の説明を参照 し て く だ さ い。 パケ ッ ト 単位のセキ ュ リ テ ィ DBParm 以下 の パ ケ ッ ト 単位 セ キ ュ リ テ ィ 用 の DBParm パ ラ メ ー タ は Open Client 11.1.x 以上の接続プ ロ パテ ィ に相当 し てお り 、 ネ ッ ト ワ ー ク を介 し たデー タ 転送を保護 し ます。 パケ ッ ト 単位セ キ ュ リ テ ィ を使用す る と 、 ク ラ イ ア ン ト と サーバ間の通信にオーバーヘ ッ ド が生 じ る 場合が あ り ます。 Sec_Confidential Sec_Data_Integrity Sec_Data_Origin Sec_Replay_Detection Sec_Seq_Detection DBParm パ ラ メ ー タ の設定手順については、 オ ン ラ イ ン ヘルプでそれ ぞれのパ ラ メ ー タ の説明を参照 し て く だ さ い。 92 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 Open Client のデ ィ レ ク ト リ サービ スの使い方 Adaptive Server イ ン タ フ ェ ース は、Open Client 11.1.x 以上のネ ッ ト ワ ー ク ベー ス のデ ィ レ ク ト リ サー ビ ス を ア プ リ ケーシ ョ ン 内で有効にす る DBParm パ ラ メ ー タ を提供 し ます。 必要なデー タ ベース、 デ ィ レ ク ト リ サービ ス、 お よ び PowerBuilder の 3 つの ソ フ ト ウ ェ ア を使用すれ ば、 Open Client のデ ィ レ ク ト リ サー ビ ス の利点 を 活かすア プ リ ケー シ ョ ン を構築で き ます。 Open Client のデ ィ レ ク ト リ サービ ス と は ? Open Client 11.1.x 以上のデ ィ レ ク ト リ サービ ス に よ り 、 サポー ト さ れ てい る サー ド パーテ ィ のデ ィ レ ク ト リ サービ ス製品 (Windows レ ジ ス ト リ な ど) をデ ィ レ ク ト リ サービ ス プ ロ バ イ ダ と し て使用す る こ と が で き ます。 デ ィ レ ク ト リ サービ ス は、 環境内のネ ッ ト ワ ー ク エ ン テ ィ テ ィ (ユーザ、 サーバ、 プ リ ン タ な ど) の制御お よ び管理を集中化 し ます。 Open Client のデ ィ レ ク ト リ サービ ス を使用する ための条件 アプ リ ケーシ ョ ン において Open Client のデ ィ レ ク ト リ サービ ス を使 用す る には、 以下の条件をすべて満た さ なければな り ません。 • Open Client-Library (CT-Lib) 11.x 以上を使用 し て Adaptive Server デー タ ベース サーバにア ク セ ス し ます。 • Sybase がサポー ト し てい る デ ィ レ ク ト リ サービ ス プ ロ バ イ ダ ソ フ ト ウ ェ アお よ び Sybase か ら 提供 さ れ る デ ィ レ ク ト リ ド ラ イ バ を イ ン ス ト ール し 、 使用環境に合わせて正 し く 設定 し てお き ます。 オペレ ーティ ン グ シス テム によ っ て異なり ま すが、 サポート さ れて い る セ キ ュ リ テ ィ メ カ ニ ズ ム に は、 Windows レ ジ ス ト リ およ び Distributed Computing Environment Cell Directory Services(DCE/CDS) があ り ます。 Sybase 社が Open Client のデ ィ レ ク ト リ サービ ス を使用 し て動作 確認 し たデ ィ レ ク ト リ サー ビ ス プ ロ バ イ ダお よ びオペ レ ーテ ィ ン グ シ ス テ ム の詳細については、 Open Client のマニ ュ アルを参照 し て く だ さ い。 • デー タ ベース と の接続 PowerBuilder の外部の環境か ら Open Client 11.1.x 以上を使用 し て 安全な Adaptive Server にア ク セ ス で き なければな り ません。 93 Open Client のデ ィ レ ク ト リ サービ スの使い方 接続を確認す る には、 ISQL ま たは SQL Advantage な ど の ツールを 使用 し て、 サーバに接続 し デー タ ベー ス に ロ グ イ ン で き る か ど う か を チ ェ ッ ク し ま す。 こ の際、 接続パ ラ メ ー タ お よ びデ ィ レ ク ト リ サービ ス オプシ ョ ンには、 PowerBuilder アプ リ ケーシ ョ ン で使 用す る 予定の値 と 同 じ 値を指定 し ます。 • デー タ ベース のア ク セ ス には ASE ま たは SYC Adaptive Server イ ン タ フ ェース を使用 し ます。 • デー タ ベース プ ロ フ ァ イ ル ま たは PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト にサーバ名を指定す る 際には、 デ ィ レ ク ト リ サービ ス プ ロ バ イ ダ に要求 さ れて い る 構文 を 使用 し な ければな り ま せん。 各プ ロ バ イ ダには、 デ ィ レ ク ト リ エ ン ト リ 名を指定す る 形式に基 づいた構文を それぞれ使用す る 必要があ り ます。 各デ ィ レ ク ト リ サービ ス プ ロ バ イ ダの詳細 と 例については、 次の 「Open Client のデ ィ レ ク ト リ サービ ス を使用す る 場合のサーバ名 の指定」 を参照 し て く だ さ い。 • アプ リ ケーシ ョ ンが Open Client CT-Lib ソ フ ト ウ ェ アの適切なバー ジ ョ ン を利用で き る よ う に、 Release DBParm を 11 以上に設定 し て お き ます。 設定手順については、 オ ン ラ イ ン ヘルプの 「Release デー タ ベース パ ラ メ ー タ 」 を参照 し て く だ さ い。 • 使用する ディ レク ト リ サービス プロ バイ ダおよ びド ラ イ バは、DBParm が要求す る サービ ス をサポー ト し ていなければな り ません。 Open Client のデ ィ レ ク ト リ サービ ス を使用する場合のサーバ名の指定 PowerBuilder アプ リ ケーシ ョ ン で Open Client のデ ィ レ ク ト リ サービ ス を使用す る 場合、 デー タ ベース プ ロ フ ァ イ ル ま たは PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト でサーバ名 を 指定す る 際に、 デ ィ レ ク ト リ サービ ス プ ロ バ イ ダが要求す る 構文を使用 し なければな り ません。 各デ ィ レ ク ト リ サービ ス プ ロ バ イ ダには、 デ ィ レ ク ト リ エ ン ト リ 名 を 指定す る 形式に基づいた構文を それぞれ使用す る 必要が あ り ま す。 デ ィ レ ク ト リ のエ ン ト リ 名は、 完全修飾名の場合や、 Open Client/Open Server™ 設定ユーテ ィ リ テ ィ で指定 し たデフ ォ ル ト の (ア ク テ ィ ブな) Directory Information Tree ベース (DIT ベース) に対す る 相対名の場合 があ り ます。 94 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 DIT ベース はデ ィ レ ク ト リ 検索の開始 ノ ー ド にな り ます。 DIT ベー ス を指定す る こ と は、 MS-DOS フ ァ イ ル シ ス テ ム で現行の作業デ ィ レ ク ト リ を 設定す る こ と と ほぼ同 じ です。 DS_DitBase DBParm を 使 う と 、 デフ ォ ル ト 以外の DIT ベース を指定す る こ と がで き ます。 手順につい ては、 オ ン ラ イ ン ヘルプの 「DS_DitBase」 を参照 し て く だ さ い。 Windows レ ジ ス ト リ のサーバ名の例 次の例は、 デ ィ レ ク ト リ サービ ス プ ロ バ イ ダに Windows レ ジ ス ト リ を使用す る 場合にサーバ名を指定す る 構文を示 し ます。 ノード名 :SALES:software\sybase\server\SYS12 DIT ベース :SALES:software\sybase\server サーバ名 :SYS12 ❖ デー タ ベース プ ロ フ ァ イルにサーバ名を指定する • DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [接続] タ ブにあ る [サーバ] ボ ッ ク ス に次の よ う に入力 し ま す。 サーバ名 を 円記号 (\) で始めてはな り ません。 SYS12 ❖ PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト にサーバ名を指定する • 次の よ う に入力 し ます。 サーバ名を円記号 (\) で始めてはな り ま せん。 SQLCA.ServerName = "SYS12" デー タ ベース プ ロ フ ァ イ ルの [サーバ] ボ ッ ク ス に値を指定 し た 場合、こ の構文は DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブに表示 さ れ ま す。 こ の構文を [プ レ ビ ュ ー] タ ブ か ら ス ク リ プ ト に コ ピー し ます。 次の例は、 デ ィ レ ク ト リ サービ ス プ ロ バ イ ダに DCE/CDS (Distributed Computing Environment Cell Directory Service) を使用す る 場合にサーバ 名を指定す る 構文を示 し ます。 DCE/CDS のサーバ名 の例 ノード名 :/.../boston.sales/dataservers/sybase/SYS12 DIT ベース :/../boston.sales/dataservers サーバ名 :sybase/SYS12 ❖ デー タ ベース プ ロ フ ァ イルにサーバ名を指定する • DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [接続] タ ブにあ る [サーバ] ボ ッ ク ス に次の よ う に入力 し ま す。 サーバ名 を ス ラ ッ シ ュ (/) で始めてはな り ません。 sybase/SYS12 デー タ ベース と の接続 95 Adaptive Server ス ト ア ド プ ロ シージ ャ における PRINT 文の使い方 ❖ PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト にサーバ名を指定する • 次の よ う に入力 し ます。 サーバ名を CN= で始めてはな り ません。 SQLCA.ServerName = "SYS12" デー タ ベース プ ロ フ ァ イ ルの [サーバ] ボ ッ ク ス に値を指定 し た 場合、こ の構文は DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブに表示 さ れ ま す。 こ の構文を [プ レ ビ ュ ー] タ ブ か ら ス ク リ プ ト に コ ピー し ます。 デ ィ レ ク ト リ サービ スの DBParm パラ メ ー タ 93 ページの「Open Client のデ ィ レ ク ト リ サービ ス を使用す る ための条 件」を満た し ていれば、接続用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス ま たは PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト 内でセ キ ュ リ テ ィ サービ ス の DBParm を設定す る こ と がで き ます。 以下の DBParm は、 Open Client 11.1.x 以上のデ ィ レ ク ト リ サービ ス の 接続パ ラ メ ー タ に相当 し ます。 DS_Alias DS_Copy DS_DitBase DS_Failover DS_Password (Open Client 12.5 以上) DS_Principal DS_Provider DS_TimeLimit こ れ ら の DBParm の設定手順については、 オ ン ラ イ ン ヘルプでそれぞ れのパ ラ メ ー タ の説明を参照 し て く だ さ い。 Adaptive Server ス ト ア ド プ ロ シージ ャ における PRINT 文の使い方 ASE ま たは SYC Adaptive Server デー タ ベース イ ン タ フ ェ ース に よ り 、 デバ ッ グ用の ス ト ア ド プ ロ シージ ャ で PRINT 文を使用で き ます。 96 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 つま り 、ASE ま たは SYC イ ン タ フ ェース を介 し てデー タ ベース にア ク セ ス す る 際にデー タ ベー ス ト レ ー ス を オ ン に し た場合、 PRINT メ ッ セージが ト レース ロ グに表示 さ れ ますが、 エ ラ ーを返 し た り 、 残 り の ス ト ア ド プ ロ シージ ャ を キ ャ ン セル し た り し ません。 デー タ ベース間の結合に基づ く デー タ ウ ィ ン ド ウの作成 異種デー タ ベー ス間の結合に基づいてデー タ ウ ィ ン ド ウ を作成す る 機 能は、 Adaptive Server の コ ン ポーネ ン ト 総合サービ ス を使用す る こ と に よ っ て利用で き ま す。 コ ン ポーネ ン ト 総合サー ビ ス を使用す る と 、 複数の異種 リ モー ト デー タ ベース サーバに接続 し 、それ ら のサーバ上 に位置す る テーブル を 参照す る 複数のプ ロ キ シ テーブル を 定義で き ます。 プ ロ キ シ テーブルの作成方法については、 Adaptive Server のマニ ュ ア ルを参照 し て く だ さ い。 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シー ジ ャ のイ ン ス ト ール こ の節では、Sybase 社が提供す る SQL ス ク リ プ ト を実行 し て、Adaptive Server Enterprise デー タ ベー ス に PowerBuilder ス ト ア ド プ ロ シージ ャ を イ ン ス ト ールす る 方法について解説 し ます。 Sybase で は、 Adaptive Server (ASE ま た は SYC DBMS 識別子) ネ イ ティ ブ データ ベース イ ン タ フ ェ ース を 経由し て、初めて Adaptive Server デー タ ベー ス に接続す る 前に、 PowerBuilder の外部の環境で こ れ ら の ス ク リ プ ト を 実行す る こ と を 推奨 し て い ま す。 デー タ ベー ス イ ン タ フ ェース は、 こ れ ら の ス ク リ プ ト に よ っ て作成 さ れた PowerBuilder ス ト ア ド プ ロ シージ ャ を使用 し な く て も 動作 し ますが、 すべての機能を 使用す る には こ の ス ト ア ド プ ロ シージ ャ が必要にな り ます。 デー タ ベース と の接続 97 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シージ ャのイ ン ス ト ール PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト と は ? 必要な操作 PowerBuilder で Adaptive Server デ ー タ ベ ー ス を 操 作 す る た め に は、 PowerBuilder か ら Adaptive Server に初めて接続す る 前に、 ユーザ ま た はシ ス テ ム管理者が、 デー タ ベース に ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し ます。 PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト は 1 つのデー タ ベース サーバに対 し て 1 つだけ を、 PowerBuilder のセ ッ シ ョ ン の前に実行 し ま す。 サ ポ ー ト し て い る い ず れ か の プ ラ ッ ト フ ォ ー ム 上 の PowerBuilder で接続す る 前に、Adaptive Server に PowerBuilder ス ト ア ド プ ロ シージ ャ をすでに イ ン ス ト ール し てい る 場合には、 別のプ ラ ッ ト フ ォ ーム 上の PowerBuilder で接続す る と き で も 、 ス ト ア ド プ ロ シー ジ ャ を も う 一度 イ ン ス ト ールす る 必要はあ り ません。 PowerBuilder ス ト ア ド プ ロ シージ ャ ス ト ア ド プ ロ シージ ャ と は、デー タ ベース処理を実行す る SQL 文を あ ら か じ め コ ンパ イ ル し 、 最適化 し た も のです。 ス ト ア ド プ ロ シージ ャ はデー タ ベース サーバ上に イ ン ス ト ール し てお き 、 ク ラ イ ア ン ト マシ ン か ら 必要に応 じ て ア ク セ ス し ます。 PowerBuilder は、 こ れ ら の ス ト ア ド プ ロ シージ ャ を使用 し て、Adaptive Server シ ス テ ム カ タ ロ グか ら テーブルやカ ラ ム についての情報を取得 し ます (PowerBuilder ス ト ア ド プ ロ シージ ャ は、 ユーザがデー タ ベー ス上に作成す る ス ト ア ド プ ロ シージ ャ と は異な り ます)。 SQL ス ク リ プ ト PowerBuilder は、 必要な ス ト ア ド プ ロ シージ ャ を sybsystemprocs デー タ ベース に イ ン ス ト ールす る ために、 SQL ス ク リ プ ト フ ァ イ ルを提供 し てい ます。 スク リプ ト PBSYC.SQL PBSYC2.SQL ス ク リ プ ト の保存場所 対象 Adaptive Server デー タ ベース Select Tables リ ス ト を制限 し た状態の Adaptive Server デー タ ベース ス ト ア ド プ ロ シージ ャ ス ク リ プ ト は、PowerBuilder CD-ROM の Server デ ィ レ ク ト リ に保存 さ れてい ます。 Server デ ィ レ ク ト リ には、 PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム か ら は イ ン ス ト ール さ れない サーバ サ イ ド イ ン ス ト ール コ ン ポーネ ン ト が格納 さ れてい ます。 PBSYC.SQL ス ク リ プ ト 動作内容 98 PBSYC.SQL ス ク リ プ ト は、 Adaptive Server の sybsystemprocs デー タ ベー ス 上で PowerBuilder と 同 じ バージ ョ ン に対応す る ス ト ア ド プ ロ シージ ャ を上書 き し てか ら 、 こ れを再び作成 し ます。 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 PBSYC.SQL ス ク リ プ ト は、sybsystemprocs デー タ ベース に PowerBuilder ス ト ア ド プ ロ シージ ャ を格納 し ます。 こ のデー タ ベー ス は、 Adaptive Server を イ ン ス ト ールす る と き に作成 さ れ ます。 実行する タ イ ミ ング ASE ま たは SYC DBMS 識別子を使用 し て PowerBuilder か ら Adaptive Server デー タ ベー ス に初めて接続す る 前に、 ユーザ ま たはシ ス テ ム管 理者が、 デー タ ベース サーバご と に PBSYC.SQL ス ク リ プ ト を 1 回実 行 し て、 sybsystemprocs デー タ ベー ス に ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し ます。 サ イ ト のサーバが PowerBuilder か ら 、 ま たはアプ リ ケーシ ョ ン の配布 先マシ ン か ら ア ク セ ス さ れ る 場合、 PBSYC.SQL を実行 し ます。 ユーザま たはデータ ベース 管理者が、現行のバージョ ン の PBSYC.SQL をすでに実行 し て、 サーバの sybsystemprocs デー タ ベース に PowerBuilder ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し てい る 場合、 ス ク リ プ ト を再び実行 し て、 ス ト ア ド プ ロ シージ ャ を イ ン ス ト ール し 直す必要はあ り ません。 PBSYC.SQL を実行す る 手順については、 101 ページの 「ス ク リ プ ト の 実行方法」 を参照 し て く だ さ い。 作成 さ れる ス ト ア ド プ ロ シージ ャ PBSYC.SQL ス ク リ プ ト に よ っ て、 以下に示す PowerBuilder ス ト ア ド プ ロ シージ ャ が Adaptive Server の sybsystemprocs デー タ ベー ス に作成 さ れ ます。 プ ロ シージ ャ は、 作成 さ れ る 順に一覧 さ れてい ます。 PBSYC.SQL ス ト ア ド プ ロ シージ ャ sp_pb110column sp_pb110pkcheck sp_pb110fktable sp_pb110procdesc sp_pb110proclist sp_pb110text デー タ ベース と の接続 動作内容 テーブルのカ ラ ムの リ ス ト を表示する テーブルに主キーがあ る か ど う か を確認する 現行テーブル を参照す る テーブルの リ ス ト を 表示 する 指定 し た ス ト ア ド プ ロ シージ ャ の引数 リ ス ト の説 明を取得する 使用可能な ス ト ア ド プ ロ シージ ャ と 拡張 ス ト ア ド プ ロ シージ ャ を一覧表示する SystemProcs DBParm パ ラ メ ー タ が、1 ま たは Yes(デ フ ォ ル ト ) に設定 さ れてい る 場合、 sp_pb110proclist に よ っ てシ ス テ ム ス ト ア ド プ ロ シージ ャ と ユーザ 定義 ス ト ア ド プ ロ シージ ャ の両方が表示 さ れ る 。 SystemProcs が 0 ま たは No に設定 さ れてい る 場合 は、sp_pb110proclist に よ っ てユーザ定義ス ト ア ド プ ロ シージ ャ だけが表示 さ れ る SYSCOMMENTS テ ー ブ ル か ら ス ト ア ド プ ロ シ ー ジ ャ のテ キ ス ト を取得する 99 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シージ ャのイ ン ス ト ール PBSYC.SQL ス ト ア ド プ ロ シージ ャ sp_pb110table sp_pb110index 動作内容 現行のユーザが権限を持た ないテーブル も 含めて、 デー タ ベー ス 内のすべて の テーブルについ て の情 報を取得す る PBSYC.SQL はデフ ォ ル ト の sp_pb110table を含んで い る 。テーブルの リ ス ト をユーザが SELECT 権限を 持つテーブルに制限す る sp_pb110table に置 き 換え る には、 次の 「PBSYC2.SQL ス ク リ プ ト 」 で解説す る PBSYC2.SQL ス ク リ プ ト を実行す る 指定 し た テーブルに対応す る すべて の イ ン デ ッ ク ス についての情報を取得す る PBSYC2.SQL ス ク リ プ ト 動作内容 PBSYC2.SQL ス ク リ プ ト は、 Adaptive Server の sybsystemprocs デー タ ベー ス 上に あ る 既存の sp_pb110table PowerBuilder ス ト ア ド プ ロ シー ジ ャ を削除 し てか ら 、 こ れを再び作成 し ます。 デフ ォ ル ト の sp_pb110table は PBSYC.SQL ス ク リ プ ト に よ っ て イ ン ス ト ール さ れ ます。 PowerBuilder は、 こ の sp_pb110table プ ロ シージ ャ を 使用 し て、デー タ ベース内のすべてのテーブルの リ ス ト を作成 し ます。 こ の リ ス ト には、 ユーザが権限を持た ないテーブル も あ り ま す。 こ の リ ス ト は、 PowerBuilder のテーブルの選択 ダ イ ア ロ グボ ッ ク ス に表示 さ れ ます。 セ キ ュ リ テ ィ 上の理由で、 テーブル リ ス ト の表示を、 ユーザが権限を 持つテーブルに限っ て行 う こ と が望ま れ る 場合があ り ます。 こ のため には、 PBSYC.SQL を実行 し た後で、 PBSYC2.SQL ス ク リ プ ト を実行 し ま す。 PBSYC2.SQL に よ っ て デ フ ォ ル ト の sp_pb110table が 新 し い sp_pb110table に置 き 換わ り 、 以下のテーブル と ビ ュ ーだけに限定 さ れ たテーブル リ ス ト が表示 さ れます。 実行する タ イ ミ ング 100 • 現行ユーザが所有す る テーブルやビ ュ ー • 現行ユーザが SELECT 権限を持つテーブルやビ ュ ー • 現行ユーザのグループが SELECT 権限を持つテーブルやビ ュ ー • SELECT 権限が PUBLIC に与え ら れてい る テーブルやビ ュ ー ASE ま たは SYC DBMS 識別子を使用 し て PowerBuilder か ら Adaptive Server にア ク セス する 場合、データ ベース サーバご と に PBSYC.SQL を 最初に 1 回実行し て、sybsystemprocs データ ベース に必要な PowerBuilder ス ト ア ド プ ロ シージ ャ を イ ン ス ト ールす る 必要があ り ます。 PowerBuilder 第7章 Adaptive Server Enterprise の使い方 PBSYC.SQL を 実行し た後、 sp_pb110table を 置き 換えて、 テーブルリ ス ト を 、ユーザが SELECT 権限を 持つテーブルに限定する には、PBSYC2.SQL を 実行し ま す。 テーブル リ ス ト を限定す る 必要がない場合は、 PBSYC2.SQL を実行す る 必要はあ り ません。 PBSYC2.SQL を実行す る 手順については、 101 ページの 「ス ク リ プ ト の実行方法」 を参照 し て く だ さ い。 PBSYC2.SQL ス ク リ プ ト に よ っ て、 以下に示す PowerBuilder ス ト ア ド プ ロ シージ ャ が Adaptive Server の sybsystemprocs デー タ ベー ス に作成 さ れ ます。 作成 さ れる ス ト ア ド プ ロ シージ ャ PBSYC2.SQL ス ト ア ド プロ シージ ャ sp_pb110table 動作内容 現行ユーザが SELECT 権限を持つ、デー タ ベース内のテー ブルについての情報を取得する こ のバージ ョ ンの sp_pb110table は、 PBSYC.SQL ス ク リ プ ト によ っ てイ ン ス ト ールさ れる デフ ォ ルト の sp_pb110table を置 き 換え る ス ク リ プ ト の実行方法 ISQL ま たは SQL Advantage ツールを使用すれば、 PowerBuilder の外部 の環境で ス ク リ プ ト を実行で き ます。 ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を実行する ISQL の使い方 ISQL は、 Open Client ソ フ ト ウ ェ ア と と も に提供 さ れ る 対話型の SQL ユーテ ィ リ テ ィ で、 Windows ベース のオペレーテ ィ ン グ シ ス テ ム上で 稼働 し ま す。 ISQL が イ ン ス ト ール さ れて い る 場合は、 以下の手順で PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を実行 し ます。 ISQL の使い方の詳細については、 Open Client のマニ ュ アルを参照 し て く だ さ い。 ❖ PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を実行する ために ISQL を 使用する 1 デー タ ベース と の接続 シ ス テ ム管理者 と し て sybsystemprocs Adaptive Server デー タ ベース に接続 し ます。 101 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シージ ャのイ ン ス ト ール 2 実行す る PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト が入っ て い る 以下のいずれかの フ ァ イ ルを開 き ます。 PBSYC.SQL PBSYC2.SQL 3 ユーザ ID (sa)、 サーバ名 (servername)、 そ し てオプシ ョ ン と し て パ ス ワ ー ド (password) を 指定 し た ISQL コ マ ン ド を 実行 し ま す。 なお、 大文字 と 小文字は区別 さ れ る ので注意 し て く だ さ い。 isql -U sa -S SERVERNAME -i pathname -P { password } パラ メ ー タ sa SERVERNAME pathname password 説明 シ ス テ ム管理者のユーザ ID を指定。 こ のユーザ ID は、 変更 し ない Adaptive Server デー タ ベース が稼働 し てい る マシ ンの名前を指定 実行す る SQL ス ク リ プ ト のパ ス 名を ド ラ イ ブ名 か ら 指定 (オプシ ョ ン) sa (シ ス テ ム管理者) ユーザ ID の パ ス ワ ー ド を指定。Adaptive Server Enterprise を イ ン ス ト ールす る と 、 デフ ォ ル ト では、 パ ス ワ ー ド を 持た な い sa ユーザ ID が作成 さ れ る 。 イ ン ス ト ールの際に sa のパ ス ワ ー ド を 変更 し た 場合 は、 そのパ ス ワ ー ド を password に置 き 換え る た と えば、 PowerBuilder を使用 し 、 製品 CD-ROM の ス ト ア ド プ ロ シージ ャ ス ク リ プ ト にア ク セ ス し てい る 場合、 以下のいずれかの コ マ ン ド を入力 し ます (CD-ROM ド ラ イ ブ を D ド ラ イ ブ と し てい ます)。 isql -U sa -S TESTDB -i d:\server\pbsyb.sql -P isql -U sa -S SALES -i d:\server\pbsyc.sql -P adminpwd ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を実行する SQL Advantage の使い方 SQL Advantage は、 Open Client ソ フ ト ウ ェ ア と と も に提供 さ れ る 対話 型の SQL ユーテ ィ リ テ ィ で、 Windows ベー ス のオペ レーテ ィ ン グ シ ス テ ム上で稼働 し ま す。 SQL Advantage が イ ン ス ト ール さ れてい る 場 合は、以下の手順で PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を 実行 し ます。 SQL Advantage の使い方の詳細については、 Open Client のマニ ュ アル を参照 し て く だ さ い。 102 PowerBuilder 第7章 ❖ Adaptive Server Enterprise の使い方 PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト を実行する ために SQL Advantage を使用する 1 SQL Advantage ユーテ ィ リ テ ィ を起動 し ます。 2 シ ス テ ム管理者 と し て sybsystemprocs Adaptive Server デー タ ベース に接続 し ます。 3 実行す る PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト が入っ て い る 以下のいずれかの フ ァ イ ルを開 き ます。 PBSYC.SQL PBSYC2.SQL 4 各ス ク リ プ ト の先頭にあ る use sybsystemprocs コ マ ン ド 、 ま たは go コ マ ン ド を削除 し ます。 SQL Advantage では、use sybsystemprocs コ マ ン ド は単独で実行 し ま す。 実際には、 ス テ ッ プ 2 で sybsystemprocs デー タ ベース と の接続 を開 く と き に、use sybsystemprocs コ マ ン ド が実行 さ れてい ます。こ のため、 こ の コ マ ン ド が ス ト ア ド プ ロ シージ ャ ス ク リ プ ト に よ っ て再び実行 さ れない よ う に し ます。 ス ト ア ド プ ロ シージ ャ を正 し く イ ン ス ト ールす る ためには、 ス ク リ プ ト を実行す る 前に、 PowerBuilder ス ト ア ド プ ロ シージ ャ ス ク リ プ ト の先頭か ら 、 以下の表に示す行を削除す る 必要があ り ます。 実行する ス ク リ プ ト PBSYC.SQL 削除する コ マ ン ド use sybsystemprocs go PBSYC2.SQL use sybsystemprocs go デー タ ベース と の接続 5 SQL ス ク リ プ ト 内のすべての文を実行 し ます。 6 SQL Advantage セ ッ シ ョ ン を終了 し ます。 103 Adaptive Server デー タ ベースにおける ス ト ア ド プ ロ シージ ャのイ ン ス ト ール 104 PowerBuilder 第 8 章 Informix の使い方 こ の章について こ の章では、 PowerBuilder においてネ イ テ ィ ブ IBM Informix デー タ ベース イ ン タ フ ェ ース を使用す る 方法について解説 し ます。 内容 項目 サポー ト し てい る Informix のバージ ョ ン サポー ト し てい る Informix デー タ 型 I10 イ ン タ フ ェース でサポー ト し てい る 機能 Informix の基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト Informix デー タ ベース を使用す る ための準備 Informix デー タ ベース イ ン タ フ ェ ース の定義 PowerBuilder ス ク リ プ ト でのシ リ アル値へのア ク セ ス ページ 105 106 108 113 114 116 117 サポー ト し ている Informix のバージ ョ ン PowerBuilder IN9 お よ び I10 のネ イ テ ィ ブ Informix デー タ ベー ス イ ン タ フ ェ ース を使用す る と 、 IBM Informix Dynamic Server (IDS) デー タ ベー ス バー ジ ョ ン 9.x 以降に ア ク セ ス で き ま す。 ま た、 Informix OnLine お よ び Informix Standard Engine (SE) デー タ ベー ス に も ア ク セ ス で き ます。 PBIN9110.DLL の IN9 イ ン タ フ ェ ース を使用す る には、Informix ア プ リ ケーシ ョ ン開発用の Informix Client SDK 2.8.1 以降、 お よ び実 行時配布用の Informix Connect 2.9 が必要です。 PBI10110.DLL の I10 イ ン タ フ ェース を使用す る には、 Informix ア プ リ ケーシ ョ ン開発用の Informix Client SDK 2.9 以降、お よ び実行 時配布用の Informix Connect 2.9 以降が必要です。 制限事項 単一の PowerBuilder セ ッ シ ョ ン で、 IN9 イ ン タ フ ェース と I10 イ ン タ フ ェ ース の両方を使用す る こ と はで き ません。 デー タ ベース と の接続 105 サポー ト し ている Informix デー タ 型 Informix デー タ ベース を使用 し ての PowerBuilder の使用方法の最新情 報の詳細については、 Sybase Support Web のサイ ト http://www.sybase.com/detail?id=47934 を参照 し て く だ さ い。 サポー ト し ている Informix デー タ 型 Informix デー タ ベース イ ン タ フ ェース は、 デー タ ウ ィ ン ド ウ オブジ ェ ク ト と 埋め込み SQL におい て、 表 8-1 に示す Informix デー タ 型 を サ ポー ト し ます。 表 8-1: サポー ト し ている Informix デー タ 型 Blob LVarChar Boolean Money NChar Byte (最大 2^31 バ イ ト ) Char NVarChar Clob Real Date Serial DateTime Serial8 Decimal SmallInt (2 バ イ ト ) Float Text (最大 2^31 バ イ ト ) Int8 Time Integer (4 バ イ ト ) Interval VarChar (1 ~ 255 バ イ ト ) デー タ 型の変換 カ ラ ム の検索や更新処理 を す る 際、 Informix デー タ 型 と PowerScript データ 型の間で適宜、 データ 変換が行われま す。 し かし 、 同様の名前、 ま たは同一の名前を 持つ Informix データ 型と PowerScript データ 型であっ ても 、 必ずし も 同じ 定義を 持つと は限ら ない ので、 注意し てく ださ い。 PowerScript デー タ 型の定義については、『PowerScript リ フ ァ レ ン ス』 マ ニ ュ アルを参照 し て く だ さ い。 106 PowerBuilder 第8章 Informix の使い方 Informix の DateTime デー タ 型 DateTime デー タ 型は、 任意の日付 と 時刻の格納に使用 し ますが、 その 用途に合わせて精度を指定で き ます。 DateTime デー タ 型を定義す る 場 合は、 時間を表す連続 し たボ ッ ク ス の う ち、 最大精度 と 最少制度を修 飾子で指定 し ます。 以下に構文を示 し ます。 DATETIME largest_qualifier TO smallest_qualifier PowerBuilder におけ る 修飾子のデフ ォ ル ト は Year TO Fraction(5) です。 修飾子の一覧については、 Informix のマニ ュ アルを参照 し て く だ さ い。 ❖ 独自の DateTime デー タ 型を作成する 1 デー タ ベース ペ イ ン タ の [テーブルの選択] で、 DateTime カ ラ ム を伴 う テーブルを作成 し ます。 テーブルの詳 し い作成手順につい ては、 『ユーザーズ ガ イ ド 』 マ ニ ュ アルを参照 し て く だ さ い。 2 カ ラ ム ビ ュ ーで、 [オブジ ェ ク ト ] ま たはポ ッ プア ッ プ メ ニ ュ ー か ら [処理前の構文] を選択 し ます。 カ ラ ム ビ ュ ーに、 テーブル定義に加え ら れた保留中の変更が表示 さ れ ます。 こ れ ら の変更は、 [保存] ボ タ ン を ク リ ッ ク し て テーブ ル定義を保存す る と き に限っ て実行 さ れ ます。 3 [編集] ま たはポッ プアッ プ メ ニュ ーから [コ ピ ー] を 選択する か、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 SQL 構文 (ま たは選択 し た部分) が ク リ ッ プボー ド に コ ピー さ れ ます。 4 ISQL セ ッ シ ョ ン ビ ュ ーで、 DateTime の構文を修正 し 、 CREATE TABLE 文を実行 し ます。 ISQL セ ッ シ ョ ン ビ ュ ーの詳 し い使い方については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 Informix の Time デー タ 型 Informix デー タ ベース イ ン タ フ ェース は、 Time (時刻) デー タ 型 も サ ポー ト し ます。 Time デー タ 型は、 DateTime デー タ 型のサブセ ッ ト に相 当 し ます。 Time デー タ 型では、 時刻の修飾子フ ィ ール ド だけ を使用 し ます。 デー タ ベース と の接続 107 I10 イ ン タ フ ェ ースでサポー ト し ている機能 Informix の Interval デー タ 型 Interval (時間隔) デー タ 型は、 あ る 時間の値、 ま たは継続時間を表す 時間の長 さ を格納 し ます。 以下に構文を示 し ます。 INTERVAL largest_qualifier TO smallest_qualifier PowerBuilder でのデフ ォ ル ト は Day(3) TO Day です。 Interval デー タ 型の詳細については、 Informix のマニ ュ アルを参照 し て く だ さ い。 I10 イ ン タ フ ェ ース でサポー ト し ている機能 I10 イ ン タ フ ェ ース は、 IN9 イ ン タ フ ェ ース を使用 し てい る 場合には使 用で き ない、 い く つかの機能を サポー ト し ま す。 こ れ ら の機能の一部 には、Informix Dynamic Server デー タ ベース の特定のバージ ョ ンが必要 です。 Unicode デー タ へのア ク セス PowerBuilder は、 IN9 イ ン タ フ ェース を使用 し て、 ANSI/DBCS デー タ ベー ス のデー タ に対す る 接続、 保存、 お よ び検索を行 う こ と がで き ま すが、 IN9 イ ン タ フ ェ ー ス は Unicode デー タ ベー ス を サポー ト し てい ません。 Informix I10 イ ン タ フ ェ ー ス は、 ANSI/DBCS デー タ ベー ス お よ び Unicode デー タ ベース をサポー ト し てい ます。 I10 ネ イ テ ィ ブ イ ン タ フ ェ ース では、 広域言語サポー ト (GLS: Global Language Support) を目的 と し て、Informix GLS API を使用 し てい ます。 ネ イ テ ィ ブ イ ン タ フ ェ ース は、 次の 3 つの DBParms を使用 し て、 現行 接続で使用す る ロ ケールを設定 し ます。 • Client_Locale • DB_Locale • StrByCharset こ れ ら のパ ラ メ ー タ は、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [地域の設定] タ ブ ページで設定で き ます。 Client_Locale Client_Locale は、 Informix 環境変数 CLIENT_LOCALE の値を指定 し ま す。 書式は language_territory.codeset です。 次に例を示 し ます。 Client_Locale='en_us.1252' 108 PowerBuilder 第8章 Informix の使い方 Client_Locale='en_us.utf8' Client_Locale='ja_jp.utf8' I10 イ ン タ フ ェ ース は、こ の設定を使用 し て Informix デー タ ベース の文 字列デー タ にア ク セ ス し 、 SQL 文を処理 し ます。 DBParm を設定 し な い場合、 デフ ォ ル ト の ロ ケール値は OS の ロ ケールに基づ き ます。 DB_Locale DB_Locale は、 Informix 環境変数 DB_LOCALE の値を指定 し ます。 形 式は language_territory.codeset です。 次に例を示 し ます。 DB_Locale='en_us.1252' DB_Locale='en_us.utf8' DB_Locale='ja_jp.utf8' DB_LOCALE は、 デー タ ベー ス サーバが特定のデー タ ベー ス での ロ ケールに依存 し たデー タ 型の解釈に必要な、 言語、 地域、 お よ び コ ー ド セ ッ ト を指定 し ます。こ れ ら のデー タ 型には、 NChar お よ び NVarChar な ど が あ り ま す。 DB_LOCALE に指定 さ れた コ ー ド セ ッ ト を 使用 し て、 すべての文字カ ラ ム の文字、 ま たはデー タ ベー ス、 テーブル、 カ ラ ム、 ビ ュ ーな どデー タ ベース オブジ ェ ク ト の名前が有効か ど う か を 判 断 し ま す。 DBParm を 設 定 し な い 場 合、 I10 イ ン タ フ ェ ー ス は、 DB_LOCALE の値は CLIENT_LOCALE の値 と 同一 と みな し ます。 CLIENT_LOCALE 環境変数お よ び DB_LOCALE 環境変数は、 Informix デー タ ベー ス イ ン タ フ ェ ー ス 用 の Utilities フ ォ ル ダ で 使用 で き る Informix Setnet32 ユーテ ィ リ テ ィ を使用 し て、 デー タ ベー ス ペ イ ン タ のオブジ ェ ク ト ビ ュ ーま たは DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス で 直接設定で き ます。 Informix の CLIENT_LOCALE 環境変数お よ び DB_LOCALE 環境変数 の詳細については、 Informix library Web のサイ ト http://publib.boulder.ibm.com/epubs/pdf/b8886700.pdf の 『IBM Informix GLS ユーザーズガ イ ド 』 を参照 し て く だ さ い。 StrByCharset デー タ ベース と の接続 StrByCharset DBParm は、 PowerBuilder Unicode 文字列 と Informix ク ラ イ ア ン ト のマルチバ イ ト 文字列 と の文字列デー タ の変換方法を指定 し ま す。 デ フ ォ ル ト では、 UTF-8 コ ー ド セ ッ ト の文字列変換は UTF-8 コ ー ド セ ッ ト に基づいて実行 さ れ、UTF-8 コ ー ド セ ッ ト 以外の文字列 変 換 は、 現 行 の OS の コ ー ド ペ ー ジ に 基 づ い て 実 行 さ れ ま す。 StrByCharset が 1 (true) に設定 さ れてい る 場合、文字列変換は、DBParm Client_Locale で指定 さ れた コ ー ド セ ッ ト に基づいて実行 さ れます。 109 I10 イ ン タ フ ェ ースでサポー ト し ている機能 PowerBuilder カ タ ログ テーブルへのオーナーの割 り 当て I10 イ ン タ フ ェ ー ス を 使 用 す る 場 合、 [シ ス テ ム] タ ブ ペ ー ジ の [PowerBuilder カ タ ロ グ テーブル オーナー](PBCatalogOwner DBParm) を使用 し て、 拡張属性シ ス テ ム テーブルにデフ ォ ル ト 以外のオーナー を割 り 当て る こ と がで き ます。 ANSI 準拠のデー タ ベース の場合、 指定 す る オーナー名は固有であ る 必要があ り ますが、 テーブル名は固有で あ る 必要はあ り ません。 異な る ユーザ名で始ま る カ タ ロ グ テーブルの 複数のセ ッ ト を作成で き ます。 ただ し 、 デー タ ベース が ANSI 準拠で ない場合は、 テーブル名は固有で あ る 必要があ り ま す。 つま り 、 オー ナー名が割 り 当て ら れた カ タ ロ グ テーブルのセ ッ ト を 1 つだけ作成す る こ と がで き ます。 長いオブ ジ ェ ク ト 名のサポー ト I10 イ ン タ フ ェ ース は、 128 文字ま での Informix の長いオブジ ェ ク ト 名 を サポー ト し ます。 イ ンデ ッ ク スの名前変更 IDS 9.2.1 以降では、 I10 イ ン タ フ ェ ース を使用 し て接続 し てい る 場合、 デー タ ベー ス ペ イ ン タ で イ ンデ ッ ク ス の名前を変更で き ます。 I10 イ ン タ フ ェース で IDS RENAME INDEX 文を使用 し て、 イ ンデ ッ ク ス の 名前を変更 し ます。 ほかの変更を行 う 場合は、 イ ンデ ッ ク ス を削除 し て再度作成す る 必要があ り ます。 SQL ス テー ト メ ン ト キ ャ ッ シ ュ IDS 9.2.1 以降では、デー タ ベース サーバは SQL ス テー ト メ ン ト キ ャ ッ シ ュ (SSC) を使用 し て、 ユーザのセ ッ シ ョ ンが終了す る ま で SQL ス テー ト メ ン ト を格納 し ます。ユーザが SQL ス テー ト メ ン ト キ ャ ッ シ ュ に格納 さ れてい る SQL ス テー ト メ ン ト を実行す る 場合、 デー タ ベース サーバは ス テー ト メ ン ト の解析お よ び最適化を再度行 う こ と はあ り ま せん。 その結果、 パ フ ォ ーマ ン ス が向上 し ます。 キ ャ ッ シ ュ に格納で き る のは、 SELECT 文、 UPDATE 文、 DELETE 文、 INSERT 文のみで、 こ れ ら の ス テー ト メ ン ト にユーザ定義のルーチン を含め る こ と はで き ま せん。 110 PowerBuilder 第8章 Informix の使い方 サーバのキ ャ ッ シ ュ を設定す る 方法は、 い く つかあ り ます。 SET STATEMENT CACHE 文は、 STMT_CACHE 環境変数お よ び STMT_CACHE 設定パ ラ メ ー タ よ り 優先 さ れ ます。 SET STATEMENT CACHE 文を正常に実行で き る よ う に、 事前に、 STMT_CACHE 設定パ ラ メ ー タ を設定す る か Informix onmode ユーテ ィ リ テ ィ を使用 し て、 SQL ス テー ト メ ン ト キ ャ ッ シ ュ を有効にす る 必要があ り ます。 I10 接続の、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [シ ス テ ム] タ ブ ページで [SQL ス テー ト メ ン ト キ ャ ッ シ ュ の有効化] (StmtCache DBParm) を設定 し て、 ク ラ イ ア ン ト での SQL ス テー ト メ ン ト キ ャ ッ シ ュ を オ ン ま たはオ フ に し ます。ただ し 、ク ラ イ ア ン ト か ら キ ャ ッ シ ュ にア ク セ ス す る 前に、 サーバで SQL ス テー ト メ ン ト キ ャ ッ シ ュ を サ ポー ト す る よ う に設定す る 必要があ り ます。 Informix SQL ス テー ト メ ン ト キ ャ ッ シ ュ の詳細については、 IBM Informix Dynamic Server パフ ォ ーマ ン ス ガ イ ド のサイ ト http://publib.boulder.ibm.com/epubs/pdf/b8886780.pdf を参照 し て く だ さ い。 ロ ッ ク せずに イ ンデ ッ ク スの作成 と 削除 IDS 10.0 以降では、 CREATE INDEX お よ び DROP INDEX の SQL 構文は ONLINE キー ワ ー ド を サポー ト し ます。 こ のキー ワ ー ド を使用す る と 、 デー タ ベー ス と そ の テーブルが継続的に使用可能な オ ン ラ イ ン 環境 で、 イ ンデ ッ ク ス の作成 と 削除を実行で き ます。 ONLINE キー ワー ド を 使用 し て イ ンデ ッ ク ス の作成 ま たは削除を実行 し た場合、 デー タ 定義 言語 (DDL) 処理は、 指定 し た イ ンデ ッ ク ス が定義 さ れた テーブルで 排他 ロ ッ ク を行わずに実行 し ます。 CREATE INDEX ONLINE を使用 し て、 ほかのユーザがア ク セ ス中のテー ブルで イ ンデ ッ ク ス を作成 し た場合、 ほかのユーザのテーブル更新が 終了す る ま で、 作成 し た イ ンデ ッ ク ス は有効にな り ません。 DROP INDEX ONLINE を発行 し て イ ンデ ッ ク ス を削除 し た場合、 ユーザ はその イ ンデ ッ ク ス を参照で き ませんが、同時デー タ 操作言語 (DML) 処理は、 処理が終了す る ま でその イ ンデ ッ ク ス を使用で き ます。 イ ン デ ッ ク ス の削除は、 すべてのユーザがその イ ンデ ッ ク ス の使用を終了 す る ま で延期 さ れ ます。 I10 接続の、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [シ ス テ ム] タ ブ ページ で [非 ク ラ ス タ 化 イ ン デ ッ ク ス の作成 ま たは削除の際に テーブルを ロ ッ ク し ない] (OnlineIndex 静的 DBParm) を設定 し て、 イ ンデ ッ ク ス を作成 し た り 削除 し た り す る 場合に、 デー タ ベース ペ イ ン タ が必ず ONLINE キー ワー ド を使用す る よ う に指定 し ます。 デー タ ベース と の接続 111 I10 イ ン タ フ ェ ースでサポー ト し ている機能 サポー ト さ れていない ク ラ ス タ 化イ ンデ ッ ク ス ク ラ ス タ 化 イ ンデ ッ ク ス は、 オ ン ラ イ ン モー ド を使用 し て作成で き ま せん。 こ れは、 IDS でサポー ト さ れていないためです。 カ ラ ム レ ベルの暗号化 IDS 10.0 以降では、SQL 文 SET ENCRYPTION PASSWORD を使用す る と 、 カ ラ ム レ ベルでデー タ を 暗号化お よ び復号化す る た めのパ ス ワ ー ド を定義 し た り 再設定 し た り す る こ と に よ っ て、 デー タ の機密性を向上 さ せ、 デー タ の整合性を サポー ト で き ます。 I10 接続の、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [シ ス テ ム] タ ブ ページ で [暗号化パ ス ワ ー ド ] (EncryptionPass DBParm) お よ び [ ヒ ン ト ] (Hint DBParm) を設定 し て、 パ ス ワー ド 、 お よ びパ ス ワ ー ド を 思 い 出す た め の ヒ ン ト を 指定 で き ま す。 ア プ リ ケ ー シ ョ ン で は Informix の組み込み関数を使用 し て、 文字デー タ の暗号化 と 復号化を 行い ます。 ユーザ定義ルーチ ン での複数の OUT パラ メ ー タ の使い方 ユーザ定義ルーチン (UDR) では、 OUT パ ラ メ ー タ は、 ポ イ ン タ を介 し て返 さ れた値に対応 し ます。 IDS バージ ョ ン 9.4 よ り 前では、 1 つの UDR での複数の OUT パ ラ メ ー タ はサポー ト し てい ませんで し た。 さ ら に、 OUT パ ラ メ ー タ は、 パ ラ メ ー タ リ ス ト の最後の項目 と し て登録 す る 必要があ り ま し た。 IDS バージ ョ ン 9.4 で こ の制限がな く な り 、 複 数の OUT パ ラ メ ー タ がサポー ト さ れ、 UDR のパ ラ メ ー タ リ ス ト の ど の位置で も 有効にな り ま し た。 こ の機能は、 I10 イ ン タ フ ェ ース を使用 す る 場合に有効にな り ます。 こ れに よ っ て、 UDR の定義におけ る 柔軟 性が向上 し 、 複数の戻 り 値が必要な コ ン テ キ ス ト に コ レ ク シ ョ ン変数 を返す必要がな く な り ま し た。 UDR か ら OUT パ ラ メ ー タ を返すには、 ス テー ト メ ン ト の ロ ーカル変 数 (SLV) を使用す る 必要があ り ます。 次の ス テー ト メ ン ト では、 UDR myfunc の OUT パ ラ メ ー タ が SLV 構文 slvname#out_param_type を使用 し て定義 さ れてい ます。 SELECT sales FROM mytable WHERE myfunc(10, sales#money) < 1000 112 PowerBuilder 第8章 Informix の使い方 Informix では、 EXECUTE 文 を 使用す る 、 OUT パ ラ メ ー タ を 指定 し た UDR の呼び出 し を サポー ト し てい ま せん。 し たが っ て、 複数の OUT パ ラ メ ー タ は、 PowerBuilder の リ モー ト プ ロ シージ ャ コ ール (RPC) お よ び埋め込み SQL EXECUTE PROCEDURE コ マ ン ド ではサポー ト さ れません。 Informix の基本ソ フ ト ウ ェ ア コ ンポーネ ン ト 図 8-1 は、 ネ イ テ ィ ブ Informix デー タ ベース イ ン タ フ ェース を使用 し て Informix デー タ ベース にア ク セ スす る ために必要な基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト を示 し てい ます。 デー タ ベース と の接続 113 Informix デー タ ベース を使用する ための準備 図 8-1: Informix 接続のコ ンポーネ ン ト Informix デー タ ベース を使用する ための準備 デー タ ベー ス イ ン タ フ ェ ー ス を 定義 し 、 PowerBuilder か ら Informix デー タ ベー ス に接続す る 前に、 以下の手順に従 っ て使用す る デー タ ベース を準備 し ます。 114 1 接続に必要なデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定 し ます。 2 ネ イ テ ィ ブ Informix IN9 ま たは I10 デー タ ベース イ ン タ フ ェ ース を イ ン ス ト ール し ます。 3 PowerBuilder の外部の環境で、 Informix サーバやデー タ ベース に接 続で き る こ と を確認 し ます。 PowerBuilder 第8章 Informix の使い方 Informix 用に必要なデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定す る 必要があ り ます。 ス テ ッ プ 1: デー タ ベース サーバのイ ン ス ト ール と 設定 ❖ デー タ ベース サーバ、 ネ ッ ト ワー ク、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定する 1 デー タ ベース プ ロ フ ァ イ ルに指定 さ れてい る サーバ上に、Informix デー タ ベー ス サーバ ソ フ ト ウ ェ アやデー タ ベー ス ネ ッ ト ワ ー ク ソ フ ト ウ ェ アが イ ン ス ト ール さ れ、 稼働 し てい る こ と を確認 し ま す。 Informix デー タ ベース サーバ ソ フ ト ウ ェ アやデー タ ベース ネ ッ ト ワー ク ソ フ ト ウ ェ ア を入手す る 必要があ り ます。 イ ン ス ト ールの手順については、Informix のマニ ュ アルを参照 し て く だ さ い。 2 PowerBuilder がイ ン ス ト ールさ れている 各ク ラ イ ア ン ト マシン に、 Informix ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 Informix Connect ま たは Informix Client SDK (Informix Connect を含 む) を イ ン ス ト ール し ます。 IBM 社の Informix ク ラ イ ア ン ト ソ フ ト ウ ェ ア を入手す る 必要があ り ます。 イ ン ス ト ールす る ク ラ イ ア ン ト ソ フ ト ウ ェ アが、 以下を すべてサポー ト し てい る こ と を確認 し ます。 ク ラ イ ア ン ト マシ ン上で稼働 し てい る オペレーテ ィ ン グ シ ス テム ア ク セ スす る デー タ ベース のバージ ョ ン 稼働 し てい る PowerBuilder のバージ ョ ン イ ン ス ト ールの手順については、Informix のマニ ュ アルを参照 し て く だ さ い。 3 自分のサ イ ト か ら Informix デー タ ベース サーバに接続で き る よ う に、 Informix ク ラ イ ア ン ト ソ フ ト ウ ェ アが正 し く 設定 さ れてい る こ と を確認 し ます。 SetNet32 ユーテ ィ リ テ ィ を実行 し て ク ラ イ ア ン ト の レ ジ ス ト リ の 値を設定 し ます。Informix Connect ク ラ イ ア ン ト ソ フ ト ウ ェ ア を設 定 す る と 、 HKEY_LOCAL_MACHINE\Software\Informix\SqlHosts に レ ジ ス ト リ エ ン ト リ が作成 さ れ ま す。 レ ジ ス ト リ エ ン ト リ に は、 ネ ッ ト ワ ー ク 構成、 ネ ッ ト ワ ー ク プ ロ ト コ ル、 環境変数を定 義す る パ ラ メ ー タ が格納 さ れてい ま す。 ネ イ テ ィ ブ Informix デー タ ベー ス イ ン タ フ ェ ー ス を 定義す る と き に、 デー タ ベー ス プ ロ フ ァ イ ルに こ れ ら の値を指定 し ない と 、 レ ジ ス ト リ エ ン ト リ に指 定 さ れてい る 値がデフ ォ ル ト 値 と し て適用 さ れ ます。 デー タ ベース と の接続 115 Informix デー タ ベース イ ン タ フ ェ ースの定義 Informix ク ラ イ ア ン ト ソ フ ト ウ ェ ア の設定の処理手順につい て は、 Informix のマニ ュ アルを参照 し て く だ さ い。 4 オペレーテ ィ ン グ シ ス テ ムの必要に応 じ て、 Informix ク ラ イ ア ン ト ソ フ ト ウ ェ アのデ ィ レ ク ト リ がシ ス テ ムパ ス にあ る こ と を確認 し ます。 ス テ ッ プ 2: デー タ ベース イ ン タ フ ェ ー スのイ ン ス ト ール PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 標準 イ ン ス ト ールを選択 す る か、 カ ス タ ム イ ン ス ト ールを選択 し た場合はネ イ テ ィ ブ Informix デー タ ベース イ ン タ フ ェ ース を選択 し て く だ さ い。 ス テ ッ プ 3: 接続の確 認 PowerBuilder の外部の環境で、 ア ク セ ス し たい Informix サーバやデー タ ベース に接続で き る こ と を確認 し ます。 接続を確認す る には、 デー タ ベー ス に接続す る (Informix ilogin.exe プ ロ グ ラ ム な ど の)Windows ベース のユーテ ィ リ テ ィ を使用 し ます。デー タ ベー ス に ア ク セ ス す る 場合は、 PowerBuilder のデー タ ベー ス プ ロ フ ァ イ ルで使用す る 予定の接続パ ラ メ ー タ と 同 じ 値の接続パ ラ メ ー タ を指定す る こ と をお勧め し ます。 ilogin.exe を使用す る 手順については、 Informix のマ ニ ュ アル を参照 し て く だ さ い。 Informix デー タ ベース イ ン タ フ ェ ースの定義 Informix デー タ ベー ス イ ン タ フ ェ ー ス を介 し た接続を定義す る には、 少な く と も Informix IN9 ま たは I10 の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の基本接続パ ラ メ ー タ 用の値を指定 し て、 デー タ ベース プ ロ フ ァ イ ルを作成 し な ければな り ません。 次回以降、 こ のデー タ ベー ス プ ロ フ ァ イ ルを選択す る と 、 開発環境でそのデー タ ベース にいつで も 接続で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 サーバ名の指定 サーバ名の値 を 指定す る 際には、 Informix イ ン タ フ ェ ー ス を 介 し て デー タ ベー ス に接続す る ために、 次の形式で使用 し な ければな り ませ ん。 host_name@server_name 116 PowerBuilder 第8章 パラ メ ー タ host_name server_name Informix の使い方 説明 Informix デー タ ベース サーバを実行 し てい る ホ ス ト コ ン ピ ュ ー タ の名前。 こ のパ ラ メ ー タ は、 Informix HOSTNAME 環境変数に相当 し ます。 Informix デー タ ベース が入っ てい る サーバの名前。 こ のパ ラ メ ー タ は、 Informix SERVER 環境変数に相当 し ます。 た と えば、 PowerBuilder ネ イ テ ィ ブ イ ン タ フ ェ ー ス を使用 し て、 sales と い う ホ ス ト マシ ン上の server01 と い う Informix デー タ ベース サーバ にア ク セ スす る には、 以下のいずれかの処理を実行 し ます。 • データ ベース プロフ ァ イ ルを使用する DB プロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブに あ る [ホ ス ト 名] ボ ッ ク ス に ホ ス ト 名 「sales」 を、 [サーバ] ボ ッ ク ス にサーバ名 「server01」 を それぞ れ入力 し ま す。 PowerBuilder は、 こ のサーバ名を sales@server01 と し て、 シ ス テ ム レ ジ ス ト リ のエ ン ト リ に保存 し ます。 • 以下の ス ク リ プ ト を PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト に記述 し ます。 PowerBuilder ス ク リ プ ト を使用する SQLCA.ServerName = "sales@server01" 参考 [ホ ス ト 名] お よ び [サーバ] ボ ッ ク ス の値 を デー タ ベー ス プ ロ フ ァ イ ルに指定 し た場合、上記の構文が、DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブに表示 さ れ ま す。 [プ レ ビ ュ ー] タ ブか ら こ の構文 を ア プ リ ケ ーシ ョ ン ス ク リ プ ト に コ ピー し ます。 PowerBuilder ス ク リ プ ト でのシ リ アル値へのア ク セス PowerBuilder ス ク リ プ ト か ら Informix デー タ ベー ス に接続す る 場合、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の SQLReturnData プ ロ パテ ィ 値を調べ る こ と で、 Informix テーブルに挿入 さ れた行の番号を取得で き ます。 埋め込み SQL の INSERT 文を実行す る と 、 SQLReturnData には、 テーブ ルに挿入 さ れた行の固有の識別子 と な る 番号が保持 さ れます。 PowerBuilder は埋め込み SQL 文を実行 し た と き だけ SQLReturnData を 更新 し ます。 デー タ ウ ィ ン ド ウ 処理に対 し ては更新 し ません。 デー タ ベース と の接続 117 PowerBuilder ス ク リ プ ト でのシ リ アル値へのア ク セス 118 PowerBuilder 第 9 章 Microsoft SQL Server の使い方 こ の章について こ の 章 で は、 PowerBuilder に お い て Microsoft SQL Server Native Client デー タ ベー ス イ ン タ フ ェ ース を使用す る 方法について解説 し ます。 内容 項目 サポー ト し てい る SQL Server のバージ ョ ン サポー ト し てい る SQL Server デー タ 型 Microsoft SQL Server の基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト SQL Server デー タ ベース を使用す る ための準備 SQL Server デー タ ベース イ ン タ フ ェ ース の定義 MSS や OLE DB デー タ ベース イ ン タ フ ェ ース か ら の移行 SQL Server 2005 の機能 SNC イ ン タ フ ェース使用時の注意事項 ページ 119 120 122 123 125 126 129 130 サポー ト し ている SQL Server のバージ ョ ン SQL Native Client イ ン タ フ ェ ー ス を 使用す る と 、 Microsoft SQL Server 2000 お よ び 2005 デー タ ベー ス に ア ク セ ス で き ま す。 SQL Native Client イ ン タ フ ェース は、 PBSNC110.DLL と い う DLL を使 用 し てデー タ ベース にア ク セ ス し ます。 イ ン タ フ ェ ース は、ク ラ イ ア ン ト 側 で は SQL Server 2005 Native Client (sqlncli.h お よ び sqlncli.dll) を使用 し 、 OLE DB を使用 し て接続 し ます。 SQL Server 2000 に関 し て、 SQL ク ラ イ ア ン ト SDK は Microsoft Database Access Components (MDAC) で 提 供 さ れ て い ま し た。 MDAC は SQL Server 2005 の新 し い機能を サポー ト し てい ません。 こ れ ら の機能を使用す る ためには、 SNC イ ン タ フ ェース を使用す る 必要があ り ます。 SQL Server 2005 SQL Native Client ソ フ ト ウ ェ アが ク ラ イ ア ン ト のマ シ ン に イ ン ス ト ール さ れてい る 必要があ り ます。 デー タ ベース と の接続 119 サポー ト し ている SQL Server デー タ 型 PBODB 初期設定フ ァ イルを使用 し ない OLE DB か ら 直接行 う 接続では、 一部のパ ラ メ ー タ を設定す る ために PBODB 初期設定フ ァ イ ルを使用 し ま すが、 SNC イ ン タ フ ェ ー ス を使 用 し て行 う 接続では、 PBODB 初期設定フ ァ イ ルに依存 し ません。 サポー ト し ている SQL Server デー タ 型 SQL Native Client デー タ ベース イ ン タ フ ェ ース は、 表 9-1 に示すデー タ 型をサポー ト し てい ます。 表 9-1: サポー ト し ている Microsoft SQL Server 2005 デー タ 型 Binary Real Bit SmallDateTime SmallInt Character (255 文字 よ り 小 さ い) DateTime SmallMoney Decimal Text Float Timestamp Identity TinyInt Image VarBinary(max) Int Money Numeric NVarChar(max) NVarChar(n) VarBinary(n) VarChar(max) VarChar(n) XML XML デー タ 型は SQL Server 2005 の組み込みデー タ 型で、こ のデー タ 型 に よ り SQL Server デー タ ベース に XML 文書やフ ラ グ メ ン ト を格納す る こ と がで き ます。 XML デー タ 型は PowerScript String デー タ 型にマ ッ プ し ます。テーブルを作成す る 際のカ ラ ムのデー タ 型 と し て、 変数、パ ラ メ ー タ 、あ る いは関数の戻 り デー タ 型 と し て、CAST お よ び CONVERT 関数で こ のデー タ 型を使用す る こ と がで き ます。 120 PowerBuilder 第9章 Microsoft SQL Server の使い方 デー タ 型の変換 カ ラ ム の検索や更新処理 を 行 う と き 、 PowerBuilder は Microsoft SQL Server デー タ 型 と PowerScript デー タ 型の間で適宜、 デー タ 変換を行い ます。 し か し 、 同様の名前、 ま たは同一の名前を持つ SQL Server デー タ 型 と PowerScript デー タ 型であ っ て も 、必ず し も 同 じ 定義を持つ と は 限 ら ないので、 注意 し て く だ さ い。 PowerScript デー タ 型の定義については、『PowerScript リ フ ァ レ ン ス 』 マ ニ ュ アルを参照 し て く だ さ い。 S Q L S e r v e r 2 0 0 5 で は、 VarC har ( m a x ) 、 NVa rCh ar ( m ax ) 、 お よ び VarBinary(max) デー タ 型は、 と て も 大 き な値 (2^31 バ イ ト ま で) を格納 し ま す。 VarChar(max) お よ び NVarChar(max) デ ー タ 型 は PowerScript String デー タ 型にマ ッ プ し 、 VarBinary(max) デー タ 型は PowerScript Blob デー タ 型にマ ッ プ し ます。 メ タ デー タ を取得 し て、 新 し いカ ラ ム を定 義 し 、 カ ラ ム のデー タ を検索す る ために こ れ ら のデー タ 型を使用す る こ と がで き ます。 デー タ をパ イ プ ラ イ ン処理す る ために こ れ ら のデー タ 型を使用す る こ と も で き ます。 大き なデー タ 値の操作 Text、 NText、 Image、 Varchar(max)、 NVarchar(max)、 VarBinary(max)、 お よ び XML デー タ 型の大 き なデー タ 値に関 し て、 SNC イ ン タ フ ェース は埋め 込み SQL 文 を使用 し てデー タ ベー ス か ら 直接デー タ を読む こ と を サ ポー ト し てい ます。 例 1: select image_col into :blob_var from mytable where key_col = 1; 例 2: declare cur cursor for select id, image_col from mytable; open cur; fetch cur into :id_var, :blob_var; 結果集合が 1 つの大 き なデー タ 型 (Text ま たは Varchar (最大)) を含み、 ANSI エ ン コ ーデ ィ ン グ を使用 し てい る 場合は、PBMaxBlobSize デー タ ベー ス パ ラ メ ー タ を 使用 し て大 き な値ご と に最大サ イ ズ を 設定す る 必要があ り ます。 その他の大 き なデー タ 型の場合は、 デー タ のサ イ ズ に制限はあ り ません。 メ モ リ が十分であれば、 SNC イ ン タ フ ェース は デー タ ベース の全デー タ を検索 し ます。 デー タ ベース と の接続 121 Microsoft SQL Server の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト SNC イ ン タ フ ェ ース は、 埋め込み SQL INSERT お よ び UPDATE 文を使 用 し て大 き なデー タ 型の値を挿入お よ び更新す る こ と を サポー ト し ま す。 SNC イ ン タ フ ェース が大 き なデー タ 値をバ イ ン ド で き る よ う にす る ためには、DisableBind デー タ ベース パ ラ メ ー タ を 0 に設定す る 必要 があ り ます。 た と えば、 以下の SQL 文が作成 さ れ ます。 Insert into mytable (id, blob_col) values(1, :blob_var); Update mytable set blob_col = :blob_var where id = 1; Microsoft SQL Server の基本ソ フ ト ウ ェ ア コ ンポーネン ト SQL Native Client イ ン タ フ ェ ー ス を使用 し てデー タ ベー ス にア ク セ ス す る ためには、 図 9-1 の ソ フ ト ウ ェ ア コ ン ポーネ ン ト を イ ン ス ト ール す る 必要があ り ます。 Microsoft SQL Server Native Client ソ フ ト ウ ェ ア は、 1 つの DLL に SQL OLE DB プ ロ バ イ ダお よ び ODBC ド ラ イ バを 含んでい ます。 122 PowerBuilder 第9章 Microsoft SQL Server の使い方 図 9-1: Microsoft SQL Server 接続の コ ンポーネ ン ト SQL Server デー タ ベース を使用する ための準備 デー タ ベー ス イ ン タ フ ェ ー ス を 定義 し 、 PowerBuilder か ら Microsoft SQL Server デー タ ベース に接続す る 前に、 以下の手順に従っ て使用す る デー タ ベース を準備 し ます。 1 デー タ ベース と の接続 接続に必要なデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定 し ます。 123 SQL Server デー タ ベース を使用する ための準備 ス テ ッ プ 1 : デー タ ベース サーバのイ ン ス ト ール と 設定 2 SQL Native Client デー タ ベース イ ン タ フ ェ ース を イ ン ス ト ール し ます。 3 PowerBuilder の外部の環境で、 Microsoft SQL Server サーバお よ び デー タ ベース に接続で き る こ と を確認 し ます。 SQL Server 用にデー タ ベース サーバ、 ネ ッ ト ワ ー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定す る 必要があ り ます。 ❖ デー タ ベース サーバ、 ネ ッ ト ワー ク、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定する 1 データ ベース プロ フ ァ イ ルに指定さ れている サーバ上に、 Microsoft SQL Server デー タ ベース ソ フ ト ウ ェ アが イ ン ス ト ール さ れ、 稼働 し てい る こ と を確認 し ます。 Microsoft 社か ら デー タ ベー ス サーバ ソ フ ト ウ ェ アお よ び必要な ラ イ セ ン ス を入手す る 必要があ り ま す。 イ ン ス ト ールの手順につ いては、 Microsoft SQL Server のマニ ュ アルを参照 し て く だ さ い。 SQL Server の以前のバージ ョ ンからのア ッ プグレー ド SQL Server の最新バージ ョ ンへのア ッ プ グ レ ー ド あ る いは旧バー ジ ョ ン と 一緒に最新バージ ョ ン を イ ン ス ト ールす る 手順について は、 Microsoft SQL Server のマニ ュ アルを参照 し て く だ さ い。 2 リ モー ト の SQL Server デー タ ベース にア ク セ ス し てい る 場合、 必 要なネ ッ ト ワ ー ク ソ フ ト ウ ェ ア (TCP/IP な ど) がマシ ン上に イ ン ス ト ール さ れ、 稼働 し てお り 、 自分のサ イ ト の SQL Server デー タ ベース サーバに接続で き る よ う に正 し く 設定 さ れてい る こ と を確 認 し ます。 イ ン ス ト ール と 設定の手順については、 ネ ッ ト ワ ー ク ま たはデー タ ベース の管理者に問い合わせて く だ さ い。 3 PowerBuilder が イ ン ス ト ール さ れてい る 各 ク ラ イ ア ン ト マシ ン に、 必要な Microsoft SQL Native Client ソ フ ト ウ ェ ア を イ ン ス ト ー ル し ます。 Microsoft 社か ら SQL Native Client ソ フ ト ウ ェ ア を入手す る 必要が あ り ま す。 イ ン ス ト ールす る ク ラ イ ア ン ト ソ フ ト ウ ェ ア のバー ジ ョ ン が、 以下をすべてサポー ト す る こ と を確認 し ます。 ク ラ イ ア ン ト マシ ン上で稼働 し てい る オペレーテ ィ ン グ シ ス テム ア ク セ スす る デー タ ベース のバージ ョ ン 稼働 し てい る PowerBuilder のバージ ョ ン 124 PowerBuilder 第9章 Microsoft SQL Server の使い方 イ ン ス ト ール手順については、 Microsoft SQL Server 2005 のマニ ュ アルを参照 し て く だ さ い。 4 自分のサ イ ト か ら SQL Server デー タ ベース サーバに接続で き る よ う に、 SQL Native Client ク ラ イ ア ン ト ソ フ ト ウ ェ アが正 し く 構成 さ れてい る こ と を確認 し ます。 構成 フ ァ イ ルの設定につい て は、 Microsoft SQL Server 2005 の マ ニ ュ アルを参照 し て く だ さ い。 5 SQL Native Client ソ フ ト ウ ェ ア を含むデ ィ レ ク ト リ がシ ス テ ム パ ス にあ る こ と を確認 し ます。 6 Sqlncli.dll フ ァ イ ルの 1 つの コ ピーだけが自分のマシ ン に イ ン ス ト ール さ れてい る こ と を確認 し ます。 ス テ ッ プ 2: デー タ ベース イ ン タ フ ェ ー スのイ ン ス ト ール PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 カ ス タ ム イ ン ス ト ールを 選択 し て、 SQL Native Client デー タ ベース イ ン タ フ ェ ース を選択 し ま す。 ス テ ッ プ 3: 接続の確 認 PowerBuilder の外部の環境で、 ア ク セ ス し た い SQL Server サーバや デー タ ベース に接続で き る こ と を確認 し ます。 接続を確認す る には、 デー タ ベース に接続す る Windows ベース のユー テ ィ リ テ ィ を使用 し ます。デー タ ベース に接続す る 時には、デー タ ベー ス にア ク セ スす る ために PowerBuilder のデー タ ベース プ ロ フ ァ イ ルで 使用す る 予定の接続パ ラ メ ー タ と 同 じ パ ラ メ ー タ を指定 し てい る こ と を確認 し ます。 SQL Server デー タ ベース イ ン タ フ ェ ースの定義 SQL Native Client イ ン タ フ ェ ー ス を介 し た接続を定義す る には、 少な く と も 、 DB プ ロ フ ァ イ ル設定 - SQL ネ ィ テ ィ ブ ク ラ イ ア ン ト (OLE DB) ダ イ ア ロ グ ボ ッ ク ス の基本接続パ ラ メ ー タ 用の値 を 指定 し て、 デー タ ベー ス プ ロ フ ァ イ ル を作成 し な ければな り ま せん。 次回以降、 こ のデー タ ベース プ ロ フ ァ イ ルを選択す る と 、 開発環境でそのデー タ ベース にいつで も 接続で き ます。 デー タ ベース と の接続 125 MSS や OLE DB デー タ ベース イ ン タ フ ェ ースか ら の移行 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 11 ページの 「デー タ ベース プ ロ フ ァ イ ルの作成」 を参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イ ルで特別な設定を要求す る 新 し い機能については、 129 ペー ジ の 「SQL Server 2005 の機能」 を 参照 し て く だ さ い。 既存の ア プ リ ケーシ ョ ン で使用 し たデー タ ベー ス パ ラ メ ー タ と SNC デー タ ベー ス イ ン タ フ ェ ー ス で使用 し たデー タ ベー ス パ ラ メ ー タ の比較につい て は、 次の 「MSS や OLE DB デー タ ベース イ ン タ フ ェース か ら の移行」 を参照 し て く だ さ い。 MSS や OLE DB デー タ ベース イ ン タ フ ェ ースから の移行 PowerBuilder の以前の リ リ ース では、 MSS ネ イ テ ィ ブ イ ン タ フ ェ ース を Microsoft SQL Server への接続のために提供 し てい ま し た。 こ のネ イ テ ィ ブ イ ン タ フ ェース は、 Microsoft DB-LIB 機能をベース に し てい ま し た。Microsoft は こ の機能を サポー ト し な く な り 、 Unicode を使用す る こ と がで き ません。 MSS イ ン タ フ ェース は、 PowerBuilder 10.0 で削除 さ れ ま し た。 SQL Server 2005 お よ び SQL Native Client の導入の前に、 Microsoft は SQL Server に接続す る ために、 OLE DB デー タ ベース イ ン タ フ ェ ース お よ び MDAC を使用す る こ と を推奨 し てい ま し た。SQL Server 2005 の 新 し い機能を使用す る 必要がない場合は、 こ の ソ リ ュ ーシ ョ ン を使用 し 続け る こ と がで き ます。 こ の節では、 既存の ア プ リ ケーシ ョ ン で使用 し たデー タ ベー ス パ ラ メ ー タ と SNC デー タ ベー ス イ ン タ フ ェ ー ス で使用で き る パ ラ メ ー タ と の比較を行い ます。 SNC でサポー ト する MSS デー タ ベース パラ メ ー タ 表 9-2 は、Microsoft SQL Server のための使用 さ れな く な っ た MSS ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス 用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス で設定 さ れ る デー タ ベー ス パ ラ メ ー タ お よ び環境設 定項目を記述 し 、 SNC イ ン タ フ ェース でサポー ト し てい る か ど う か を 示 し てい ます。 左の列は、 MSS の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の タ ブ ページ を表 し てい ます。 パ ラ メ ー タ お よ び環境設定項目は、 SNC プ ロ フ ァ イ ル と 異な る タ ブ ページにあ る こ と があ り ます。 126 PowerBuilder 第9章 Microsoft SQL Server の使い方 表 9-2: SNC でサポー ト し ている MSS パラ メ ー タ MSS SNC [接続] タ ブ : Language Lock AutoCommit CommitOnDisconnect 未サポー ト サポー ト ([ ト ラ ンザ ク シ ョ ン] タ ブ) サポー ト サポー ト [シ ス テ ム] タ ブ : Log SystemProcs PBCatalogOwner 未サポー ト 未サポー ト サポー ト [ ト ラ ンザ ク シ ョ ン] タ ブ : Async DBGetTime CursorLock CursorScroll StaticBind MaxConnect 未サポー ト 未サポー ト 未サポー ト 未サポー ト サポー ト 未サポー ト [構文] タ ブ : DBTextLimit SNC でサポー ト する OLE DB デー タ ベース パラ メ ー タ DateTimeAllowed OptSelectBlob サポー ト ([ ト ラ ンザ ク シ ョ ン] タ ブの PBMaxTextSize) 未サポー ト 未サポー ト [ネ ッ ト ワー ク ] タ ブ : AppName Host PacketSize Secure サポー ト サポー ト サポー ト サポー ト ([シ ス テ ム] タ ブ) ([シ ス テ ム] タ ブ) ([シ ス テ ム] タ ブ) ([接続] タ ブの TrustedConnection) 表 9-3 は、 Microsoft SQL Server のための OLE DB 標準 イ ン タ フ ェース 用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス で設定 さ れ る デー タ ベース パ ラ メ ー タ お よ び環境設定を記述 し 、SNC イ ン タ フ ェ ース でサ ポー ト し てい る か ど う か を示 し てい ます。 左の列は、 OLE DB の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の タ ブ ページ を 表 し て い ま す。 パ ラ メ ー タ お よ び環境設定は、 SNC プ ロ フ ァ イ ル と 異な る タ ブ ページにあ る こ と があ り ます。 デー タ ベース と の接続 127 MSS や OLE DB デー タ ベース イ ン タ フ ェ ースか ら の移行 表 9-3: SNC でサポー ト し ている MSS パラ メ ー タ OLE DB SNC [接続] タ ブ : Provider DataSource 128 DataLink Location ProviderString 未サポー ト 実行時にサポー ト (SQLCA.ServerName と し て) サポー ト 未サポー ト サポー ト [シ ス テ ム] タ ブ : PBCatalogOwner ServiceComponents AutoCommit CommitOnDisconnect StaticBind DisableBind Init_Prompt TimeOut LCID サポー ト 未サポー ト サポー ト ([接続] タ ブ) サポー ト ([接続] タ ブ) サポー ト ([ ト ラ ンザ ク シ ョ ン] タ ブ) サポー ト ([ ト ラ ンザ ク シ ョ ン] タ ブ) 未サポー ト サポー ト 未サポー ト [ ト ラ ンザ ク シ ョ ン] タ ブ : Block PBMaxBlobSize Mode Lock サポー ト サポー ト 未サポー ト サポー ト [構文] タ ブ : DelimitIdentifier IdentifierQuoteChar DateFormat TimeFormat DecimalSeparator OJSyntax サポー ト 未サポー ト サポー ト サポー ト サポー ト サポー ト [セキ ュ リ テ ィ ] タ ブ : EncryptPassword CacheAuthentication PersistSensitive MaskPassword PersistEncrypted IntegratedSecurity 未サポー ト 未サポー ト 未サポー ト 未サポー ト 未サポー ト サポー ト ([接続] タ ブの TrustedConnection) PowerBuilder 第9章 OLE DB ImpersonationLevel ProtectionLevel Microsoft SQL Server の使い方 SNC 未サポー ト 未サポー ト 追加のデー タ ベース パラ メ ー タ SNC イ ン タ フ ェ ース は、ReCheckRows お よ び BinTxtBlob ラ ン タ イ ム の みのパ ラ メ ー タ 、 Encrypt、 TrustServerCertificate、 SPCache パ ラ メ ー タ ([シ ス テ ム] タ ブ ページ)、 お よ び Identity パ ラ メ ー タ ([構文] タ ブ ページ) も サポー ト し てい ます。 SPCache デー タ ベー ス パラ メ ー タ SPCache デー タ ベース パ ラ メ ー タ の設定を変更す る こ と で、 パ ラ メ ー タ 情報 と 一緒に キ ャ ッ シ ュ す る ス ト ア ド プ ロ シージ ャ の数 を 制御す る こ と がで き ま す。 デ フ ォ ル ト は、 100 プ ロ シージ ャ です。 ス ト ア ド プ ロ シージ ャ のキ ャ ッ シ ュ を解除す る には、 SPCache に 0 を設定 し ま す。 SNC イ ン タ フ ェ ー ス でサポー ト す る デー タ ベー ス パ ラ メ ー タ につい ては、 オ ン ラ イ ン ヘルプの 『接続 リ フ ァ レ ン ス 』 マニ ュ アルを参照 し て く だ さ い。 SQL Server 2005 の機能 SNC デー タ ベース イ ン タ フ ェ ース は、 SQL Server 2005 で導入 さ れたい く つか の機能 を サ ポー ト し て い ま す。 こ れ ら の機能の使用につい て は、 Microsoft SQL Server 2005 のマニ ュ アルを参照 し て く だ さ い。 Multiple Active Result Sets SNC イ ン タ フ ェース は、 Multiple Active Result Sets (MARS) をサポー ト し ます。 MARS は、 アプ リ ケーシ ョ ンが複数のデフ ォ ル ト の結果集 合を開いて、 それ ら か ら の読み込みを イ ン タ リ ーブにで き ます。 アプ リ ケ ー シ ョ ン は、 デ フ ォ ル ト の結果集合 を 開い て い る 間に INSERT、 UPDATE、 DELETE な ど の ス テー ト メ ン ト お よ びス ト ア ド プ ロ シージ ャ 呼び出 し を実行す る こ と も で き ます。 検証 し ない暗号化 SQL Server 2005 は、 ロ グ イ ン に関連 し たネ ッ ト ワ ー ク パケ ッ ト を常に 暗号化 し ます。開始時にサーバーで証明書が提供 さ れない場合は、SQL Server は ロ グ イ ン パケ ッ ト を暗号化す る ために使用 さ れ る 自己署名入 り の証明書を生成 し ます。 SQL Native Client は、 証明書を検証せずにサーバへ暗号化デー タ を送 信す る こ と を サポー ト し ます。 DB 接続プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス の [シ ス テ ム] ページにあ る [サーバ証明書を信頼す る ] デー タ ベース パ ラ メ ー タ (TrustServerCertificate) で、 こ の機能を制御す る こ と がで き ます。 デー タ ベース と の接続 129 SNC イ ン タ フ ェ ース使用時の注意事項 スナ ッ プ シ ョ ッ ト 分離 ス ナ ッ プシ ョ ッ ト 分離 レベルは、オ ン ラ イ ン ト ラ ンザ ク シ ョ ン処理の ア プ リ ケーシ ョ ン に関す る 同時実行を 拡張す る ために作 ら れ ま し た。 ス ナ ッ プシ ョ ッ ト 分離の も と で起動す る ト ラ ンザ ク シ ョ ンは、 起動時 に行っ たデー タ ベース ス ナ ッ プシ ョ ッ ト を読み込みます。 こ の コ ン テ キ ス ト 内のキーセ ッ ト 、 動的、 お よ び静的サーバ カー ソ ルは、 シ リ ア ル化可能な ト ラ ンザ ク シ ョ ン内で開いた静的カー ソ ルの よ う に動作 し ますが、 サーバでのブ ロ ッ ク を減 ら す こ と がで き る ロ ッ ク を行い ませ ん。 ス ナ ッ プシ ョ ッ ト 分離の SQLCA.Lock 値は、 SS です。 DB 接続プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス の [ ト ラ ンザ ク シ ョ ン] タ ブ ページに あ る [分離レベル] 項目で こ の値を設定す る こ と がで き ます。 SNC イ ン タ フ ェ ース使用時の注意事項 DBHandle PowerScript 関数の使 用時 ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の DBHandle 関数は、 現行セ ッ シ ョ ン オブ ジ ェ ク ト の IUnknown* イ ン タ フ ェ ー ス を 返 し ま す。 こ の イ ン タ フ ェ ース を使用 し て、 セ ッ シ ョ ン オブジ ェ ク ト 内の イ ン タ フ ェース を 検索 し ます。 イ ン タ フ ェ ース は、 PowerBuilder 内の pIUnknown->Addref() で ロ ッ ク さ れ ません。 そのため、 それを使用 し た後に イ ン タ フ ェ ー ス を解放す る ために pIUnknown->Release() を呼び出す必要はあ り ません。 SQL バ ッ チ文 SNC イ ン タ フ ェ ー ス は、 SQL バ ッ チ文 を サ ポー ト し ま す。 し か し 、 BEGIN...END ブ ロ ッ ク で囲んだ り 、 キーワ ー ド DECLARE で開始 し た り す る 必要があ り ます。 • BEGIN...END ブ ロ ッ ク で囲む場合 : BEGIN INSERT INSERT SELECT SELECT END • INTO t_1 values(1, 'sfdfs') INTO t_2 values(1, 'sfdfs') * FROM t_1 * FROM t_2 キー ワー ド DECLARE で開始す る 場合 : DECLARE @p1 int, @p2 varchar(50) SELECT @p1 = 1 EXECUTE sp_4 @p1, @p2 OUTPUT SELECT @p2 AS 'output' デー タ ベース ペ イ ン タ ま たは PowerScript の SQL 文のバ ッ チを返す こ と がで き ます。 次の よ う に指定 し ます。 String batchSQL //SQL 文のバッチを含む 130 PowerBuilder 第9章 Microsoft SQL Server の使い方 DECLARE my_cursor DYNAMIC CURSOR FOR SQLSA ; PREPARE SQLSA FROM :batchSQL ; OPEN DYNAMIC my_cursor ; // 最初の結果集合 FETCH my_cursor INTO . . . //2 番目の結果集合 FETCH my_cursor INTO . . . . . CLOSE my_cursor ; 接続プー リ ング SNC イ ン タ フ ェ ー ス は、 OLE DB プール を 使用 し て自動的に接続 を プール し ます。 OLE DB プールを無効にす る には、 DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブ ページ の [拡張プ ロ パ テ ィ ] ボ ッ ク ス に次の よ う に入力 し ます。 OLE DB Services=-4 コ ー ド で次の よ う な ス テー ト メ ン ト を入力す る こ と も で き ます。 ProviderString='OLE DB Services=-4') データ ベース ペイ ン タ の ト リ ガ と シ ノ ニム デー タ ベース ペ イ ン タ の SNC プ ロ フ ァ イ ル用のオブジ ェ ク ト ビ ュ ー では、ト リ ガはテーブル フ ォ ルダにテーブルについて表示 し 、Microsoft SQL Server 2005 シ ノ ニ ムはテーブルお よ びビ ュ ーを表示 し ます。 デー タ ベース と の接続 131 SNC イ ン タ フ ェ ース使用時の注意事項 132 PowerBuilder 第 1 0 章 Oracle の使い方 こ の章について こ の節では、 PowerBuilder においてネ イ テ ィ ブ Oracle デー タ ベー ス イ ン タ フ ェ ース を使用す る 方法について解説 し ます。 内容 項目 サポー ト し てい る Oracle のバージ ョ ン サポー ト し てい る Oracle デー タ 型 Oracle の基本 ソ フ ト ウ ェ ア コ ン ポーネ ン ト Oracle デー タ ベース を使用す る ための準備 Oracle デー タ ベース イ ン タ フ ェース の定義 デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使い 方 Oracle ユーザ定義デー タ 型の使い方 Oracle 10g の HA イ ベン ト 通知のサポー ト ページ 133 134 138 138 141 142 147 149 サポー ト し ている Oracle のバージ ョ ン PowerBuilder では、 3 種類の Oracle デー タ ベース イ ン タ フ ェ ース が提供 さ れてい ます。 こ れ ら の イ ン タ フ ェース は、Oracle の各バー ジ ョ ン に対応 し た DLL を使用 し て Oracle デー タ ベー ス にア ク セ ス し ます。 デー タ ベース と の接続 133 サポー ト し ている Oracle デー タ 型 表 10-1: サポー ト し ている ネ イ テ ィ ブ Oracle デー タ ベース イ ン タ フ ェ ース DLL Oracle イ ン タ フ ェ ース O84 Oracle8i PBO84110.DLL O90 Oracle9i PBO90110.DLL O10 Oracle 10g PBO10110.DLL 詳細について サポー ト し てい る Oracle のバージ ョ ン についての最新情報は、 Sybase サポー ト と ダウン ロー ド のサイ ト http://www.sybase.com/detail?id=1011566 ま たは PowerBuilder の 『 リ リ ース ノ ー ト 』 マニ ュ アルを参照 し て く だ さ い。 Oracle 10g デー タ ベース イ ン タ フ ェース では、Oracle 10g Database Client や Oracle 10g Instant Client を使用 し て Oracle 10g サーバへ接続す る こ と がで き ます。 BINARY_FLOAT デー タ 型 と BINARY_DOUBLE デー タ 型をサ ポー ト し 、 CLOB デー タ 型 と NCLOB デー タ 型のサ イ ズ制限を拡大 し ま し た。 Oracle 10g ク ラ イ ア ン ト は、 Oracle9i サーバ と Oracle 10g サーバ へ接続す る こ と がで き ま すが、 Oracle8i 以前のサーバに接続す る こ と はで き ません。 サポー ト し ている Oracle デー タ 型 Oracle デー タ ベース イ ン タ フ ェース は、デー タ ウ ィ ン ド ウ オブジ ェ ク ト お よ び埋め込み SQL において、 表 10-2 に示す Oracle デー タ 型をサ ポー ト し てい ます。 134 PowerBuilder 第 10 章 Oracle の使い方 表 10-2: サポー ト し ている Oracle のデー タ 型 Bfile NChar (Oracle9i 以降のみ) Blob Number Char NVarChar2 (Oracle9i 以降のみ) Clob Raw Date TimeStamp (Oracle9i 以降のみ) Float VarChar Long VarChar2 LongRaw Oracle 10g イ ン タ フ ェース は、 BINARY_FLOAT デー タ 型 と BINARY_DOUBLE デー タ 型 も サポー ト し てい ます。 大規模演算の よ り 高い効率性を証明 し 、 オペレーテ ィ ン グ シ ス テ ムに浮動小数点演算 処理の作業を渡す IEEE 浮動小数点の型です。 Unicode デー タ への ア ク セス PowerBuilder は、 O90 ま たは O10 デー タ ベース イ ン タ フ ェース を使用 し て、 ANSI/DBCS お よ び Unicode の両方のデー タ ベース のデー タ に接 続、 保存、 検索す る こ と がで き ますが、 Unicode と ANSI/DBCS 間での デー タ 変換は行い ません。 文字デー タ ま たは コ マ ン ド テ キ ス ト がデー タ ベー ス に送信 さ れ る と 、 PowerBuilder は Unicode 文字列を送信 し ま す。 デー タ が正 し く Unicode デー タ と し て保存 さ れ る こ と を ド ラ イ バ が保証す る 必要があ り ま す。 PowerBuilder は文字デー タ を検索す る と き 、 デー タ は Unicode であ る と 仮定 し ます。 PowerBuilder は、O84 デー タ ベース イ ン タ フ ェ ース を使用 し て、Oracle ク ラ イ ア ン ト 変数 NLS_LANG が設定 さ れてい る か ど う か を検出 し ま す。 変 数 に UTF-8 ま た は DBCS 文 字 が 設 定 さ れ て い る 場 合、 PowerBuilder は コ マ ン ド テ キ ス ト (SELECT * FROM emp な ど) を適切 な 文字 セ ッ ト に変換 し て か ら デー タ ベー ス に送信 し ま す。 た だ し 、 DisableBind が 0 に設定 さ れてい る 場合 (デフ ォ ル ト )、 PowerBuilder は 常に文字列デー タ を Unicode デー タ と し てバ イ ン ド し ま す。 O84 を使 用 し て、ANSI 文字列 と し てデー タ を検索す る ために DisableUnicode パ ラ メ ー タ に 1 を設定す る こ と がで き ます。 Unicode データ ベース は、 文字セッ ト が Unicode 形式 (UTF-8、 UTF-16、 UCS-2、 UCS-4 な ど) に設定 さ れ る デー タ ベース の こ と です。 すべての デー タ は、 Unicode 形式でなければな ら ず、 デー タ ベース に保存 さ れ る デー タ は、 暗黙的に ま たは明示的に Unicode デー タ に変換 さ れな けれ ばな り ません。 デー タ ベース と の接続 135 サポー ト し ている Oracle デー タ 型 文字セ ッ ト と し て ANSI (ま たは DBCS) を使用す る デー タ ベー ス は、 Unicode デー タ を格納す る 特殊なデー タ 型を使用す る こ と があ り ます。 こ れ ら のデー タ 型は NCHAR、 お よ び NVARCHAR2 です。 こ のデー タ 型 を持つカ ラ ムは、 Unicode デー タ だけです。 その よ う な カ ラ ム に保存 さ れ る デー タ は、 明示的に Unicode に変換 さ れ る 必要があ り ます。 こ の 変換はデー タ ベー ス サーバ ま たは ク ラ イ ア ン ト が処理す る 必要が あ り ます。 Oracle は定数文字列を Char 型 と し て認識 し 、 文字セ ッ ト は NLS_CHARACTERSET です。 し か し 、 デー タ ベース でのデー タ 型が NCHAR で、 文字セ ッ ト が NLS_NCHAR_CHARACTERSET の場合、 Oracle は NLS_CHARACTERSET か ら NLS_NCHAR_CHARACTERSET へ変換 し ます。 こ れに よ り デー タ の喪失が生 じ ます。 例えば、 NLS_CHARACTERSET が WE8ISO8859P1 で、 NLS_NCHAR_CHARACTERSET が UTF8 の場合、 Unicode デー タ が WE8ISO8859P1 へ割 り 当て ら れ る と 、 Unicode デー タ は破損 し ます。 NCHAR カ ラ ム と NVARCHAR2 カ ラ ム や ス ト ア ド プ ロ シ ー ジ ャ パ ラ メ ー タ を使用 し て Unicode デー タ へア ク セ ス し たい場合には、 定数文 字列の使用を避け る ために、 埋め込み SQL を使用 し て ス ク リ プ ト 中に Unicode デ ー タ を 格 納 す る た め に PowerBuilder 変 数 を 使 用 し て、 PowerBuilder に変数をバ イ ン ド さ せます。 デ フ ォ ル ト で は、 O90 と O10 デー タ ベー ス イ ン タ フ ェ ー ス は、 パ フ ォ ーマ ン ス のダ ウ ン グ レー ド を避け る ために、 すべての文字列デー タ を Oracle CHAR デー タ 型 と し て内部変数にバ イ ン ド し ます。 サーバ 上で確実に NCHAR お よ び NVARCHAR2 カ ラ ムが こ の よ う に処理 さ れ る よ う にす る ために、 NCharBind デー タ ベース パ ラ メ ー タ を 1 に設定 し て、 O90 と O10 ド ラ イ バが文字列デー タ を Oracle NCHAR デー タ 型 と し てバ イ ン ド す る よ う に し ます。 例えば、 table1 に NVARCHAR2 デー タ 型のカ ラ ム c1 があ る と し ます。こ のテーブルに Unicode デー タ を挿入す る ために、 DisableBind に 0 を設 定 し て、 次の構文を使用 し ます。 string var1 insert into table1 (c1) values(:var1); NCHAR デー タ 型や NVARCHAR2 デー タ 型 の 入力 パ ラ メ ー タ を 持つ Oracle の ス ト ア ド プ ロ シージ ャ で、 入力デー タ が Unicode 文字列の場 合、 Oracle デ ー タ ベ ー ス に 入 力 デ ー タ を バ イ ン ド さ せ る た め に、 BindSPInput デー タ ベー ス パ ラ メ ー タ に 1 を設定 し ま す。 O90 と O10 デー タ ベース イ ン タ フ ェ ース は、 そのパ ラ メ ー タ を設定す る プ ロ シー ジ ャ を記述で き ます。 そのため、 NCharBind デー タ ベース パ ラ メ ー タ を設定す る 必要があ り ません。 136 PowerBuilder 第 10 章 Oracle の使い方 デー タ ウ ィ ン ド ウ オブジ ェ ク ト が NCHAR や NVARCHAR2 カ ラ ムにア ク セ ス し 、 正 し く デー タ を検索す る ためには、 DisableBind と StaticBind の両方に 0 を設定 し ます。StaticBind に 0 を設定す る こ と で、 PowerBuilder は検索す る 前に正 し いデー タ 型を取得 し ます。 TimeStamp デー タ 型 Oracle9i 以降の TimeStamp デー タ 型は、 Date デー タ 型を拡張 し た も の です。 以下の よ う に Date 値の年、 月、 日に加え て、 時間、 分、 秒を格 納 し ます。 Timestamp[fractional_seconds_precision] fractional_seconds_precision 値はオプシ ョ ン で、 秒を示す小数値を指定 し ます。 PowerBuilder での使用で有効な値の範囲は、 0-6 です。 デー タ 型の変換 カ ラ ム の検索や更新処理をす る 際、 Oracle デー タ 型 と PowerScript デー タ 型の間で適宜、 デー タ 変換が行われ ます。 し か し 、 同様の名前、 ま たは同一の名前を持つ Oracle デー タ 型 と PowerScript デー タ 型で あ っ て も 、 必ず し も 同 じ 定義を持つ と は限 ら ないので、 注意 し て く だ さ い。 PowerScript デー タ 型の定義については、『PowerScript リ フ ァ レ ン ス 』 マ ニ ュ アルを参照 し て く だ さ い。 Decimal に変換 さ れる Number デー タ 型 デ ー タ ウ ィ ン ド ウ オ ブ ジ ェ ク ト を PowerBuilder で 定 義 す る 際 に、 Oracle デー タ 型 number(size,d) は Decimal デー タ 型にマ ッ プ さ れ ま す。 PowerBuilder では、 小数精度は 18 桁です。 カ ラ ム のデー タ 型が よ り 高 い精度を持つ場合、 た と えば number(32,30) の と き に、 18 桁 よ り 高い精 度を持つ数値を挿入す る と 、 数値がデー タ ウ ィ ン ド ウ で検索 さ れ る と 誤っ た結果にな り ます。 た と えば、1.8E-17 は 0.000000000000000018 と し て表示 さ れ る のに対 し 、 1.5E-25 は 0 と 表示 さ れます。 こ の問題は、Oracle DBMS で高精度の number カ ラ ム に対 し て、 Float な ど の異 な る デー タ 型 を 使用す る こ と で避け る こ と が で き ま す。 Float デー タ 型は、 デー タ ウ ィ ン ド ウ ソ ース 内で Number デー タ 型にマ ッ プ さ れ ます。 デー タ ベース と の接続 137 Oracle の基本 ソ フ ト ウ ェ ア コ ンポーネ ン ト Oracle の基本ソ フ ト ウ ェ ア コ ンポーネ ン ト PowerBuilder か ら Oracle データ ベース にアク セス する ためには、 図 101 で示す ソ フ ト ウ ェ ア コ ン ポーネ ン ト を イ ン ス ト ールす る 必要があ り ます。 図 10-1: Oracle 接続の コ ンポーネ ン ト Oracle デー タ ベース を使用する ための準備 デー タ ベース イ ン タ フ ェ ース を定義 し 、 PowerBuilder か ら Oracle デー タ ベース に接続す る 前に、 以下の手順に従っ て使用す る デー タ ベー ス を準備 し ます。 138 PowerBuilder 第 10 章 Oracle の使い方 1 接続に必要なデー タ ベース サーバ、 ネ ッ ト ワー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定 し ます。 2 ア ク セ スす る Oracle のバージ ョ ンに対応す る ネ イ テ ィ ブ Oracle デー タ ベース イ ン タ フ ェ ース を イ ン ス ト ール し ます。 3 PowerBuilder の外部の環境で、Oracle サーバやデー タ ベース に接続 で き る こ と を確認 し ます。 PowerBuilder で使用す る Oracle デー タ ベース を準備す る には、 以下の 基本的な 3 つの操作を し ます。 Oracle のデー タ ベー ス サーバ、 ネ ッ ト ワ ー ク 、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定す る 必要があ り ます。 ス テ ッ プ 1: デー タ ベース サーバのイ ン ス ト ール と 設定 ❖ デー タ ベース サーバ、 ネ ッ ト ワー ク、 ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し 、 設定する 1 自分のマシ ン上、 ま たはデー タ ベース プ ロ フ ァ イ ルに指定 さ れて い る サーバ上に、 Oracle デー タ ベース ソ フ ト ウ ェ アが イ ン ス ト ー ル さ れてい る こ と を確認 し ます。 た と えば、 Oracle O90 イ ン タ フ ェース では、 Oracle9i ま たは Oracle 10g デー タ ベース サーバにア ク セ ス で き ます。 Oracle 社のデー タ ベース サーバ ソ フ ト ウ ェ ア を入手す る 必要があ り ます。 イ ン ス ト ールの手順については、 Oracle のマ ニ ュ アルを参照 し て く だ さ い。 2 サポー ト さ れ る ネ ッ ト ワー ク ソ フ ト ウ ェ ア (TCP/IP な ど) がマシ ン上に イ ン ス ト ール さ れ、 稼動 し てお り 、 自分のサ イ ト のデー タ ベース サーバに接続で き る よ う に正 し く 設定 さ れてい る こ と を確 認 し ます。 Hosts フ ァ イ ル と Services フ ァ イ ルが自分のマシ ン上にあ り 、 環境 に合わせて正 し く 設定 さ れていなければな り ません。 ネ ッ ト ワー ク ソ フ ト ウ ェ アは、 ネ ッ ト ワー ク ベン ダ ま たはデー タ ベース ベン ダか ら 入手す る 必要があ り ます。 イ ン ス ト ール と 設定の手順については、 ネ ッ ト ワ ー ク ま たはデー タ ベース の管理者に問い合わせて く だ さ い。 3 デー タ ベース と の接続 PowerBuilder がイ ン ス ト ールさ れている 各ク ラ イ ア ン ト マシン に、 Oracle ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ール し ます。 139 Oracle デー タ ベース を使用する ための準備 Oracle 社か ら ク ラ イ ア ン ト ソ フ ト ウ ェ ア を入手す る 必要があ り ま す。ま た、イ ン ス ト ールす る ク ラ イ ア ン ト ソ フ ト ウ ェ アのバージ ョ ンが、 以下をすべてサポー ト す る こ と を確認 し ます。 ク ラ イ ア ン ト マシ ン上で稼働 し てい る オペレーテ ィ ン グ シ ス テム ア ク セ スす る デー タ ベース のバージ ョ ン 稼働 し てい る PowerBuilder のバージ ョ ン Oracle 10g Instant Client は、標準の Oracle ク ラ イ ア ン ト ソ フ ト ウ ェ ア を イ ン ス ト ールせずにアプ リ ケーシ ョ ン を実行す る こ と がで き る フ リ ーの ク ラ イ ア ン ト ソ フ ト ウ ェ アです。 こ れは、 サ イ ズが小 さ く 、 無償で再配布で き ます。 4 自分のサ イ ト か ら Oracle デー タ ベース サーバに接続で き る よ う に、 Oracle ク ラ イ ア ン ト ソ フ ト ウ ェ アが正 し く 設定 さ れてい る こ と を確認 し ます。 Oracle 構成フ ァ イ ルの設定については、 Oracle Net のマニ ュ アルを 参照 し て く だ さ い。 5 ス テ ッ プ 2: デー タ ベース イ ン タ フ ェ ー スのイ ン ス ト ール オペレーテ ィ ン グ シ ス テ ム の必要に応 じ て、 Oracle ク ラ イ ア ン ト ソ フ ト ウ ェ アのデ ィ レ ク ト リ がシ ス テ ムパ ス に あ る こ と を確認 し ます。 PowerBuilder のセ ッ ト ア ッ プ プ ロ グ ラ ム で、 標準 イ ン ス ト ールを選択 す る か、 カ ス タ ム イ ン ス ト ールを選択 し た場合は必要な Oracle デー タ ベース イ ン タ フ ェース を選択 し ます。 使用可能な Oracle デー タ ベー ス イ ン タ フ ェ ー ス の一覧につい て は、 133 ページの 「サポー ト し てい る Oracle のバージ ョ ン」 を参照 し て く だ さ い。 ス テ ッ プ 3: 接続の確 認 PowerBuilder の外部の環境で、 Oracle デー タ ベー ス サーバに接続 し 、 ア ク セ ス し たいデー タ ベース に ロ グ イ ン で き る こ と を確認 し ます。 以下の Oracle ツールを実行す る こ と に よ っ て、 接続を確認で き ます。 Oracle TNSPING (ま た は ほ か の ping ユーテ ィ リ テ ィ ) な ど の ツールは、 自分のマ シ ン か ら デー タ ベー ス サーバにア ク セ ス で き る か ど う か をチ ェ ッ ク し ます。 • デー タ ベース サーバ と の接続 • デー タ ベース と の接続 Oracle SQL*Plus な ど の ツールは、ア ク セ ス し たい Oracle デー タ ベース に ロ グ イ ン し 、 デー タ ベース 操作を実行 で き る か ど う か を チ ェ ッ ク し ま す。 デー タ ベー ス にア ク セ ス す る と き PowerBuilder のデー タ ベース プ ロ フ ァ イ ルで使用す る 予定の 接続パ ラ メ ー タ と 、 同 じ 値の接続パ ラ メ ー タ を指定す る こ と をお 勧め し ます。 140 PowerBuilder 第 10 章 Oracle の使い方 Oracle デー タ ベース イ ン タ フ ェ ースの定義 Oracle デー タ ベース イ ン タ フ ェース を介 し た接続を定義す る には、 少 な く と も 、 Oracle イ ン タ フ ェ ース用に DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の基本接続パ ラ メ ー タ 用の値を指定 し て、 デー タ ベース プ ロ フ ァ イ ルを作成 し な ければな り ません。 次回以降、 こ のデー タ ベー ス プ ロ フ ァ イ ルを選択す る と 、 開発環境でそのデー タ ベース にいつで も 接続で き ます。 デー タ ベース プ ロ フ ァ イ ルの定義方法については、 8 ページの 「デー タ ベース プ ロ フ ァ イ ルの使い方」 を参照 し て く だ さ い。 Oracle サーバの接続記述子の指定 ネ ッ ト ワー ク 上の Oracle デー タ ベース サーバに接続す る には、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブに あ る [サーバ] ボ ッ ク ス に、 適切な接続記述子を 指定 し ま す。 接続記述子は、 Oracle がデー タ ベース にア ク セ スす る と き に使用す る 接続パ ラ メ ー タ を指定 し ます。 ご使用の環境に対す る 適切な接続記述子については、 Oracle のマニ ュ アルを参照す る か、 シ ス テ ム管理者に問い合わせて く だ さ い。 接続記述子の指定 接続記述子の構文は、使用 し てい る Oracle ク ラ イ ア ン ト ソ フ ト ウ ェ ア に よ っ て異な り ます。 Net8 以上を使用 し てい る 場合は、 構文は以下の よ う にな り ます。 OracleServiceName SQL*Net バージ ョ ン 2.x を使用 し てい る 場合は、 構文は以下の よ う に な り ます。 @ TNS: OracleServiceName パラ メ ー タ @ TNS : OracleServiceName デー タ ベース と の接続 説明 ア ッ ト マー ク (@) は必須 Oracle ト ラ ン スペア レ ン ト ネ ッ ト ワー ク サブ ス ト レ イ ト (TNS) テ ク ノ ロ ジの識別子を指定 コ ロ ン (:) は必須 Oracle 構成 フ ァ イ ルでサーバに割 り 当て ら れて い る サービ ス名を指定 141 デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使い方 Net9 の ク ラ イ ア ン ト ソ フ ト ウ ェ ア を使用す る には、 ORA9 サービ ス に接続 し て、 接続記述子 ORA9 を Oracle9i 以降の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブの [サーバ] ボ ッ ク ス に 入力 し ます。 Net9 の例 デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使 い方 こ の節では、 Oracle ス ト ア ド プ ロ シージ ャ の使い方について解説 し ま す。 Oracle ス ト ア ド プ ロ シージ ャ と は? Oracle は、 ス ト ア ド プ ロ シージ ャ (ま た は関数) を、 SQL やほかの PL/SQL プ ロ グ ラ ミ ン グ言語ス テー ト メ ン ト を論理的にグループ化 し 、 特定の タ ス ク を実行す る 、 名前付 き の PL/SQL プ ロ グ ラ ム単位 と し て 定義 し てい ます。 ス ト ア ド プ ロ シージ ャ にはパ ラ メ ー タ を指定す る こ と が可能で、 1 つ ま たは複数の結果集合 (カー ソ ル変数 と も いい ます) を返 し ます。 ス ト ア ド プ ロ シージ ャ を自分の ス キーマで作成 し 、 こ れをデー タ デ ィ ク シ ョ ナ リ に格納す る と 、 複数のユーザが こ の ス ト ア ド プ ロ シージ ャ を 使用で き ます。 Oracle ス ト ア ド プ ロ シージ ャ で可能な作業 Oracle ス ト ア ド プ ロ シージ ャの使用方法 142 Oracle ス ト ア ド プ ロ シージ ャ は、 PowerBuilder アプ リ ケーシ ョ ンの中 で以下の よ う に使用で き ます。 • データ ウ ィ ン ド ウ オブジェ ク ト のデータ ソ ース と し て使用でき る • PowerBuilder アプ リ ケーシ ョ ン (結果集合を返すス ト ア ド プ ロ シージ ャ に対す る フ ェ ッ チをサポー ト す る ) の中で、埋め込み SQL 文の DECLARE PROCEDURE か ら 呼び出せ る • プ ロ シージ ャ を宣言す る と き に RPCFUNC キー ワ ー ド を使用す る こ と に よ っ て、PowerBuilder アプ リ ケーシ ョ ンの中か ら 外部関数や サブルーチン と し て呼び出せ る PowerBuilder 第 10 章 Oracle の使い方 RPCFUNC キー ワ ー ド を伴 う DECLARE PROCEDURE 文の構文について は、 『PowerScript リ フ ァ レ ン ス』 マニ ュ アルを参照 し て く だ さ い。 1 つの結果集合を返すス ト ア ド プ ロ シージ ャ は、デー タ ウ ィ ン ド ウ オブジ ェ ク ト と 埋め込み SQL で使用で き ま す。 し か し 、 RPCFUNC キー ワ ー ド で ス ト ア ド プ ロ シージ ャ を外 部関数やサブルーチン と し て宣言 し てい る 場合は除 き ます。 1 つの結果集合を返すプ ロ シージ ャ 複数の結果集合 を 返すプ ロ シ ー ジ ャ は、埋め込み SQL に限っ て使用で き ます。複数の結果集合は、デー タ ウ ィ ン ド ウ 、 レ ポー ト 、 ま たは RPCFUNC キー ワー ド ではサポー ト さ れてい ません。 複数の結果集合を返すプ ロ シージ ャ Oracle で結果集合を返すス ト ア ド プ ロ シージ ャ の使い方 以下の手順では、 ス ト ア ド プ ロ シージ ャ を PowerBuilder のデー タ ベー ス ペ イ ン タ の ISQL セ ッ シ ョ ン ビ ュ ーで作成す る こ と を前提 と し てい ます。 基本的な操作手順の概 要 ❖ 結果集合を返すス ト ア ド プ ロ シージ ャ を使用する 1 ス ト ア ド プ ロ シージ ャ を作成す る ために、 デー タ ベース ペ イ ン タ の ISQL セ ッ シ ョ ン ビ ュ ーを使用 し ます。 2 結果集合を IN OUT (REF)パ ラ メ ー タ で返すス ト ア ド プ ロ シージ ャ を作成 し ます。 3 その ス ト ア ド プ ロ シージ ャ をデー タ ソ ース と し て使用す る デー タ ウ ィ ン ド ウ オブジ ェ ク ト を作成 し ます。 デー タ ベース ペ イ ン タ の ISQL セ ッ シ ョ ン ビ ュ ーで ス ト ア ド プ ロ シー ジ ャ を作成す る 場合、 デフ ォ ル ト の SQL 構文の終止符を、 ス ト ア ド プ ロ シージ ャ 構文で使用す る 予定のない文字に変更 し ます。 デー タ ベース ペ イ ン タ の設定 デー タ ベー ス ペ イ ン タ のデ フ ォ ル ト の SQL 終止符はセ ミ コ ロ ン (;) です。 Oracle ス ト ア ド プ ロ シージ ャ 構文でセ ミ コ ロ ン を使用す る こ と が予定 さ れ る 場合は、 ペ イ ン タ の終止符を セ ミ コ ロ ン以外の文字に変 更 し て重複を避け る 必要が あ り ま す。 こ の場合、 バ ッ ク ク ォ ー ト (`) 文字な ど が適切です。 ❖ デー タ ベース ペ イ ン タ のデ フ ォル ト の SQL 終止符を変更する 1 PowerBuilder で System ユーザ と し て Oracle デー タ ベース に接続 し ます。 詳 し い手順については、 141 ページの 「Oracle デー タ ベース イ ン タ フ ェ ース の定義」 を参照 し て く だ さ い。 デー タ ベース と の接続 143 デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使い方 2 デー タ ベース ペ イ ン タ を開 き ます。 3 メ ニ ュ ーバーか ら [デザ イ ン|オプシ ョ ン] を選択 し ます。 DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。 必要であれば、 [全般] タ ブ を ク リ ッ ク し て [全般] プ ロ パテ ィ ページ を表示 し ま す。 4 [SQL 構文の終止符] ボ ッ ク ス に SQL 終止符 と し て使用す る 文字 (バ ッ ク ク ォ ー ト な ど) を入力 し ます。 5 [更新] ま たは [OK] ボ タ ン を ク リ ッ ク し ます。 SQL 終止符の設定が現行の接続に適用 さ れ、 以降の接続に も 変更 し ない限 り 適用 さ れます。 デー タ ベース ペ イ ン タ を設定 し た後、 IN OUT (参照) パ ラ メ ー タ で結 果集合を返すス ト ア ド プ ロ シージ ャ を作成で き ます。PowerBuilder は、 結果集合を検索 し て、 配置す る ためにデー タ ウ ィ ン ド ウ オブジ ェ ク ト を設定 し ます。 スト アド プロ シージャ の作成 結果集合 を 返す ス ト ア ド プ ロ シージ ャ を 作成す る 方法は何種類か あ り ます。 以下に、 その 1 つを示 し ます。 1 つの結果集合 と 複数の結果集合を返すス ト ア ド プ ロ シージ ャ が ど こ で使用で き る かについては、 142 ページの 「Oracle ス ト ア ド プ ロ シー ジ ャ で可能な作業」 を参照 し て く だ さ い。 ❖ Oracle で結果集合を返すス ト ア ド プ ロ シージ ャ を作成する 1 Oracle ユーザ ア カ ウ ン ト に必要なデー タ ベース ア ク セ スお よ び Oracle オブジ ェ ク ト (テーブルやプ ロ シージ ャ な ど) に ア ク セ ス す る 特権が設定 さ れてい る こ と を確認 し ます。 適切な ア ク セ ス お よ び特権が な い と 、 Oracle ス ト ア ド プ ロ シ ー ジ ャ を作成す る こ と がで き ません。 2 使用 し てい る Oracle デー タ ベース に tt と い う 名前の以下のテーブ ルが存在す る も の と し ます。 a 1 2 3 144 b Newman Everett c sysdate sysdate 結果集合のデー タ 型 と ス ト ア ド プ ロ シージ ャ が定義 さ れた パ ッ ケージ を作成 し ま す。 結果集合のデー タ 型は、 テーブルの定義 と 一致 さ せます。 PowerBuilder 第 10 章 Oracle の使い方 た と えば、 以下の SQL 文に よ っ て、 rctl と い う 結果集合のデー タ 型 で、 proc1 と い う ス ト ア ド プ ロ シージ ャ が定義 さ れた spm と い う Oracle パ ッ ケージが作成 さ れ ま す。 tt%ROWTYPE 属性に よ っ て、 テーブル tt 内のすべてのカ ラ ム を持つ よ う に rctl は定義 さ れ ます。 プ ロ シージ ャ proc1 は rc1 と い う カー ソ ル変数をパ ラ メ ー タ に受け 取 り ますが、 こ れは rctl デー タ 型の IN OUT パ ラ メ ー タ です。 CREATE OR REPLACE PACKAGE spm IS TYPE rctl IS REF CURSOR RETURN tt%ROWTYPE; PROCEDURE proc1(rc1 IN OUT rctl);END;` 4 定義 し たパ ッ ケージ と は別に Oracle ス ト ア ド プ ロ シージ ャ を作成 し ます。 以下の例は、 spm_proc 1 (1 つの結果集合を返す) と spm_proc2 (複 数の結果集合を返す) と い う 2 つの ス ト ア ド プ ロ シージ ャ を作成 す る 方法を示 し てい ます。 IN OUT の指定は、 PowerBuilder がカー ソ ル変数 (rc1 や rc2) を参 照渡 し で Oracle プ ロ シージ ャ に渡 し 、 プ ロ シージ ャ がカー ソ ルを 開 く こ と を 意 味 し て い ま す。 プ ロ シ ー ジ ャ 呼 び 出 し の 後、 PowerBuilder はカー ソ ルか ら 結果集合を フ ェ ッ チ し 、続けて カー ソ ルを閉 じ ます。 デー タ ウ ィ ン ド ウ オブ ジ ェ ク ト での spm_proc1 の例 以下の ス テー ト メ ン ト は、 1 つの結果集合を返す spm_proc1 を作成 し ます。 こ のプ ロ シージ ャ は、 PowerBuilder のデー タ ウ ィ ン ド ウ オブジ ェ ク ト の デー タ ソ ース と し て使用す る こ と がで き ます。 CREATE OR REPLACE PROCEDURE spm_proc1(rc1 IN OUT spm.rctl) AS BEGIN OPEN rc1 FOR SELECT * FROM tt; END;` 埋め込み SQL での spm_proc2 の例 以下の ス テー ト メ ン ト は、 2 つ の結果集合を返す spm_proc2 を作成 し ま す。 こ のプ ロ シージ ャ は、 埋め込み SQL にのみ使用で き ます。 CREATE OR REPLACE PROCEDURE spm_proc2 (rc1 IN OUT spm.rctl, rc2 IN OUT spm.rctl) AS BEGIN OPEN rc1 FOR SELECT * FROM tt ORDER BY 1; OPEN rc2 FOR SELECT * FROM tt ORDER BY 2;END;` デー タ ベース と の接続 145 デー タ ソ ース と し ての Oracle ス ト ア ド プ ロ シージ ャ の使い方 エ ラー チ ェ ッ ク 必要であれば、Oracle シ ス テ ム テーブルの public.user_errors でエ ラ ーが ないか ど う かチ ェ ッ ク を し ます。 ス ト ア ド プ ロ シージ ャ を作成す る と 、 その ス ト ア ド プ ロ シージ ャ を デー タ ソ ー ス と し て使用す る デー タ ウ ィ ン ド ウ オブ ジ ェ ク ト が定義 で き ます。 デー タ ウ ィ ン ド ウ オ ブ ジ ェ ク ト の作成 1 つの結果集合を返すス ト ア ド プ ロ シージ ャ は、 デー タ ウ ィ ン ド ウ オ ブジ ェ ク ト で使用で き ます。 ス ト ア ド プ ロ シージ ャ が複数の結果集合 を返す場合は、 埋め込み SQL 文でア ク セ ス し ます。 以下の手順では、 Oracle ス ト ア ド プ ロ シージ ャ が 1 つの結果集合だけ を返す こ と を前提 と し てい ます。 ❖ Oracle で結果集合を 返すスト アド プ ロ シージャ を 使用し て デー タ ウ ィ ン ド ウ オブ ジ ェ ク ト を作成する 1 新規作成 ダ イ ア ロ グボ ッ ク ス の [デー タ ウ ィ ン ド ウ ] ページで提 示様式を選択 し 、 [OK] を ク リ ッ ク し ます。 2 [ス ト ア ド プ ロ シージ ャ ] ア イ コ ン を選択 し 、 [OK] を ク リ ッ ク し ます。 ス ト ア ド プ ロ シージ ャ の選択 ウ ィ ザー ド ページが表示 さ れ、デー タ ベース で使用可能な ス ト ア ド プ ロ シージ ャ が一覧 さ れ ます。 3 デー タ ソ ース と し て使用す る ス ト ア ド プ ロ シージ ャ を選択 し 、 [次へ] ボ タ ン を ク リ ッ ク し ます。 4 デー タ ウ ィ ン ド ウ オブジ ェ ク ト を定義 し て、 ウ ィ ザー ド を終了 し ます。 デー タ ウ ィ ン ド ウ オブジ ェ ク ト を プ レ ビ ュ ーす る か、Retrieve を呼 び出す と 、 PowerBuilder は、 カー ソ ルか ら 結果集合 を フ ェ ッ チ し て、 デー タ ウ ィ ン ド ウ オブジ ェ ク ト に格納 し ます。 ウ ィ ザー ド の デー タ ソ ース の選択 ページの [プ レ ビ ュ ーの度に検索] を選択 し た場合、 デー タ ウ ィ ン ド ウ を開いた と き に、 プ レ ビ ュ ー ビ ュ ーに 結果集合が表示 さ れ ます。 146 PowerBuilder 第 10 章 Oracle の使い方 ラ ージ オブ ジ ェ ク ト 出力パ ラ メ ー タ の使用 ラ ージ オブジ ェ ク ト (LOB: large-object) を Oracle ス ト ア ド プ ロ シー ジ ャ や関数用の出力パ ラ メ ー タ と し て定義 し て、 ラ ージ オブジ ェ ク ト デー タ を検索で き ます。 各ス ト ア ド プ ロ シージ ャ や関数用に定義で き る LOB 出力引数の数に制限はあ り ません。 Oracle 10g では、 LOB デー タ 型の最大サ イ ズが増加 し 、 「4 ギガバ イ ト - 1」 か ら 「(4 ギガバ イ ト - 1) x デー タ ベース のブ ロ ッ ク サ イ ズ」 と 変 更にな り ま し た。 デー タ ベー ス のブ ロ ッ ク サ イ ズが 32K の場合、 最 大サ イ ズは 128 テ ラ バ イ ト にな り ます。 Oracle ユーザ定義デー タ 型の使い方 PowerBuilder はデー タ ベー ス ペ イ ン タ で ISQL セ ッ シ ョ ン ビ ュ ーの Oracle ユーザ定義デー タ 型(オブジ ェ ク ト )のための SQL CREATE TYPE 文 と CREATE TABLE 文を サポー ト し ます。 デー タ ベース ペ イ ン タ お よ び デー タ ウ ィ ン ド ウ ペ イ ン タ で、 ユーザ定義デー タ 型の SQL SELECT 文、 INSERT 文、 UPDATE 文、 DELETE 文を正確に処理 し ます。 PowerBuilder の Oracle ネ イ テ ィ ブ デー タ ベース イ ン タ フ ェース を使 う と 、 以下の処理がで き ます。 可能な作業 Oracle 構文を使用 し て、ユーザ定義デー タ 型を作成 Oracle 構文を使用 し て、ユーザ定義デー タ 型を参照 す る カ ラ ム付 き テーブルを作成 ユーザ定義デー タ 型を参照す る Oracle テーブルの カ ラ ム を検索 ユーザ定義デー タ 型 を 持つ Oracle テ ーブ ル内の デー タ を処理 ユーザ定義デー タ 型を持つ Oracle テーブル構文を ロ グ フ ァ イ ルにエ ク ス ポー ト する メ ソ ッ ド を呼び出す デー タ ベース と の接続 作業場所 デー タ ベース ペ イ ン タ デー タ ベース ペ イ ン タ デー タ ベース ペ イ ン タ デー タ ベース ペ イ ン タ デー タ ウ ィ ン ド ウ ペ イ ンタ デー タ ウ ィ ン ド ウ オブ ジェ ク ト デー タ ベース ペ イ ン タ デー タ ウ ィ ン ド ウ ペ イ ン タ (SQL ツールボ ッ ク ス の [計算] タ ブ) 147 Oracle ユーザ定義デー タ 型の使い方 以下は、 PowerBuilder での Oracle ユーザ定義デー タ 型の作成 と 使用法 を説明す る ための簡単な例です。 例 Oracle ユーザ定義デー タ 型についての詳細は、 Oracle のマニ ュ アルを 参照 し て く だ さ い。 ❖ Oracle ユーザ定義デー タ 型を作成 し 使用する 1 データ ベース ペイ ン タ の ISQL セッ ショ ン ビ ュ ーで、 ball_stats_type と player_type の 2 つの Oracle ユーザ定義デー タ 型を作成 し ます。 以下は、 ball_stats_type を 作成す る Oracle 構文です。 ball_stats_type 型の ball_stats オ ブ ジ ェ ク ト は、 get_avg と い う 関連付け ら れた メ ソ ッ ド を持つ こ と に注意 し て く だ さ い。 CREATE OR REPLACE TYPE ball_stats_type AS OBJECT (bat_avg NUMBER(4,3),rbi NUMBER(3),MEMBER FUNCTION get_avg RETURN NUMBER,PRAGMA RESTRICT_REFERENCES (get_avg,WNDS,RNPS,WNPS)); CREATE OR REPLACE TYPE BODY ball_stats_type AS MEMBER FUNCTION get_avg RETURN NUMBER IS BEGIN RETURN SELF.bat_avg; END; END; 以下は、player_type を作成す る Oracle SQL 構文です。player_type は、 ユーザ定義デー タ 型 ball_stats_type を参照 し ます。 PowerBuilder は、 こ の よ う にデー タ ベー ス ペ イ ン タ 、 デー タ ウ ィ ン ド ウ ペ イ ン タ 、 テーブル ペ イ ン タ で、 ネ ス ト を グ ラ フ ィ カルに表現 し ます (手順 3 参照)。 CREATE TYPE player_type AS OBJECT (player_no NUMBER(2),player_name VARCHAR2(30),ball_stats ball_stats_type); 2 デー タ ベース ペ イ ン タ では、 こ れ ら のユーザ定義デー タ 型を参照 す る lineup と い う 名前のテーブルを作成 し ます。 以下は、 lineup テーブルを作成 し 、 行を挿入す る Oracle SQL 構文 です。 lineup は、 ユーザ定義デー タ 型 player_type を参照 し ます。 CREATE TABLE lineup (position NUMBER(2) NOT NULL, player player_type); INSERT INTO lineup VALUES (1,player_type (15, 'Dustin Pedroia', ball_stats_type (0.317, 50))); 3 148 デー タ ベース ペ イ ン タ ま たはデー タ ウ ィ ン ド ウ ペ イ ン タ に lineup を表示 し ます。 PowerBuilder 第 10 章 Oracle の使い方 PowerBuilder は、 以下の よ う に構造体 -> メ ンバー表記法を使用 し てテーブルを表示 し ます。 lineup ====== position player->player_no player->player_name player->ball_stats->bat_avg player->ball_stats->rbi 4 デー タ ウ ィ ン ド ウ オブジ ェ ク ト の計算カ ラ ム を定義す る 場合は、 以下の 構造体 -> メ ンバー表記法を使用 し て、 オブジ ェ ク ト カ ラ ム player に含まれ る ball_stats オブジ ェ ク ト の get_avg メ ソ ッ ド にア ク セ ス し ます。 た と えば、 デー タ ウ ィ ン ド ウ ペ イ ン タ で作業をす る 場合、 SQL ツールボ ッ ク ス の [計算] タ ブで こ の表記法を使用す る こ と も で き ます。 player->ball_stats->get_avg() Oracle 10g の HA イ ベン ト 通知のサポー ト Oracle Real Application Clusters (RAC) は ク ラ ス タ デー タ ベース で、 共 有キ ャ ッ シ ュ アーキ テ ク チ ャ を使用 し ます。Oracle 10g Release 2 では、 RAC デー タ ベース に接続 さ れた High Availability (HA) ク ラ イ ア ン ト は、 ク ラ イ ア ン ト が行っ た接続に影響す る デー タ ベース エ ラ ー イ ベン ト の場合に、 サーバが それに通知す る か ど う か を 示すた めに コ ール バ ッ ク を登録す る こ と がで き ます。 こ の機能を利用す る には、 PowerBuilder ユーザは ト ラ ンザ ク シ ョ ン オ ブジ ェ ク ト の DBNotification イ ベン ト の ス ク リ プ ト を記述 し ま す。 詳 細につい て は、 オ ン ラ イ ン ヘルプ の DBNotification イ ベ ン ト お よ び HANotification デー タ ベース パ ラ メ ー タ の説明を参照 し て く だ さ い。 デー タ ベース と の接続 149 Oracle 10g の HA イ ベン ト 通知のサポー ト 150 PowerBuilder 第 4 部 デー タ ベース接続に関す る 作業 第 4 部では、 デー タ ベース接続の確立、 管理、 お よび ト ラ ブルシ ュ ーテ ィ ン グの方法について説明 し ます。 第 11 章 デー タ ベース接続の管理 こ の章について 必要なデー タ ベース ソ フ ト ウ ェ アの イ ン ス ト ールや、 デー タ ベー ス イ ン タ フ ェ ー ス の定義がすべて終了す る と 、 PowerBuilder か ら デー タ ベー ス に接続で き る よ う にな り ま す。 デー タ ベー ス に接続 す る こ と で、 デー タ ベー ス に保存 さ れてい る テーブルやビ ュ ーの 操作がで き ます。 こ の章では、 PowerBuilder においてデー タ ベース に接続す る 方法、 デー タ ベー ス プ ロ フ ァ イ ル を 管理す る 方法、 デー タ ベー ス プ ロ フ ァ イ ルを共有す る 方法について解説 し ます。 内容 用語 項目 デー タ ベース と の接続について デー タ ベース と の接続 デー タ ベース プ ロ フ ァ イ ルの管理 デー タ ベース プ ロ フ ァ イ ルの共有 デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト と エ ク ス ポー ト PowerBuilder 拡張属性シ ス テ ム テーブルについて ページ 153 155 159 159 164 165 こ の章の中でデー タ ベース と い う 用語は、特に指定のない限 り 、以 下の両方を表 し ます。 • 標準デー タ ベース イ ン タ フ ェ ースや適切な ド ラ イ バでア ク セ ス す る デー タ ベー ス ま たは DBMS (デー タ ベー ス 管理シ ス テ ム) • 適切なネ イ テ ィ ブ デー タ ベース イ ン タ フ ェ ース でア ク セ スす る デー タ ベース ま たは DBMS デー タ ベース と の接続について こ の節では、 PowerBuilder におけ る デー タ ベー ス 接続の概要につ いて説明 し ます。 ま た、 デー タ ベース と の接続を管理す る ために、 デー タ ベー ス プ ロ フ ァ イ ル を 使用す る 利点につい て も 説明 し ま す。 デー タ ベース と の接続 153 デー タ ベース と の接続について デー タ ベース と の接続 タ イ ミ ング PowerBuilder での接 続 以下のいずれかの操作に よ っ て、 デー タ ベース と 接続 し ます。 • デー タ ベース にア ク セ スす る ペ イ ン タ を開いた場合 • 埋め込み SQL 文 (CONNECT 文な ど) を含む PowerBuilder ス ク リ プ ト を コ ンパ イ ル ま たは保存 し た場合 • デー タ ベース にア ク セ スす る アプ リ ケーシ ョ ン を実行 し た場合 • アプ リ ケーシ ョ ン実行中に、 デー タ ベー ス にア ク セ ス す る デー タ ウ ィ ン ド ウ コ ン ト ロ ール関数を呼び出 し た場合 PowerBuilder 接続先 デー タ ベースの決定 デー タ ベー ス にア ク セ ス す る ペ イ ン タ を開 く と 、 PowerBuilder は最後 に使用 し たデー タ ベース に接続 し ます。 PowerBuilder は、レ ジ ス ト リ 内 の設定を読み取 る こ と に よ っ て、 最後にア ク セ ス し たデー タ ベー ス を 判断 し ます。 このマニ ュ アルの内容 こ のマニ ュ アルでは、 PowerBuilder を使用 し て アプ リ ケーシ ョ ン を開 発 し てい る と き の、 開発環境でのデー タ ベース への接続方法について 解説 し ます。 PowerBuilder アプ リ ケーシ ョ ン か ら デー タ ベー ス に接続す る 手順につ いては、 『ア プ リ ケーシ ョ ン テ ク ニ ッ ク 』 マ ニ ュ アル を参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イルの使い方 デー タ ベース プ ロ フ ァ イル と は? デー タ ベース プ ロ フ ァ イ ルは、 PowerBuilder の開発環境において、 特 定のデー タ ベース と の接続を定義す る パ ラ メ ー タ セ ッ ト であ り 、 レ ジ ス ト リ 内に格納 さ れ ます。 デー タ ベース プ ロ フ ァ イルを使 う 理由 デー タ ベー ス プ ロ フ ァ イ ル を作成 し 、 使用す る こ と で、 PowerBuilder か ら のデー タ ベー ス 接続を、 非常に簡単に管理で き ま す。 その理由は 以下の と お り です。 154 • デー タ ベース プ ロ フ ァ イ ルを選択 し て、 デー タ ベース と の接続の 確立、 変更を行 う 。 PowerBuilder セ ッ シ ョ ン中であれば、 いつで も 簡単に別のデー タ ベー ス に接続が可能。 こ の機能は、 異な る デー タ ベー ス と の接続を頻繁に切 り 替え て使用す る 場合に、 特に効果 的 • デー タ ベース プ ロ フ ァ イ ルを編集 し て、 接続パ ラ メ ー タ を変更 し た り 、 追加のパ ラ メ ー タ を指定 し た り す る PowerBuilder 第 11 章 デー タ ベース接続の管理 • [プ レ ビ ュ ー] タ ブ ページ を使用 し て、 接続を テ ス ト し 、 接続構文 を アプ リ ケーシ ョ ン コ ー ド に コ ピーす る • ア ク セ ス す る 必要のな く な っ たデー タ に対 し ては、 デー タ ベー ス プ ロ フ ァ イ ルを削除 • デー タ ベース プ ロ フ ァ イ ルを イ ン ポー ト お よ びエ ク ス ポー ト す る デー タ ベース プ ロ フ ァ イ ルは、 使用 し てい る デー タ を定義す る と き に 作成 さ れ、 レ ジ ス ト リ に自動的に保存 さ れ る ため、 以下の利点が あ り ます。 • いつで も 使用可能 • デー タ ベース プ ロ フ ァ イ ルを削除 し た り 編集 し た り し ない限 り 、 接続パ ラ メ ー タ がその ま ま保存 さ れ る デー タ ベース と の接続 PowerBuilder で、 デー タ ベー ス と の接続を確立 し た り 変更 し た り す る には、 デー タ ベース プ ロ フ ァ イ ルを使用 し ます。 ア ク セ ス し たいデー タ ベース に対応す る デー タ ベー ス プ ロ フ ァ イ ルは、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス で選択で き ます。 デー タ ベース プ ロ フ ァ イ ルの作 成方法については、 11 ページの 「デー タ ベース プ ロ フ ァ イ ルの作成」 を参照 し て く だ さ い。 デー タ ベース ペ イ ン タ を使用 し たデー タ ベース プ ロ フ ァ イルの選択 ア ク セ ス し た いデー タ ベー ス に対応す る デー タ ベー ス プ ロ フ ァ イ ル を、デー タ ベース ペ イ ン タ のオブジ ェ ク ト ビ ュ ーか ら 選択す る こ と も で き ます。 ただ し 、 こ の方法は、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス を 使用 し た場合 よ り も 、 使用す る シ ス テ ム リ ソ ー ス が多 く な り ま す。 デー タ ベース プ ロ フ ァ イルの選択 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス か ら デー タ ベース プ ロ フ ァ イ ル を選択で き ます。 デー タ ベース と の接続 155 デー タ ベース と の接続 ❖ DB プ ロ フ ァ イル ダ イ ア ロ グボ ッ ク ス を使用 し てデー タ ベースに接続する 1 パ ワ ーバーの [DB プ ロ フ ァ イ ル] ボ タ ン を ク リ ッ ク す る か、 メ ニ ュ ー バーの [ツール| DB プ ロ フ ァ イ ル] を選択 し ます。 [DB プ ロ フ ァ イル] ボ タ ン パ ワ ーバーに [DB プ ロ フ ァ イ ル] ボ タ ンが表示 さ れていない場合 は、 カ ス タ マ イ ズ機能を使用 し てパ ワ ーバーにボ タ ン を追加 し て く だ さ い。 パ ワ ーバーに [DB プ ロ フ ァ イ ル] ボ タ ン があ る と 、 異 な る デー タ ベー ス と の接続を頻繁に切 り 替え て使用す る 場合に便 利です。 ツールバーのカ ス タ マ イ ズの手順については、 『ユーザー ズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が開 き 、 イ ン ス ト ール済み のデー タ ベース イ ン タ フ ェース が一覧表示 さ れ ます。 イ ン タ フ ェ ース リ ス ト の保存場所 セ ッ ト ア ッ プ プ ロ グ ラ ム を 実行す る と 、 レ ジ ス ト リ 内の Vendors リ ス ト が更新 さ れ、 イ ン ス ト ールす る イ ン タ フ ェ ー ス が追加 さ れ ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス には、 Vendors リ ス ト に入っ てい る イ ン タ フ ェ ース が表示 さ れ ます。 2 使用す る イ ン タ フ ェ ー ス 名の左の正符号 (+) を ク リ ッ ク す る か、 イ ン タ フ ェ ース名を ダブル ク リ ッ ク し ます。 リ ス ト が展開 し 、 そ の イ ン タ フ ェ ー ス に定義 さ れ て い る デー タ ベース プ ロ フ ァ イ ルが表示 さ れ ます。 3 ア ク セ スす る デー タ ベース プ ロ フ ァ イ ル名を選択 し て [接続] を ク リ ッ ク す る か、 デー タ ベー ス プ ロ フ ァ イ ルのポ ッ プ ア ッ プ メ ニ ュ ーを表示 し て [接続] を選択 し ます。 PowerBuilder は指定 し たデー タ ベース に接続 し 、ペ イ ン タ の ワ ー ク スペース に戻 り ます。 デー タ ベー ス ペ イ ン タ のオブジ ェ ク ト ビ ュ ーか ら デー タ ベー ス プ ロ フ ァ イ ルを選択す る こ と がで き ます。 データ ベース ペイ ン タ のオブ ジ ェ ク ト ビ ュー ❖ デー タ ベース ペ イ ン タ を使用 し てデー タ ベースに接続する 1 パ ワ ーバーの [DB ペ イ ン タ ] ボ タ ン を ク リ ッ ク し ます。 デー タ ベー ス ペ イ ン タ が表示 さ れ ま す。 オブジ ェ ク ト ビ ュ ーに、 イ ン ス ト ール済みのデー タ ベース イ ン タ フ ェ ース の一覧が表示 さ れます。 156 PowerBuilder 第 11 章 デー タ ベース接続の管理 イ ン タ フ ェ ース リ ス ト の保存場所 セ ッ ト ア ッ プ プ ロ グ ラ ム を実行す る と 、 レ ジ ス ト リ 内の Vendors リ ス ト が更新 さ れ、 イ ン ス ト ールす る イ ン タ フ ェ ー ス が追加 さ れ ま す。 デー タ ベー ス ペ イ ン タ の [オ ブ ジ ェ ク ト ] ビ ュ ー に は、 Vendors リ ス ト に入っ てい る イ ン タ フ ェ ース が表示 さ れます。 2 使用す る イ ン タ フ ェ ー ス 名の左の正符号 (+) を ク リ ッ ク す る か、 イ ン タ フ ェース名を ダブル ク リ ッ ク し ます。 リ ス ト が展開 し 、 そ の イ ン タ フ ェ ー ス に定義 さ れ て い る デー タ ベース プ ロ フ ァ イ ルが表示 さ れ ます。 3 ア ク セ スす る デー タ ベース プ ロ フ ァ イ ルの名前を選択 し て [接続] ボ タ ン を ク リ ッ ク す る か、 デー タ ベー ス プ ロ フ ァ イ ルの ポ ッ プ ア ッ プ メ ニ ュ ーを表示 し て [接続] を選択 し ます。 接続時の処理 デー タ ベー ス プ ロ フ ァ イ ル を 選択 し て デー タ ベー ス に接続す る と 、 PowerBuilder によ ってプロ ファ イ ル名と 接続パラ メ ータ がレ ジス ト リ キー HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\11.0\Database Profiles\PowerBuilder に書 き 込まれます。 異な る デー タ ベース に接続す る たびに、 レ ジ ス ト リ 内の 「直前に使用 さ れた」 プ ロ フ ァ イ ル名は、 PowerBuilder に よ っ て新 し いデー タ ベー ス に対す る プ ロ フ ァ イ ル名に置 き 換え ら れ ます。 デー タ ベー ス にア ク セ ス す る ペ イ ン タ を開 く と 、 一番最後に使用 し た デー タ ベース に接続 さ れます。 PowerBuilder は レ ジ ス ト リ を読み取 り 、 ど のデー タ ベース と 最後に接続 し たか を判断 し ます。 デー タ ベー ス プ ロ フ ァ イ ルの名前が続 く デー タ ベー ス イ ン タ フ ェ ー ス に関す る 3 文字の略語が、 PowerBuilder の メ イ ン タ イ ト ル バーに表 示 さ れ ます。 デー タ ウ ィ ン ド ウ で作業を し てい る 場合は、 こ の表示に よ り 正 し い接続を使用 し てい る か を確認 し やす く な り ます。 た と えば、 PowerBuilder Code Examples ワー ク スペース を開いて、 EAS Demo デー タ ベース に接続す る 場合、 タ イ ト ル バーには 「pbexamples ODB [EAS Demo DB V110] - PowerBuilder」 と 表示 さ れます。 デー タ ベース と の接続 157 デー タ ベース と の接続 デー タ ベース プ ロ フ ァ イルでのパスワー ド の指定 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス でパ ス ワ ー ド を 指定 し て も 、 画面には表示 さ れ ません。 し か し 、 PowerBuilder が こ のプ ロ フ ァ イ ルの値を レ ジ ス ト リ に保存す る と き に、 パ ス ワ ー ド は DatabasePassword ま たは LogPassword フ ィ ー ル ド に暗号化 さ れた形式で表示 さ れます。 プ ロ フ ァ イ ル レ ジ ス ト リ エ ン ト リ でパ ス ワ ー ド が表示 さ れない よ う にす る には、 デー タ ベース プ ロ フ ァ イ ルを作成す る と き に以下の操作 を行い ます。 プ ロ フ ァ イル レ ジス ト リ エ ン ト リ での表 示の抑制 ❖ プ ロ フ ァ イル レ ジ ス ト リ エ ン ト リ でのパスワー ド 表示を抑制する 1 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス で [接続] タ ブの [DB 情報ダ イ ア ロ グの表示] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し ます。 こ れで、 こ のプ ロ フ ァ イ ル を選択 し てデー タ ベー ス へ接続す る と き に、 PowerBuilder に よ っ て、 不足 し てい る 情報の入力を求め ら れ ます。 2 設定の結果 [パ ス ワ ー ド ] ボ ッ ク ス を 空に し てお き ま す。 かわ り に、 デー タ ベー ス へ接続す る と き に表示 さ れ る 、 追加情報の入力を求め る ダ イ ア ロ グ ボ ッ ク ス でパ ス ワ ー ド を指定 し ます。 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス ではな く 、 追加情報の入力 を求め る ダ イ ア ロ グ ボ ッ ク ス でパ ス ワ ー ド を指定す る 場合、 パ ス ワ ー ド は、 こ のプ ロ フ ァ イ ルに対す る レ ジ ス ト リ エ ン ト リ と し て表示 さ れ ません。 た と えば、 デー タ ベース プ ロ フ ァ イ ルの作成時に DB プ ロ フ ァ イ ル設 定 - Adaptive Server Enterprise ダ イ ア ロ グボ ッ ク ス でパ ス ワ ー ド を指定 し ない場合、 Client Library への ロ グ イ ン ダ イ ア ロ グボ ッ ク ス が表示 さ れ、 不足 し てい る 情報の入力が求め ら れ ます。 PowerBuilder ア プ リ ケーシ ョ ンか ら デー タ ベースに接続する ための [プ レ ビ ュ ー] タ ブの使い方 PowerBuilder アプ リ ケーシ ョ ン か ら デー タ ベー ス に接続す る には、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト (デフ ォ ル ト では SQLCA) のプ ロ パテ ィ と し て、 必要な接続パ ラ メ ー タ を アプ リ ケーシ ョ ン の ス ク リ プ ト に指 定 し な ければな り ません。 た と えば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に接続パ ラ メ ー タ を指定 し ます。 158 PowerBuilder 第 11 章 デー タ ベース接続の管理 PowerBuilder では、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス に あ る [プ レ ビ ュ ー] タ ブに よ り 、 正確な PowerScript の接続構文を開発環境 で簡単に生成 し 、 それを PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で使用す る こ と がで き ます。 PowerBuilder ア プ リ ケーシ ョ ン か ら 接続す る ために [プ レ ビ ュ ー] タ ブ を利用す る 手順については、『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルの ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト の使用方法につい て説明 し て い る 節を参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イルの管理 PowerBuilder では、 既存のデー タ ベース プ ロ フ ァ イ ルの編集や削除が 簡単にで き ます。 デー タ ベース プ ロ フ ァ イ ルを編集す る こ と で、 1 つま たは複数の接続 パ ラ メ ー タ を変更す る こ と がで き ます。 デー タ にア ク セ スす る 必要が な く な っ た場合は、 そのデー タ ベー ス プ ロ フ ァ イ ルを削除で き ま す。 ま た、 プ ロ フ ァ イ ルを変更す る には、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス ま たはデー タ ベース ペ イ ン タ を使い ます。 設定の結果 デー タ ベース プ ロ フ ァ イ ルを編集ま たは削除す る と 、 PowerBuilder に よ り レ ジ ス ト リ 内のデー タ ベー ス プ ロ フ ァ イ ル エ ン ト リ が更新 ま た は削除 さ れます。 ODBC デー タ ソ ースのデー タ ベース プ ロ フ ァ イルの削除 ODBC デー タ ソ ー ス に接続す る デー タ ベー ス プ ロ フ ァ イ ルを削除 し て も 、 PowerBuilder が、 そのプ ロ フ ァ イ ルに対応す る デー タ ソ ー ス 定 義を、 ODBC.INI フ ァ イ ル ま たは レ ジ ス ト リ のサブ キーか ら 削除す る こ と はあ り ません。 つま り 、 デー タ ソ ース を再定義 し な く て も 、 必要 に応 じ て、 後でデー タ ベース プ ロ フ ァ イ ルだけ を再度作成で き ます。 デー タ ベース プ ロ フ ァ イルの共有 PowerBuilder で作業 し てい る 場合、 ユーザ間でデー タ ベース プ ロ フ ァ イ ルを共有で き ます。 デー タ ベース と の接続 159 デー タ ベース プ ロ フ ァ イルの共有 Sybase ツール間でのデー タ ベース プ ロ フ ァ イルの共有 PowerBuilder お よ び InfoMaker で使用 さ れ る デー タ ベース プ ロ フ ァ イ ルは、 レ ジ ス ト リ 内で共通の場所に格納 さ れ る ので、 こ れ ら の製品が 同 じ コ ン ピ ュ ー タ 上で動作 し てい る 場合、 1 つの製品で作成 し たデー タ ベース プ ロ フ ァ イ ルは、 ほかの製品で も 自動的に使用可能にな り ま す。 こ の節では、 PowerBuilder において共有デー タ ベース プ ロ フ ァ イ ルを 設定、 使用、 管理す る 方法について解説 し ます。 共有デー タ ベース プ ロ フ ァ イルについて 共有 し た いプ ロ フ ァ イ ルが格納 さ れ て い る フ ァ イ ルの場所 を 指定 し て、 PowerBuilder の開発環境でデー タ ベース プ ロ フ ァ イ ルが共有で き ます。 こ の場所は、 デー タ ベース ペ イ ン タ の DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス に指定 し ます。 共有プ ロ フ ァ イル フ ァ イルの保存場所 同一サ イ ト の PowerBuilder ユーザ間でデー タ ベース プ ロ フ ァ イ ルを共 有す る には、 すべてのユーザがア ク セ ス可能なネ ッ ト ワ ー ク フ ァ イ ル サーバにプ ロ フ ァ イ ル フ ァ イ ルを保存 し ます。 デー タ ベース プ ロ フ ァ イ ルを共有す る と 、 PowerBuilder に よ っ て レ ジ ス ト リ に格納 さ れてい る デー タ ベース プ ロ フ ァ イ ルに加え て、 指定す る フ ァ イ ルに格納 さ れて い る 共有デー タ ベー ス プ ロ フ ァ イ ル名が表 示 さ れ ます。 共有デー タ ベース プ ロ フ ァ イ ルは上書 き で き ません。 共有プ ロ フ ァ イ ル を 選択 し てデー タ ベー ス に接続で き ま すが、 共有 さ れて い る プ ロ フ ァ イ ルを編集、 保存、 ま たは削除で き ま せん ( し か し 、 163 ページ の 「 ロ ーカルで共有デー タ ベース プ ロ フ ァ イ ルを変更す る 」 で説明 し てい る よ う 、共有プ ロ フ ァ イ ルに変更を加え、それを自分の コ ン ピ ュ ー タ に保存で き ます)。 共有デー タ ベース プ ロ フ ァ イルの設定 DB 環境設定 ダ イ ア ロ グボ ッ ク ス で共有デー タ ベース プ ロ フ ァ イ ルを 設定 し ます。 160 PowerBuilder 第 11 章 ❖ デー タ ベース接続の管理 共有デー タ ベース プ ロ フ ァ イルを設定する 1 デー タ ベース ペ イ ン タ で、 メ ニ ュ ー バーか ら 、 [デザ イ ン|オプ シ ョ ン]を選択 し 、DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス を表示 し ます。 2 [全般] タ ブ ページの [共有 DB プ ロ フ ァ イ ル] ボ ッ ク ス に、 共有 し たいデー タ ベース プ ロ フ ァ イ ルを含んだ フ ァ イ ルの位置を指定 し ます。 こ の作業は、 以下のいずれかの方法で行い ます。 • [共有 DB プ ロ フ ァ イ ル]ボ ッ ク ス に、位置(パ ス名) を入力す る • 参照 ([...]) ボ タ ン を ク リ ッ ク し て、 フ ァ イ ルの位置を検索 し 、 [共有 DB プ ロ フ ァ イ ル] ボ ッ ク ス に表示す る 以下の例では、 共有デー タ ベース プ ロ フ ァ イ ルの フ ァ イ ルの位置 と し て、 c:\work\shared.ini を指定 し てい ます。 3 [OK] を ク リ ッ ク し ます。 PowerBuilder は、 共有デー タ ベー ス プ ロ フ ァ イ ルの設定を現行の 接続お よ び以降のすべての接続に適用 し 、 レ ジ ス ト リ にその設定 を保存 し ます。 デー タ ベース と の接続 161 デー タ ベース プ ロ フ ァ イルの共有 共有デー タ ベース プ ロ フ ァ イルを使用 し た接続 共有デー タ ベース プ ロ フ ァ イ ルを選択 し て、 デー タ ベース に接続 し ま す。 こ れは、 レ ジ ス ト リ に格納 さ れたプ ロ フ ァ イ ルを選択す る 方法 と 同 じ です。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス ま た は メ ニ ュ ーの [フ ァ イ ル] か ら 共有プ ロ フ ァ イ ルを選択で き ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス で、 共有 DB プ ロ フ ァ イ ルを選 択 し て、 接続 し ます。 DB プ ロ フ ァ イル ダ イ ア ログボ ッ ク ス ❖ DB プ ロ フ ァ イル ダ イ ア ロ グボ ッ ク スで共有デー タ ベース プ ロ フ ァ イルを選 択する 1 パ ワ ーバーの [DB プ ロ フ ァ イ ル] ボ タ ン を ク リ ッ ク す る か、 メ ニ ュ ー バーの [ツール| DB プ ロ フ ァ イ ル] を選択 し ます。 共有プ ロ フ ァ イ ル と ロ ーカル プ ロ フ ァ イ ルの両方が一覧表示 さ れ た DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。 共有プ ロ フ ァ イ ルは、 ネ ッ ト ワ ー ク ア イ コ ン と 「(Shared)」 と い う 文字で 示 さ れてい ます。 2 ア ク セ ス し た い共有プ ロ フ ァ イ ルの名前 を 選択 し 、 [接続] を ク リ ッ ク し ます。 PowerBuilder は、 選択 さ れたデー タ ベー ス に接続 し 、 ペ イ ン タ の ワー ク スペース に戻 り ます。 162 PowerBuilder 第 11 章 デー タ ベース接続の管理 ロー カルで共有デー タ ベース プ ロ フ ァ イルを変更する 共有プ ロ フ ァ イ ルは、 PowerBuilder を実行 し てい る 複数のユーザがア ク セ スす る ので、 こ れ ら のプ ロ フ ァ イ ルは変更すべ き ではあ り ません。 し か し 、 個人の使用のために共有デー タ ベース プ ロ フ ァ イ ルを変更 し てその コ ピーを保存 し たい場合は、 個人の コ ン ピ ュ ー タ の レ ジ ス ト リ でプ ロ フ ァ イ ルの編集や変更 し た コ ピーの保存を行い ます。 ❖ レ ジ ス ト リ で共有デー タ ベース プ ロ フ ァ イルの変更を保存する 1 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス で、編集 し たい共有プ ロ フ ァ イ ルを選択 し て、 [編集] ボ タ ン を ク リ ッ ク し ます。 2 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス が表示 さ れます。 必要 に応 じ て、 プ ロ フ ァ イ ル値を編集 し 、 [OK] を ク リ ッ ク し ます。 変更 し たプ ロ フ ァ イ ルの コ ピーを保存す る ための メ ッ セージ ボ ッ ク ス が表示 さ れます。 3 [はい] を ク リ ッ ク し ます。 変更 し た プ ロ フ ァ イ ルが、 PowerBuilder に よ っ て ロ ー カ ル コ ン ピ ュ ー タ の レ ジ ス ト リ に保存 さ れ ます。 共有デー タ ベース プ ロ フ ァ イルの管理 個人のマシ ン で PowerBuilder のデー タ ベース プ ロ フ ァ イ ルを管理す る 場合は、 変更 を 加え る 度に共有デー タ ベー ス プ ロ フ ァ イ ル を 更新 し て、 ユーザが利用で き る よ う にす る 必要があ り ます。 共有デー タ ベース プ ロ フ ァ イ ルは、 PowerBuilder を実行 し てい る 複数 のユーザがア ク セ スす る ので、 ネ ッ ト ワ ー ク 上でプ ロ フ ァ イ ルを変更 す る のは、 良い方法 と は言え ません 。 変更は、 ネ ッ ト ワー ク 上で行 う のではな く 、 ロ ーカルで更新 し たプ ロ フ ァ イ ルを ユーザに提供に し ま す。 ❖ 共有デー タ ベース プ ロ フ ァ イルを個人のマシ ン で管理する 1 個人の コ ン ピ ュ ー タ 上で、 共有プ ロ フ ァ イ ルに必要な変更を し て 保存を し ます。 こ れ ら の変更は レ ジ ス ト リ に保存 さ れます。 詳 し い手順については、 163 ページの 「 ロ ーカルで共有デー タ ベー ス プ ロ フ ァ イ ルを変更す る 」 を参照 し て く だ さ い。 2 デー タ ベース と の接続 レ ジ ス ト リ か ら 、更新 し たプ ロ フ ァ イ ル エ ン ト リ を、共有プ ロ フ ァ イ ルを含む既存の フ ァ イ ルにエ ク ス ポー ト し ます。 163 デー タ ベース プ ロ フ ァ イルのイ ンポー ト と エ ク スポー ト 詳 し い手順については、 164 ページの 「デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト と エ ク ス ポー ト 」 を参照 し て く だ さ い。 3 指定 さ れていない場合は、 ユーザが各自の コ ン ピ ュ ー タ で共有プ ロ フ ァ イ ルにア ク セ ス で き る よ う に、DB 環境設定プ ロ パテ ィ シー ト で新 し いプ ロ フ ァ イ ル フ ァ イ ルの位置を各ユーザに指定 さ せま す。 詳 し い手順については、160 ページの 「共有デー タ ベース プ ロ フ ァ イ ルの設定」 を参照 し て く だ さ い。 デー タ ベース プ ロ フ ァ イルのイ ンポー ト と エ ク スポー ト 各デー タ ベース イ ン タ フ ェース には [プ ロ フ ァ イ ルを イ ン ポー ト ] お よ び [プ ロ フ ァ イ ルを エ ク ス ポー ト ] オプシ ョ ンが提供 さ れてい ます。 [プ ロ フ ァ イ ルを イ ン ポー ト ] オプシ ョ ン を使用す る と 、 定義済みのプ ロ フ ァ イ ルを イ ン ポー ト し て、 イ ン ス ト ール済みのデー タ ベース イ ン タ フ ェ ース で使用で き ます。 反対に、 [プ ロ フ ァ イ ルを エ ク ス ポー ト ] オプシ ョ ン を使用す る と 、 定義済みのプ ロ フ ァ イ ルを エ ク ス ポー ト し て、 ほかのユーザに よ る 使用が可能にな り ます。 プ ロ フ ァ イ ルを イ ン ポー ト お よ びエ ク ス ポー ト す る 機能を使 う と 、 開 発者間でプ ロ フ ァ イ ルを簡単にや り と り で き ます。 つま り 、 共有 さ れ てい る フ ァ イ ルを保守す る こ と に よ っ てプ ロ フ ァ イ ルを保守す る 必要 も な く な り ます。 ネ ッ ト ワ ー ク への接続を確保で き ないモバ イ ル環境 での開発で フ ァ イ ルを共有す る のに理想的です。 ❖ プ ロ フ ァ イルを エ ク スポー ト する 1 デー タ ベース イ ン タ フ ェース をハ イ ラ イ ト 表示 し て、 ポ ッ プア ッ プ メ ニ ュ ーか ら [プ ロ フ ァ イ ル を エ ク ス ポー ト ] を 選択 し ま す (デー タ ベース ペ イ ン タ で、[フ ァ イ ル] メ ニ ュ ーま たはポ ッ プア ッ プ メ ニ ュ ーか ら [プ ロ フ ァ イ ルを エ ク ス ポー ト ] を選択 し ます)。 2 プ ロ フ ァ イ ルを エ ク ス ポー ト ダ イ ア ロ グボ ッ ク ス で、 エ ク ス ポー ト す る プ ロ フ ァ イ ルを選択 し て [OK] を ク リ ッ ク し ます。 定義済みのデー タ ベース イ ン タ フ ェ ース であ る か ど う かにかかわ ら ず、 プ ロ フ ァ イ ルを エ ク ス ポー ト ダ イ ア ロ グ ボ ッ ク ス に、 レ ジ ス ト リ に定義済みのすべて のプ ロ フ ァ イ ルが一覧表示 さ れ ま す。 デフ ォ ル ト では、 選択 さ れたデー タ ベース イ ン タ フ ェ ース に定義 済みのプ ロ フ ァ イ ルがエ ク ス ポー ト 用にマーキ ン グ さ れ ます。 164 PowerBuilder 第 11 章 3 デー タ ベース接続の管理 プ ロ フ ァ イ ル フ ァ イ ルの選択 ダ イ ア ロ グ ボ ッ ク ス で、 デ ィ レ ク ト リ と エ ク ス ポー ト さ れたプ ロ フ ァ イ ルを保存す る フ ァ イ ルを選択 し て、 [保存] を ク リ ッ ク し ます。 エ ク ス ポー ト さ れたプ ロ フ ァ イ ルは、 新規 ま たは既存の フ ァ イ ル に保存で き ま す。 既存の フ ァ イ ルに保存す る 場合、 プ ロ フ ァ イ ル は既存のプ ロ フ ァ イ ルに追加 さ れ ま す。 同名のプ ロ フ ァ イ ルがす でにあ る 場合は、 上書 き す る か ど う か を尋ね る メ ッ セージが表示 さ れ ます。 PowerBuilder 拡張属性シ ス テム テーブルについて PowerBuilder は 5 つのシ ス テ ム テーブル (Powersoft リ ポジ ト リ と 呼ん でいた も の) を使用 し て、 デー タ ベー ス のテーブルお よ びカ ラ ム につ いての拡張属性情報 (表示書式、 入力条件則、 フ ォ ン ト 情報な ど) を 格納 し ま す。 ま た、 PowerBuilder において、 テーブル を作成 し た り 変 更 し た り す る と き に も 、 拡張属性の定義がで き ます。 こ の節では、 以下の項目について解説 し ます。 • デー タ ベー ス へ初めて ロ グ イ ンす る と き に、 適切な ア ク セ ス 権を 使用 し て PowerBuilder 拡張属性シ ス テ ム テーブルを作成す る 方法 • PowerBuilder 拡張属性シ ス テ ム テーブルを表示 し 、 開 く 方法 • PowerBuilder 拡張属性シ ス テ ム テーブルに格納 さ れてい る 情報の 種類について • 拡張属性シ ス テ ム テーブルへのア ク セ ス を制御す る 方法 デー タ ベースへの初めてのログ イ ン デフ ォ ル ト で、 デー タ ベース に最初に接続 し た と き に PowerBuilder に よ っ て拡張属性シ ス テ ム テーブルが作成 さ れます。 PowerBuilder が適切な ア ク セ ス権限を持っ た拡張属性シ ス テ ム テーブ ルを作成 し て、すべてのユーザが こ れを利用で き る よ う にす る ために、 PowerBuilder を使用 し て最初にデー タ ベー ス に接続す る 担当者は、 適 切な権限を使用 し て ロ グ イ ンす る 必要があ り ます。 デー タ ベース と の接続 165 PowerBuilder 拡張属性シ ス テム テーブルについて ❖ PowerBuilder 拡張属性シ ス テム テーブルを正確に作成する • PowerBuilder を使用 し て最初にデー タ ベース に接続す る 場合は、そ の担当者がテーブルを作成 し 、PUBLIC を実行す る 権限を持っ てい る こ と を確認 し て く だ さ い。 つ ま り 、 初回のデー タ ベー ス 接続を行 う ユーザは、 デー タ ベー ス オーナー、 デー タ ベース管理者、 シ ス テ ム ユーザ、 シ ス テ ム管理 者、 シ ス テ ム オーナー、 ま たは DBMS で指定 さ れたユーザで ロ グ イ ン し ます。 PowerBuilder 拡張属性シ ス テム テーブルの表示 テーブルやカ ラ ムの情報を変更す る と 、 拡張属性シ ス テ ム テーブルは PowerBuilder に よ っ て自動的に更新 さ れ ます。PowerBuilder 拡張属性シ ス テ ム テーブルは、DBMS が提供す る シ ス テ ム テーブル と は異な り ま す。 PowerBuilder 拡張属性シ ス テ ム テーブルは、必要に応 じ て、ほかのテー ブル と 同様に、 デー タ ベース ペ イ ン タ で開いて表示で き ます。 166 PowerBuilder 第 11 章 ❖ PowerBuilder 拡張属性シス テム テーブルを表示する 1 デー タ ベース ペ イ ン タ で、 ア ク テ ィ ブな接続のデー タ ベース オブ ジ ェ ク ト の リ ス ト で [テーブル] を ハ イ ラ イ ト 表示 し て、 ポ ッ プ ア ッ プ メ ニ ュ ーか ら [シ ス テ ム テーブルを表示] を選択 し ます。 2 次の よ う に、 PowerBuilder 拡張属性シ ス テ ム テーブル と DBMS シ ス テ ム テーブルがテーブル リ ス ト に表示 さ れます。 • デー タ ベース と の接続 デー タ ベース接続の管理 PowerBuilder シス テム テーブル pbcatcol、 pbcatedt、 pbcatfmt、 pbcattbl、 pbcatvld と い う 5 つのシ ス テ ム テーブルがあ り ます。 167 PowerBuilder 拡張属性シ ス テム テーブルについて • DBMS シ ス テム テーブル DBMS で提供 さ れ る シ ス テ ム テーブ ルは、通常、DBMS 固有の修飾子 (sys や dbo な ど) を伴い ます。 3 PowerBuilder シ ス テ ム テーブルの内容が、 オブジ ェ ク ト レ イ ア ウ ト 、 オブジ ェ ク ト の詳細、 ま たはカ ラ ム ビ ュ ーに表示 さ れ ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 拡張属性シ ス テム テーブルは編集 し ないで く だ さ い PowerBuilder 拡張属性シ ス テ ム テーブル内の値は変更 し ないで く だ さ い。 拡張属性シ ス テム テーブルの内容 表 11-1 に示す よ う に、 PowerBuilder では、 5 種類の拡張属性情報を シ ス テ ム テーブルに格納 し てい ます。 168 PowerBuilder 第 11 章 デー タ ベース接続の管理 表 11-1: 拡張属性シ ス テム テーブル シス テム テーブル pbcatcol 情報の種類 カラム pbcattbl 編集様式 表示書式 テーブル pbcatvld 入力条件則 pbcatedt pbcatfmt 属性 カ ラ ム の名前、 コ メ ン ト 、 ヘ ッ ダ、 ラ ベル、 大文字 と 小文字の区別、 初期値、 位置揃え 編集様式の名前 と 定義 表示書式の名前 と 定義 テーブルの名前、 所有者、 (デー タ 、 ヘ ッ ダ、 ラ ベルの) デフ ォ ル ト フ ォ ン ト 、 コ メ ン ト 入力条件則の名前 と 定義 PowerBuilder シ ス テ ム テーブルの詳細については、 『ユーザーズ ガ イ ド 』 マニ ュ アルの 「付録」 を参照 し て く だ さ い。 シ ス テム テーブル名の修飾子 デー タ ベース に よ っ て、 PowerBuilder は、 デフ ォ ル ト の DBMS 固有の 修飾子をシス テム テーブル名の先頭に付けま す。 たと えば、 PowerBuilder シ ス テ ム テーブルの名前は、 SQL Server デー タ ベース の場合は修飾子 DBO が先頭に付 き (DBO.pbcatcol) 、 Oracle デー タ ベース の場合は修飾 子 SYSTEM が先頭に付 き ます (SYSTEM.pbcatfmt)。 前述の表は、 DBMS 固有の修飾子が付いていない、 シ ス テ ム テーブル の基本 と な る 名前を それぞれ示 し た も のです。 シ ス テム テーブルへのア ク セスの制御 サ イ ト の PowerBuilder シ ス テ ム テーブルへのア ク セ ス を制御す る ため に、 PowerBuilder に対 し て シ ス テ ム テーブルを作成ま たは更新 し ない よ う に指定 し た り 、 一部のユーザ ま たはグループだけがシ ス テ ム テー ブルにア ク セ ス で き る よ う に指定 し た り す る こ と がで き ます。 シ ス テ ム テーブルへのア ク セ ス を制御す る には、 以下のいずれかの作 業を行い ます。 デー タ ベース と の接続 デー タ ベー ス ペ イ ン タ の DB 環境設定 ダ イ ア ロ グボ ッ ク ス で、 [拡張属性の使用] の設定を し ます。 • [拡張属性の使用] の設定 • [読み取 り 専用] の設定 デー タ ベー ス ペ イ ン タ の DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス で、 [読み取 り 専用] の設定を し ます。 169 PowerBuilder 拡張属性シ ス テム テーブルについて • シ ス テム テーブルのア ク セス権の指定 サ イ ト の ユ ー ザ ま た は グ ループに対 し て、 シ ス テ ム テーブルの明示的な ア ク セ ス権を与え ます。 [拡張属性の使用] または [読み取 り 専用] の設定によ る ア ク セスの制御 ❖ 環境設定項目 [拡張属性の使用] [拡張属性の使用] または [読み取 り 専用] を設定 し てシ ス テム テーブルへ のア ク セス を制御する 1 メ ニ ュ ー バーの [デザ イ ン|オプシ ョ ン] を選択 し て、 DB 環境 設定 ダ イ ア ロ グボ ッ ク ス を表示 し ます。 2 [全般] タ ブ ページで [拡張属性の使用] ま たは [読み取 り 専用] の値を設定 し ます。 必要な操作 チェ ッ ク ボ ッ ク ス を オ フ にす る 効果 PowerBuilder シ ス テ ム テーブルが存在 し ない場合、 シ ス テ ム テーブルが作成 さ れな い。 かわ り に、 ペ イ ン タ で は、 拡張属性 (ヘ ッ ダ、 ラ ベル、 テ キ ス ト の色な ど) の 適切なデフ ォ ル ト 値が使用 さ れ る PowerBuilder シ ス テ ム テーブルがすでに存在す る 場合、 デー タ ウ ィ ン ド ウ オブ ジ ェ ク ト を新 し く 作成す る と き に、 PowerBuilder はそのシ ス テ ム テーブルを使用 し ない 170 PowerBuilder 第 11 章 環境設定項目 [読み取 り 専用] 必要な操作 チェ ッ クボ ッ ク ス を オンにす る デー タ ベース接続の管理 効果 PowerBuilder シ ス テ ム テーブルがすでに存在す る 場合、 デー タ ウ ィ ン ド ウ オブ ジ ェ ク ト を新 し く 作成す る と き に、PowerBuilder はそのシ ス テ ム テーブルを使用す る が、 そのシ ス テ ム テーブルが更新 さ れ る こ と はない [読み取 り 専用] チ ェ ッ ク ボ ッ ク ス がオ ン の場合、 デー タ ウ ィ ン ド ウ ペ イ ン タ か ら 、 シ ス テ ム テーブルやほか のデー タ ベース テーブル内の情報の変更 (更新) はで き ない 3 [OK] ボ タ ン を ク リ ッ ク し ます。 PowerBuilder は、環境設定項目の設定を現行の接続や以降のすべて の接続に適用 し 、 それ ら を レ ジ ス ト リ に保存 し ます。 ア ク セス権によ る シ ス テム テーブルへのア ク セスの制御 使用 し てい る DBMS が SQL GRANT 文や REVOKE 文を サポー ト し てい る 場合、PowerBuilder シ ス テ ム テーブルへのア ク セ ス を制御で き ます。 各 リ ポ ジ ト リ テーブルに対す る デ フ ォ ル ト の権限は以下の と お り で す。 GRANT SELECT, UPDATE, INSERT, DELETE ON table TO PUBLIC シ ス テ ム テーブルを作成 し た後で、 た と えば、 SELECT 権限を エ ン ド ユーザに、 SELECT、 UPDATE、 INSERT、 DELETE 権限を開発者に与え る こ と に よ っ て、 シ ス テ ム テーブルへのア ク セ ス を制御で き ます。 こ の 手法の場合、 DBMS 自体が備え てい る セ キ ュ リ テ ィ と 柔軟性を活用で き ます。 デー タ ベース と の接続 171 PowerBuilder 拡張属性シ ス テム テーブルについて 172 PowerBuilder 第 1 2 章 接続パ ラ メ ー タ の追加設定 こ の章について デー タ ベー ス 接続の設定を さ ら に細か く 調整 し 、 使用す る イ ン タ フ ェース がサポー ト す る DBMS 固有の機能を利用す る ために、 必 要に応 じ て接続パ ラ メ ー タ を追加設定で き ます。 追加で き る 接続 パ ラ メ ー タ には、 以下の 2 種類があ り ます。 • デー タ ベース パ ラ メ ー タ • デー タ ベース環境設定項目 こ れ ら の接続パ ラ メ ー タ については、 オ ン ラ イ ン ヘルプの 「デー タ ベース接続」 で説明 し てい ます。 こ の章で は、 PowerBuilder のデー タ ベー ス パ ラ メ ー タ と デー タ ベース環境設定項目の内容について解説 し ます。 内容 項目 接続パ ラ メ ー タ を設定す る ための基本手順 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス について デー タ ベース パ ラ メ ー タ の設定 デー タ ベース環境設定項目の設定 ページ 173 174 175 179 接続パラ メ ー タ を設定する ための基本手順 こ の節では、 PowerBuilder か ら 、 デー タ ベー ス パ ラ メ ー タ と デー タ ベース環境設定項目を設定す る 方法について解説 し ます。 ❖ デー タ ベース パラ メ ー タ を設定する 1 開発環境ま たは コ ー ド でデー タ ベース パ ラ メ ー タ を設定す る 方法を理解 し ます。 175 ページの 「デー タ ベー ス パ ラ メ ー タ の設定」 を参照 し て く だ さ い。 2 デー タ ベース と の接続 使用 し てい る デー タ ベー ス イ ン タ フ ェ ース に対 し て設定で き る デー タ ベース パ ラ メ ー タ を調べます。 173 DB プ ロ フ ァ イル設定 ダ イ ア ログボ ッ ク スについて サ ポー ト し て い る デー タ ベー ス イ ン タ フ ェ ー ス と 、 そ の イ ン タ フ ェ ー ス で使用で き る デー タ ベー ス パ ラ メ ー タ の一覧につい て は、 オ ン ラ イ ン ヘルプの 「デー タ ベース パ ラ メ ー タ と サポー ト し てい る デー タ ベース イ ン タ フ ェ ース」 を参照 し て く だ さ い。 ❖ 3 オ ン ラ イ ン ヘルプで、 設定す る デー タ ベース パ ラ メ ー タ について の解説を参照 し ます。 4 データ ベース 接続に対し てデータ ベース パラ メ ータ を 設定し ま す。 デー タ ベース環境設定項目を設定する 1 開発環境ま たは PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト の中 でデー タ ベース環境設定項目を設定す る 方法を理解 し ます。 179 ページの 「デー タ ベース環境設定項目の設定」 を参照 し て く だ さ い。 2 使用 し てい る DBMS に対 し て設定で き る デー タ ベース環境設定項 目を調べます。 サ ポー ト し て い る デー タ ベー ス イ ン タ フ ェ ー ス と 、 そ の イ ン タ フ ェ ー ス で使用で き る デー タ ベー ス 環境設定項目の一覧について は、 オ ン ラ イ ン ヘルプの 「デー タ ベース パ ラ メ ー タ と サポー ト し てい る デー タ ベース イ ン タ フ ェ ース」 を参照 し て く だ さ い。 3 オ ン ラ イ ン ヘルプで、 設定す る 環境設定項目についての解説を参 照 し ます。 4 デー タ ベー ス 接続に対 し てデー タ ベー ス 環境設定項目を設定 し ま す。 DB プ ロ フ ァ イル設定 ダ イ ア ログボ ッ ク スについて イ ン タ フ ェ ース固有の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を使 用すれば、 開発環境ま たは コ ー ド で追加接続パ ラ メ ー タ を簡単に設定 で き ます。 こ のダ イ ア ロ グボ ッ ク ス では、 以下の処理を行え ます。 • 174 デー タ ベース イ ン タ フ ェース がサポー ト し てい る 接続オプシ ョ ン の値を指定す る PowerBuilder 第 12 章 接続パ ラ メ ー タ の追加設定 各デー タ ベース イ ン タ フ ェ ース は、 独自の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を持っ てお り 、 その イ ン タ フ ェ ー ス 専用の接 続パ ラ メ ー タ の設定が入っ てい ま す。 関連す る パ ラ メ ー タ は同 じ タ ブ ページでグループ化 さ れてい ます。 すべての イ ン タ フ ェ ース 用の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス には、 [接続] タ ブ お よ び [プ レ ビ ュ ー] タ ブが含 ま れてい ま す。 イ ン タ フ ェ ー ス の 機能 と 必要に応 じ て、 こ れ以外の タ ブ ページ も 表示 さ れます。 • 開発環境で簡単に追加接続パ ラ メ ー タ を設定す る 接続パ ラ メ ー タ (デー タ ベース パ ラ メ ー タ お よ び ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のプ ロ パテ ィ ) の値は、チ ェ ッ ク ボ ッ ク ス、 ド ロ ッ プダ ウ ン リ ス ト 、 お よ びテ キ ス ト ボ ッ ク ス を使用 し て、 簡単に指 定す る こ と がで き ます。 デー タ ベース プ ロ フ ァ イ ルを シ ス テ ム レ ジ ス ト リ に保存す る と 、 PowerBuilder に よ り 、 正 し い構文が自動的 に生成 さ れ ます。 • PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト で使用す る ために接 続構文を生成す る PowerBuilder で DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定 す る と 、 指 定 し た 各 オ プ シ ョ ン に 対 応 し た 接 続 構 文 が [プ レ ビ ュ ー] タ ブ上に生成 さ れます。 PowerBuilder は、 対応す る デー タ ベー ス パ ラ メ ー タ ま たは ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト プ ロ パ テ ィ 名を各オプシ ョ ン に割 り 当て、 引用符、 カ ン マ、 セ ミ コ ロ ン な ど を 必要 な 場所に挿入 し ま す。 [プ レ ビ ュ ー] タ ブ の構文は、 PowerBuilder ア プ リ ケーシ ョ ン の ス ク リ プ ト に コ ピ ーす る こ と が で き ます。 デー タ ベース パラ メ ー タ の設定 PowerBuilder では、 以下のいずれかの処理を行 う こ と に よ り 、 デー タ ベース パ ラ メ ー タ を設定で き ます。 デー タ ベース と の接続 • 開発環境で、 接続用に DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を編集す る • アプ リ ケーシ ョ ンの ス ク リ プ ト で接続パ ラ メ ー タ を指定す る 175 デー タ ベース パ ラ メ ー タ の設定 開発環境でのデー タ ベース パラ メ ー タ の設定 デー タ ベース プ ロ フ ァ イルの編集 PowerBuilder の開発環境で、 デー タ ベー ス 接続に対 し てデー タ ベー ス パ ラ メ ー タ を 設定す る には、 そ の接続に対応す る デー タ ベー ス プ ロ フ ァ イ ルを編集 し ます。 文字列の文字数制限 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス に指定す る デー タ ベース パ ラ メ ー タ を含む文字列は、 999 文字以内で指定 し ます。 こ の制限は、 開発環境でデー タ ベース プ ロ フ ァ イ ルに指定す る デー タ ベース パ ラ メ ー タ だけに適用 さ れます。 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のプ ロ パテ ィ と し て コ ー ド に指定す る デー タ ベー ス 文字列には、 文 字数の制限があ り ません。 PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト でのデー タ ベース パラ メ ー タ の設定 デー タ ベー ス に接続す る ア プ リ ケ ーシ ョ ン を 開発 し て い る 場合、 デ フ ォ ル ト の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト (SQLCA)、 ま たは作成 し た ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のプ ロ パテ ィ と し て、 ス ク リ プ ト の 中で要求 さ れ る 接続パ ラ メ ー タ を指定 し な ければな り ません。 た と え ば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に接続パ ラ メ ー タ を指定 し ま す。 ス ク リ プ ト に指定す る 接続パ ラ メ ー タ の 1 つに DBParm が あ り ま す。 以下の方法で指定 し ます。 • (推奨) DBParm 構文を、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピーす る • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ に値を設定 す る PowerScript コ ー ド を記述す る • 外部テ キ ス ト フ ァ イ ルか ら DBParm 値を読み込む [プ レ ビ ュ ー] タ ブからの DBParm 構文の コ ピー PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト に DBParm パ ラ メ ー タ を指 定 す る に は、 DB プ ロ フ ァ イ ル 設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら DBParm 構文 を コ ー ド に コ ピ ー し 、 必要で あれば、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を修正す る のが も っ と も 簡単です。 176 PowerBuilder 第 12 章 接続パ ラ メ ー タ の追加設定 開発環境の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス でパ ラ メ ー タ を 設定す る と 、 PowerBuilder は接続構文を [プ レ ビ ュ ー] タ ブ上に生成 し ます。 し たが っ て、 構文を [プ レ ビ ュ ー] タ ブか ら 直接 コ ピーす る と 、 コ ー ド で使用す る DBParm 構文が正 し い こ と が保証 さ れます。 ❖ DBParm 構文を [プ レ ビ ュ ー] タ ブから コ ー ド に コ ピーする 1 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の 1 つ以上の タ ブで、設 定 し たいパ ラ メ ー タ の値を指定 し ます。 詳 し い手順については、 176 ページの 「開発環境でのデー タ ベース パ ラ メ ー タ の設定」 を参照 し て く だ さ い。 パ ラ メ ー タ の詳細 と 指定す る 値については、 [ヘルプ] ボ タ ン を ク リ ッ ク し て参照 し て く だ さ い。 2 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ないで現行の タ ブへの変更を保存す る 場合は、 [更新] ボ タ ン を ク リ ッ ク し ます。 3 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 選択 し た各オプシ ョ ン に対応 し た DBParm 構文が [DB 接続構文] ボ ッ ク ス に表示 さ れます。 4 [DB 接続構文] ボ ッ ク ス のテ キ ス ト を選択 し て、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 選択 し た テ キ ス ト を PowerBuilder が ク リ ッ プボー ド に コ ピー し ま す。 5 [OK] を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ます。 6 [プレ ビ ュ ー] タ ブから 選択し たテキス ト を コ ード に貼り 付け、 必要 であればト ラ ン ザク ショ ン オブジェ ク ト のデフ ォ ルト 名 (SQLCA) を変更 し ます。 DBParm プ ロパテ ィ 値を設定する ための PowerScript コ ー ド の記述 ス ク リ プ ト の中で接続パ ラ メ ー タ を指定す る には、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のプ ロ パテ ィ に対 し て値を割 り 当て る ための PowerScript コ ー ド を記述す る 方法 も あ り ま す。 PowerBuilder では、 デー タ ベー ス と 通信す る た めに、 ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト と 呼ばれ る 非 ビ ジ ュ アル オブジ ェ ク ト を使用 し ます。 デフ ォ ル ト の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の名前は SQLCA で、 こ れは SQL Communications Area の 略です。 デー タ ベース と の接続 177 デー タ ベース パ ラ メ ー タ の設定 SQLCA は 15 種類のプ ロ パテ ィ を持ち、その中の 10 種類がデー タ ベー ス と の接続に使用 さ れ ます。その 10 種類の接続プ ロ パテ ィ の中の 1 つ が DBParm です。 DBParm プ ロ パテ ィ には DBMS 固有のパ ラ メ ー タ を 指定 し ま す。 こ の指定に よ っ て、 デー タ ベー ス イ ン タ フ ェ ー ス がサ ポー ト す る さ ま ざ ま な機能を アプ リ ケーシ ョ ン で使用で き ます。 ❖ PowerBuilder ス ク リ プ ト で DBParm プ ロパテ ィ の値を設定する 1 接続パ ラ メ ー タ を指定す る ア プ リ ケーシ ョ ン の ス ク リ プ ト を開 き ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 2 以下の PowerScript 構文で DBParm パラ メ ータ を指定し ま す。DBParm パ ラ メ ー タ 間はカ ン マで区切 り 、DBParm 文字列全体を二重引用符 で囲みます。 SQLCA.dbParm = "parameter_1, parameter_2, parameter_n" た と えば、 以下の PowerBuilder ス ク リ プ ト では、 Sales と い う 名前 の ODBC デー タ ソ ース に対 し て DBParm プ ロ パテ ィ を設定 し てい ます。 こ の例の場合、 DBParm プ ロ パテ ィ に ConnectString と Async と い う 2 つのパ ラ メ ー タ が設定 さ れてい ます。 SQLCA.dbParm="ConnectString='DSN=Sales;UID=PB; PWD=xyz',Async=1" 3 PowerBuilder ス ク リ プ ト を コ ンパ イ ル し 、 変更を保存 し ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 外部テキス ト フ ァ イルからの DBParm 値の読み込み PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBParm プ ロ パテ ィ を 設定す る には、PowerScript ProfileString 関数を使用 し て、アプ リ ケーシ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ルの特定のセ ク シ ョ ン か ら 、 DBParm 値を読み込む方法 も あ り ます。 ❖ 外部テキス ト フ ァ イルか らの DBParm 値の読み込み 1 接続パ ラ メ ー タ を指定す る ア プ リ ケーシ ョ ン の ス ク リ プ ト を開 き ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 178 PowerBuilder 第 12 章 2 接続パ ラ メ ー タ の追加設定 SQLCA.DBParm プ ロ パテ ィ に以下の構文で ProfileString 関数を指定 し ます。 SQLCA.dbParm = ProfileString ( file, section, key, default ) た と えば、 以下の PowerBuilder ス ク リ プ ト では APP.INI フ ァ イ ル の [Database] セ ク シ ョ ン か ら DBParm 値を読み込みます。 SQLCA.dbParm=ProfileString("APP.INI","Database", "dbParm","") 3 ス ク リ プ ト を コ ンパ イ ル し 、 変更を保存 し ます。 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 デー タ ベース環境設定項目の設定 設定方法 デー タ ベース と の接続 PowerBuilder において接続関連のデー タ ベー ス 環境設定項目を設定す る 方法は、以下の表に示す よ う に異な り ます。PowerBuilder アプ リ ケー シ ョ ン の ス ク リ プ ト で設定す る こ と がで き る デー タ ベー ス環境設定項 目は、 AutoCommit と Lock だけです。 179 デー タ ベース環境設定項目の設定 表 12-1: デー タ ベース環境設定項目 と その編集場所 PowerBuilder ア プ リ ケーシ ョ ン で設定 する場合の編集対象 アプ リ ケーシ ョ ン スク リプト アプ リ ケーシ ョ ン スク リプト — デー タ ベース 環境設定項目 自動 コ ミ ッ ト モー ド (AutoCommit) 分離レベル (Lock) 共有 DB プ ロ フ ァ イ ル (Shared Database Profiles) 開発環境の中 で 設定 す る場合の編集対象 DB プ ロ フ ァ イ ル 設定 ダ イ ア ロ グボ ッ ク ス DB プ ロ フ ァ イ ル 設定 ダ イ ア ロ グボ ッ ク ス DB 環境設定プ ロ パテ ィ シー ト デフ ォ ル ト のプ ロ フ ァ イ ルに接続 (Connect to Default Profile) DB 環境設定プ ロ パテ ィ シー ト — 読み取 り 専用 (Read Only) DB の接続を保持 (Keep Connection Open) 拡張属性の使用 (Use Extended Attributes) SQL 構文の終止符 (SQL Terminator Character) DB 環境設定プ ロ パテ ィ シー ト DB 環境設定プ ロ パテ ィ シー ト DB 環境設定プ ロ パテ ィ シー ト DB 環境設定プ ロ パテ ィ シー ト — — — — 以 下 の 節 で は、 開 発 環 境 や (AutoCommit と Lock に つ い て は) PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト の中で、 デー タ ベー ス 環 境設定項目を設定す る 手順について解説 し ます。 詳細について 各デー タ ベース環境設定項目の詳細については、 オ ン ラ イ ン ヘルプの 説明を参照 し て く だ さ い。 開発環境でのデー タ ベース環境設定項目の設定 サポー ト さ れてい る すべての開発プ ラ ッ ト フ ォ ームにおけ る PowerBuilder の開発環境でデー タ ベース環境設定項目を設定す る に は、 2 つの方法があ り ます。 • AutoCommit や Lock (分離レベル) は、 接続に対応す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス で設定す る ADO.NET ADO.NET の場合、分離レベル (Isolation) はデー タ ベース パ ラ メ ー タ です。 180 PowerBuilder 第 12 章 • 接続パ ラ メ ー タ の追加設定 ほかのすべてのデー タ ベース環境設定項目は、 デー タ ベース ペ イ ン タ の DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス で設定す る デー タ ベース プ ロ フ ァ イルにおける AutoCommit と Lock の設定 AutoCommit およ び Lock (分離レ ベル) 環境設定項目は、 デフ ォ ルト ト ラ ン ザク ショ ン オブジェ ク ト SQLCA のプロ パティ です。 AutoCommit と Lock (分離レベル) 環境設定項目が PowerBuilder の開発環境で有効 と な る よ う にす る には、 こ れ ら をデー タ ベース に接続す る 前に指定 し ます。 接続 し た後で こ れ ら の環境設定項目を変更 し て も 、 現行の接続 には、 その変更が反映 さ れ ません。 PowerBuilder がデー タ ベース に接続す る 前に AutoCommit や Lock を設 定す る には、 以下の手順で、 接続に対応す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス でその値を指定 し ます。 ❖ データ ベース プロ フ ァ イ ルに AutoCommit や Lock (分離レ ベル) を設定する 1 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス を表示 し ます。 2 使用す る イ ン タ フ ェ ー ス 名の左の正符号 (+) を ク リ ッ ク す る か、 イ ン タ フ ェース名を ダブル ク リ ッ ク し ます。 リ ス ト が展開 し 、 そ の イ ン タ フ ェ ー ス に定義 さ れ て い る デー タ ベース プ ロ フ ァ イ ルが表示 さ れ ます。 3 編集 し たいプ ロ フ ァ イ ル を選択 し て [編集] ボ タ ン を ク リ ッ ク し ます。 選択 し たプ ロ フ ァ イ ルの DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス が表示 さ れ ます。 4 [接続] タ ブで、 以下のいずれかの値、 ま たは両方の値を指定 し ま す。 • デー タ ベース と の接続 デー タ ベー ス が ロ ッ ク や分離レベルを サポー ト す る 場合、 接続で使用す る 分離レベルを、 [分離レベル] ド ロ ッ プダ ウ ン リ ス ト か ら 選択 し ます ([分離レベル] ド ロ ッ プダ ウ ン リ ス ト には、 各 イ ン タ フ ェ ー ス に対 し て有効な ロ ッ ク 値が 格納 さ れてい ます)。 分離レ ベル 181 デー タ ベース環境設定項目の設定 • AutoCommit の 設 定 は、 PowerBuilder が SQL 文を ト ラ ン ザク ショ ン のス コ ープの外側で発行する (True) のか、 内側で発行す る (False) のか を制御 し ます。 デー タ ベー ス が対応 し ていれば、 [自動 コ ミ ッ ト モー ド ] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し て AutoCommit を True(オ ン)にす る か、チ ェ ッ ク ボッ ク ス のチェ ッ ク をはずし て(デフ ォ ル ト 状態)AutoCommit を False (オ フ) に し ます。 自動 コ ミ ッ ト モー ド た と えば、 基本接続パ ラ メ ー タ (サーバ、 ロ グ イ ン ID、 パ ス ワ ー ド 、 お よ びデー タ ベース) に加え て、 Sales と い う Sybase Adaptive Server Enterprise プ ロ フ ァ イ ル用の [接続] タ ブでは、 [分離 レ ベ ル] と [自動 コ ミ ッ ト モー ド ] に対 し てデフ ォ ル ト と 異な る 設定 を し てい ます。 5 (オプシ ョ ン) PowerBuilder で、 Lock お よ び AutoCommit 用に生成 さ れた PowerScript 接続構文を表示す る には、 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 PowerBuilder は、DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス で設定 し たオプシ ョ ンに合わせて PowerScript 接続構文を生成 し ます。 こ の構文は、 PowerBuilder ア プ リ ケーシ ョ ン の ス ク リ プ ト に直接 コ ピーす る こ と がで き ます。 詳 し い手順については、 176 ページの 「[プ レ ビ ュ ー] タ ブか ら の DBParm 構文の コ ピー」 を参照 し て く だ さ い。 6 [OK] を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ます。 PowerBuilder は、 レ ジ ス ト リ 内のデー タ ベー ス プ ロ フ ァ イ ルのエ ン ト リ に設定を保存 し ます。 DB 環境設定 ダ イ ア ログボ ッ ク スにおける環境設定項目の設定 以 下 の 接 続 関 連 の デ ー タ ベ ー ス 環 境 設 定 項 目 を 設 定 す る に は、 PowerBuilder デー タ ベース ペ イ ン タ で、 DB 環境設定 ダ イ ア ロ グボ ッ ク ス に対 し て入力を し ます。 182 • [共有 DB プ ロ フ ァ イ ル] • [デフ ォ ル ト のプ ロ フ ァ イ ルに接続] • [読み取 り 専用] • [DB の接続を保持] • [拡張属性の使用] PowerBuilder 第 12 章 接続パ ラ メ ー タ の追加設定 [SQL 構文の終止符] • そのほかのデー タ ベース環境設定項目 DB 環境設定 ダ イ ア ロ グボ ッ ク ス では、 デー タ ベース ペ イ ン タ その も のの動作に影響を及ぼす、 そのほかのデー タ ベー ス環境設定項目を設 定で き ます。 DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス で設定で き る そのほか の環境設定項目については、 『ユーザーズ ガ イ ド 』 マニ ュ アル を参照 し て く だ さ い。 ❖ DB 環境設定 ダ イ ア ログボ ッ ク スで接続関連の環境設定項目を設定する 1 デー タ ベース ペ イ ン タ を開 き ます。 2 メ ニ ュ ーバーか ら [デザ イ ン|オプシ ョ ン] を選択 し ます。 DB 環境設定 ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。 必要であれば、 [全般] タ ブ を ク リ ッ ク し て [全般] プ ロ パテ ィ ページ を表示 し ま す。 [全般] プ ロ パテ ィ ページ上で、 以下の表の接続関連の DB 環境設 定項目に対 し て値を指定 し ます。 3 表 12-2: 接続関連のデー タ ベース環境設定項目 環境設定項目 [共有 DB プ ロ フ ァ イ ル] [デ フ ォ ル ト の プ ロ フ ァ イ ル に接続] デー タ ベース と の接続 説明 共有す る デー タ ベー ス プ ロ フ ァ イ ルが あ る フ ァ イ ルのパ ス名を指定する 。 パ ス名を直接 入力す る こ と も 、参照 ([...]) ボ タ ン を ク リ ッ ク し てパ ス名を表示する こ と も で き る デー タ ベース ペ イ ン タ 起動時に、デフ ォ ル ト プ ロ フ ァ イ ル を 使用 し てデー タ ベー ス 接続 を確立する か ど う か を指定する 。 チ ェ ッ ク が はず さ れてい る 場合、デー タ ベース ペ イ ン タ はデー タ ベー ス 接続 を 確立せず にデー タ ベース ペ イ ン タ を開 く 参考資料 159 ペー ジ の 「デー タ ベー ス プ ロ フ ァ イ ルの 共有」 オ ン ラ イ ン ヘルプの 「デフ ォ ル ト のプ ロ フ ァ イ ルに接続」 183 デー タ ベース環境設定項目の設定 環境設定項目 [読み取 り 専用] [DB の接続を保持] 説明 PowerBuilder が、 拡張属性シ ス テ ム テーブル やデー タ ベー ス 内のほ か の テーブル を 更新 す る か ど う か を 指定す る 。 以下に示す よ う に、 [読 み 取 り 専 用] チ ェ ッ ク ボ ッ ク ス を チ ェ ッ ク ま たはチ ェ ッ ク をはずす • チ ェ ッ ク ボ ッ ク ス を オ ンにする 拡張属性 シ ス テ ム テーブルやデー タ ベー ス 内のほか のテーブルを更新 し てはいけ ま せん。 [読 み取 り 専用] チ ェ ッ ク ボ ッ ク ス がオンの場 合、 デー タ ウ ィ ン ド ウ ペ イ ン タ か ら 、 拡 張属性シ ス テ ム テーブルやほかのデー タ ベース テーブル内の情報の変更 (更新) は で き ません。 • チ ェ ッ ク ボ ッ ク ス を オ フ にする (デ フ ォ ル ト ) 拡張属性シ ス テ ム テーブルやデー タ ベース内のほかのテーブルを更新 し ます。 デ ー タ ベ ー ス プ ロ フ ァ イ ル を 使用せず に PowerBuilder か ら デー タ ベース に接続 し てい る と き に、 PowerBuilder が接続を閉 じ る タ イ ミ ン グ を指定す る 。 以下に示す よ う に、 [DB の接続を保持] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク ま たはチ ェ ッ ク をはずす • チ ェ ッ ク ボ ッ ク ス を オ ンにする (デ フ ォ ル ト ) セ ッ シ ョ ン中はデー タ ベース に接続 し た ま ま で、セ ッ シ ョ ンが終了す る と き に接 続を閉 じ ます。 • チ ェ ッ ク ボ ッ ク ス を オ フ にする ペ イ ン タ が 要求 し た と き だけ接続を開 き 、ペ イ ン タ を 閉 じ る と き 、 ま たは ス ク リ プ ト の コ ンパ イ ルが終了す る と き に、 接続を閉 じ ます。 参考資料 オ ン ラ イ ン ヘルプの 「読み取 り 専用」 オ ン ラ イ ン ヘルプの 「デー タ ベー ス の接続を 保持」 プ ロ フ ァ イルでは使用 さ れない デー タ ベー ス プ ロ フ ァ イ ル を 使用 し て接続 す る 場合、 こ の環境設定項目は無視 さ れ ま す。 184 PowerBuilder 第 12 章 環境設定項目 [拡張属性の使用] 接続パ ラ メ ー タ の追加設定 説明 PowerBuilder が拡張属性 シ ス テ ム テ ーブル を作成 し 、 使用す る か ど う かを指定す る 。 以 下に示す よ う に、 [拡張属性の使用] チ ェ ッ ク ボ ッ ク ス を チ ェ ッ ク ま た はチ ェ ッ ク を は ずす。 • チ ェ ッ ク ボ ッ ク ス を オ ンにする (デ フ ォ ル ト ) 拡張属性シ ス テ ム テーブルを作成 し 、 使用 し ます。 • チ ェ ッ ク ボ ッ ク ス を オ フ にする 拡張属性 シ ス テ ム テーブルを作成 し ません。 PowerBuilder がテーブルを グ ラ フ ィ カルに表 示す る と き に、 表示 さ れ る テーブルのカ ラ ム 数を指定する 。 デフ ォ ル ト は 8 デー タ ベー ス か ら ど れだ け頻繁に テーブル リ ス ト を リ フ レ ッ シ ュ す る か を指定 し ま す。 デフ ォ ル ト は 30 分です。 PowerBuilder において、 デー タ ベース ペ イ ン タ の ISQL セ ッ シ ョ ン ビ ュ ーで使用す る SQL 文の終止符を指定する [表示す る カ ラ ム数] [テーブル リ ス ト の再描画] [SQL 構文の終止符] 参考資料 オ ン ラ イ ン ヘルプの 「拡張属性の使用」 オ ン ラ イ ン ヘルプの 「SQL 構文の終止符」 デフ ォ ル ト の終止符はセ ミ コ ロ ン (;) 。 デー タ ベー ス ペ イ ン タ の ISQL セ ッ シ ョ ン ビ ュ ーで ス ト ア ド プ ロ シージ ャ や ト リ ガ を 作 成 し て い る 場合、 SQL 文 の 終止符 を、 DBMS におけ る ス ト ア ド プ ロ シージ ャ 構文、 ま た は ト リ ガ構文で使用す る 予定の な い文 字に変更する 。 バ ッ ク ク ォー ト 文字 (`) な ど が適切 4 以下のいずれかの操作を し ます。 • 環境設定項目の設定を現行の接続に適用 し た上で、 DB 環境設 定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ずに操作を続け る には、 [更新] ボ タ ン を ク リ ッ ク し ます。 • 環境設定項目の設定を現行の接続に適用 し た上で、 DB 環境設 定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ る には、 [OK] ボ タ ン を ク リ ッ ク し ます。 PowerBuilder によ っ て、 環境設定項目の設定は、 PB.INI の database セ ク シ ョ ンに保存 さ れます。 デー タ ベース と の接続 185 デー タ ベース環境設定項目の設定 PowerBuilder ア プ リ ケーシ ョ ンのス ク リ プ ト における AutoCommit と Lock の設定 デー タ ベース に接続す る PowerBuilder アプ リ ケーシ ョ ン を開発 し てい る 場合、 デフ ォ ル ト の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト (SQLCA)、 ま たは作成 し た ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のプ ロ パテ ィ と し て、 ス ク リ プ ト の中で要求 さ れ る 接続パ ラ メ ー タ を指定 し なければな り ませ ん。 た と えば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に接続パ ラ メ ー タ を指定 し ます。 AutoCommit お よ び Lock は SQLCA のプ ロ パテ ィ です。 AutoCommit と Lock は、 PowerBuilder ス ク リ プ ト に設定す る こ がで き る 唯一 のデー タ ベース環境設定項目です。 以下の方法で指定 し ます。 • (推奨) AutoCommit お よ び Lock の PowerScript 構文を、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピーす る • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の AutoCommit と Lock プ ロ パテ ィ に値を設定す る PowerScript コ ー ド を記述す る • 外部テ キ ス ト フ ァ イ ルか ら AutoCommit と Lock 値を読み込む PowerBuilder アプ リ ケーシ ョ ン でデー タ ベー ス と 通信す る ための ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の使い方については、 『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルを参照 し て く だ さ い。 [プ レ ビ ュ ー] タ ブからの AutoCommit および Lock 構文の コ ピー PowerBuilder ア プ リ ケ ー シ ョ ン の ス ク リ プ ト に AutoCommit お よ び Lock パ ラ メ ー タ を 指定す る には、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピー し 、 必要であ れば、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を修 正す る のが も っ と も 簡単です。 開発環境で DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定す る と 、 PowerBuilder は PowerScript の接続構文を [プ レ ビ ュ ー] タ ブ上に生成 し ます。 し たが っ て、 構文を [プ レ ビ ュ ー] タ ブか ら 直接 コ ピーす る と 、 ス ク リ プ ト で使用す る PowerScript 構文が正 し い こ と が保証 さ れま す。 ❖ AutoCommit および Lock 構文を [プレ ビ ュ ー] タ ブから スク リ プト にコ ピ ー する 1 186 接続に対 し て DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [接続] タ ブで、 設定 し たい AutoCommit お よ び Lock パ ラ メ ー タ の値を指 定 し ます。 PowerBuilder 第 12 章 接続パ ラ メ ー タ の追加設定 詳 し い手順については、 181 ページの 「デー タ ベース プ ロ フ ァ イ ルにおけ る AutoCommit と Lock の設定」 を参照 し て く だ さ い。 た と えば、 基本接続パ ラ メ ー タ (サーバ、 ロ グ イ ン ID、 パ ス ワ ー ド 、 お よ びデー タ ベース) に加え て、 Sales と い う 名前の Adaptive Server プ ロ フ ァ イ ル用の [接続] タ ブでは、 [分離レベル] と [自 動 コ ミ ッ ト モー ド ] にデフ ォ ル ト と 異な る 設定を し ます。 DBParm パ ラ メ ー タ の詳細 と 指定す る 値については、 [ヘルプ] ボ タ ン を ク リ ッ ク し て参照 し て く だ さ い。 2 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ないで現行の タ ブへの変更を保存す る 場合は、 [更新] ボ タ ン を ク リ ッ ク し ます。 3 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 選択 し た各オプシ ョ ン に対応 し た PowerScript 構文が [DB 接続構 文] ボ ッ ク ス に表示 さ れます。 た と えば、 次の よ う にな り ます。 4 [DB 接続構文] ボ ッ ク ス のテ キ ス ト を選択 し て、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 選択 し た テ キ ス ト を PowerBuilder が ク リ ッ プボー ド に コ ピー し ま す。 デー タ ベース と の接続 5 [OK] を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ます。 6 [プ レ ビ ュ ー] タ ブか ら 選択 し た テ キ ス ト を ス ク リ プ ト に貼 り 付 け、 必要であれば ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を変更 し ます。 187 デー タ ベース環境設定項目の設定 AutoCommit プ ロパテ ィ と Lock プ ロパテ ィ の値を設定する ための PowerScript コ ー ド の記述 ス ク リ プ ト の中で接続パ ラ メ ー タ を指定す る には、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の AutoCommit プ ロ パテ ィ と Lock プ ロ パテ ィ に対 し て値 を 割 り 当 て る た め の PowerScript コ ー ド を 記述す る 方法 も あ り ま す。 PowerBuilder では、 デー タ ベー ス と 通信す る ために、 ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト と 呼ばれ る 非ビ ジ ュ アル オブジ ェ ク ト を使用 し ます。 デフ ォ ル ト の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の名前は SQLCA で、 こ れは SQL Communications Area の略です。 SQLCA は 15 種類のプロ パティ を 持ち、 その中の 10 種類がデータ ベー ス と の接続に使用さ れま す。接続プロ パティ の中の 2 種類が AutoCommit と Lock で、 こ れ ら は以下の手順で設定で き ます。 ❖ AutoCommit と Lock プ ロパテ ィ を PowerBuilder ス ク リ プ ト に設定する 1 接続パ ラ メ ー タ を指定す る ア プ リ ケーシ ョ ン の ス ク リ プ ト を開 き ます。 2 以下の PowerScript 構文を使用 し て、 AutoCommit と Lock プ ロ パ テ ィ を設定 し ます。 ( こ の構文では、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブ ジ ェ ク ト SQLCA を使用 し ま すが、 独自の ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.AutoCommit = value SQLCA.Lock = "value" た と えば、 PowerBuilder ス ク リ プ ト 中の以下の ス テー ト メ ン ト は、 デフ ォ ル ト の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を使用 し て、 Test と い う 名前の Sybase Adaptive Server Enterprise デー タ ベース に 接続 し ます。SQLCA.AutoCommit は True に設定 さ れ、SQLCA.Lock は分離レベル 3 (Serializable transactions) に設定 さ れてい ます。 SQLCA.DBMS SQLCA.Database SQLCA.LogID SQLCA.LogPass SQLCA.ServerName SQLCA.AutoCommit SQLCA.Lock = = = = = = = "SYC" "Test" "Frans" "xxyyzz" "HOST1" True "3" 詳細については、オ ン ラ イ ン ヘルプの「AutoCommit」 ま たは「Lock」 を参照 し て く だ さ い。 3 188 ス ク リ プ ト を コ ンパ イ ル し 、 変更を保存 し ます。 PowerBuilder 第 12 章 接続パ ラ メ ー タ の追加設定 詳 し い手順については、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照 し て く だ さ い。 外部テキス ト フ ァ イルから の AutoCommit と Lock 値の読み込み PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト で AutoCommit や Lock プ ロ パテ ィ を設定す る には、 PowerScript ProfileString 関数を使用 し て、 ア プ リ ケーシ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ル の特定セ ク シ ョ ン か ら 、 AutoCommit と Lock の値を読み込む方法 も あ り ます。 ❖ 外部テキス ト フ ァ イルから AutoCommit と Lock の値を読み込む 1 接続パ ラ メ ー タ を指定す る アプ リ ケーシ ョ ン の ス ク リ プ ト を開 き ます。 2 SQLCA.Lock プ ロ パテ ィ に以下の構文で ProfileString 関数を指定 し ます。 SQLCA.Lock = ProfileString ( file, section, key, default ) AutoCommit プ ロ パテ ィ はブール値であ る ため、 ProfileString で返 さ れ る 文字列 を ブ ール値 に 変換す る 必要 が あ り ま す。 た と え ば、 PowerBuilder ス ク リ プ ト の以下の ス テー ト メ ン ト では APP.INI フ ァ イ ルの [Database] セ ク シ ョ ンか ら AutoCommit と Lock の値 を読 み込みます。 string ls_string ls_string=Upper(ProfileString("APP.INI","Database", "Autocommit","")) if ls_string = "TRUE" then SQLCA.Autocommit = TRUE else SQLCA.Autocommit = FALSE end if SQLCA.Lock=ProfileString("APP.INI","Database", "Lock","") 3 ス ク リ プ ト を コ ンパ イ ル し 、 変更を保存 し ます。 レ ジ ス ト リ か らの値の取得 AutoCommit と Lock の値が レ ジ ス ト リ のアプ リ ケーシ ョ ン設定キーに 格納 さ れ る 場合、 RegistryGet 関数を使用 し てそれ ら を取得 し ます。 以下 に例を示 し ます。 string ls_string デー タ ベース と の接続 189 デー タ ベース環境設定項目の設定 RegistryGet("HKEY_CURRENT_USER\Software\MyCo\MyApp", & "Autocommit", RegString!, ls_string) if Upper(ls_string) = "TRUE" then SQLCA.Autocommit = TRUE else SQLCA.Autocommit = FALSE end if RegistryGet("HKEY_CURRENT_USER\Software\MyCo\\MyApp", & "Lock", RegString!, ls_string) 190 PowerBuilder 第 1 3 章 デー タ ベース接続に関する ト ラ ブル シ ュ ーテ ィ ン グ こ の章について こ の章では、 PowerBuilder におい て、 デー タ ベー ス と の接続で発 生 し た問題を以下の ツールを使用 し て解決す る 方法について解説 し ます。 内容 • デー タ ベース ト レース • SQL ス テー ト メ ン ト ト レース • ODBC ド ラ イ バ マネージ ャ ト レース • JDBC ド ラ イ バ マネージ ャ ト レース 項目 ト ラ ブルシ ュ ーテ ィ ン グ ツールの概要 デー タ ベース ト レース ツールの使い方 SQL 文 ト レース ユーテ ィ リ テ ィ の使い方 ODBC ド ラ イ バ マネージ ャ ト レース ツールの使い方 JDBC ド ラ イ バ マネージ ャ ト レース ツールの使い方 ページ 191 192 207 209 221 ト ラ ブルシ ュ ーテ ィ ング ツールの概要 PowerBuilder は、 問題の解決のためにデー タ ベー ス と の接続を ト レースす る のに利用で き る い く つかの ツールを備え てい ます。 表 13-1: デー タ ベース ト レース ツール 使用する ツール デー タ ベース ト レース ODBC ド ラ イ バ マネージ ャ ト レース JDBC ド ラ イ バ マネージ ャ ト レース デー タ ベース と の接続 ト レースで き るデー タ ベース接続 PowerBuilder でデー タ ベース イ ン タ フ ェース を介 し て ア ク セ スす る 任意の デー タ ベース ODBC デー タ ソ ース のみ JDBC デー タ ベース のみ 191 デー タ ベース ト レース ツールの使い方 デー タ ベース ト レース ツールの使い方 本節では、 デー タ ベー ス ト レ ー ス ツ ールの使い方について説明 し ま す。 デー タ ベース ト レース ツール デー タ ベース ト レース ツールを使用す る と 、デー タ ベースへのア ク セ ス 中に PowerBuilder が実行す る 内部 コ マ ン ド が記録 さ れ ます。 開発環 境で、 ま たはデー タ ベース に接続す る PowerBuilder アプ リ ケーシ ョ ン でデー タ ベース と の接続状況を ト レース で き ます。 デー タ ベース ト レース の出力は、 PowerBuilder に よ っ て DBTRACE.LOG (デフ ォ ル ト ) と い う 名前の ロ グ フ ァ イ ル ま たは指定 し た ロ グ フ ァ イ ルに書 き 込まれます。 デー タ ベース の ト レース を最 初に起動 し た と き に、 PowerBuilder に よ っ て コ ン ピ ュ ー タ 上に ロ グ フ ァ イ ルが作成 さ れます。 ト レース は、 デー タ ベース と の接続が解除 さ れ る ま で続 き ます。 1 つの接続に対するデー タ ベース ト レース ツールの使い方 デー タ ベース ト レース ツールは、 一度に 1 つの DBMS の、 1 つのデー タ ベース接続に対 し てだけ使用で き ます。 た と えば、 あ る アプ リ ケーシ ョ ンが、 ODBC デー タ ソ ース と Adaptive Server Enterprise デー タ ベース の両方に接続 し てい る 場合、 ODBC 接続 と Adaptive Server Enterprise 接続の ど ち ら か を ト レース で き ますが、 両 方を同時に ト レース で き ません。 デー タ ベース ト レース ツールの利用 デー タ ベース に接続 し てい る 場合、デー タ ベース ト レース ツールか ら 得 ら れ る 情報を利用 し て、 PowerBuilder が内部的に行っ てい る 処理に ついて調べ る こ と がで き ます。 ロ グ フ ァ イ ルの内容か ら 以下の こ と が 可能にな り ます。 192 • PowerBuilder が、デー タ ベース と ど の よ う なや り と り を し てい る か の把握 • デー タ ベース と の接続で発生 し た問題の確認 と 解決 • デー タ ベース と の接続で発生 し た問題について テ ク ニ カル サポー ト セ ン タ に連絡す る 際の情報の提供 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング PowerBuilder に加え て、 接続 し てい る DBMS に関す る 知識があれば、 ロ グの情報を調べて、デー タ ベース接続の問題を自分で解決で き ます。 技術サポー ト を受け る 必要があ る 場合は、テ ク ニ カル サポー ト セ ン タ へ連絡す る 前に、 デー タ ベース ト レース ツールを実行 し て く だ さ い。 そ し て、 ト レ ー ス の ロ グ を、 テ ク ニ カル サポー ト セ ン タ の担当者に 送っ て く だ さ い。 デー タ ベース ト レース ロ グの内容 ト レース フ ァ イルの デ フ ォル ト の内容 デフ ォ ル ト では、デー タ ベース ト レース ツールでデー タ ベース と の接 続を ト レースす る と 、 ロ グ フ ァ イ ルに以下の情報が記録 さ れます。 • デー タ ベース に接続す る ために使用 し たパ ラ メ ー タ • 各デー タ ベース処理の実行時間 (マ イ ク ロ 秒単位) • デー タ ベー ス 内のテーブルやカ ラ ム情報を、 取得 し た り 表示 し た り す る ために実行 さ れた内部 コ マ ン ド 。 こ の コ マ ン ド の例を以下 に示 し ます。 • SELECT、 INSERT、 UPDATE、 DELETE な ど の SQL 文を準備 し 実 行す る コ マ ン ド • カ ラ ム の記述を取得す る コ マ ン ド • テーブル行を フ ェ ッ チす る コ マ ン ド • ユーザが指定す る 値を カ ラ ム にバ イ ン ド す る コ マ ン ド (接続す る デー タ ベース がバ イ ン ド 変数を サポー ト し てい る 場合) • デー タ ベース の変更を コ ミ ッ ト や ロ ールバ ッ ク す る コ マ ン ド • デー タ ベース と の接続を解除す る コ マ ン ド • デー タ ベース イ ン タ フ ェ ース を シ ャ ッ ト ダ ウ ンす る コ マ ン ド DBI コ マ ン ド 名や最後のデー タ ベース接続か ら ロ グ入力処理完了ま で の経過時間を含め る 選択をす る こ と がで き ます。ま た、すべての フ ェ ッ チ要求か ら 、バ イ ン ド や実行情報お よ びデー タ を除 く こ と がで き ます。 DB ト レース ダ イ ア ロ グボ ッ ク スでの選択 DB ト レ ース ダイ ア ロ グ ボッ ク ス では、 以下の項目を データ ベース ト レ ース フ ァ イ ルに取り 込んだり 除外し たり する ための選択を 行いま す。 • バイ ン ド 変数 デー タ ベース か ら 取得 し た結果集合カ ラ ム に関す る メ タ デー タ デー タ ベース と の接続 • フ ェ ッチ ・ バッ フ ァ • DBI 名 各フ ェ ッ チ要求か ら の戻 り 値デー タ 処理 さ れ る デー タ ベース イ ン タ フ ェース コ マ ン ド 193 デー タ ベース ト レース ツールの使い方 • 要求の実行時間 DBI コ マ ン ド を 処理す る た めに要求 さ れ る 時間。 間隔の単位は、 千分の ミ リ 秒 (マ イ ク ロ 秒) • DBTrace のレジスト リ 設定 デー タ ベー ス に接続 し て か ら の合計時間。 時間の単位 は、 千分の ミ リ 秒 (マ イ ク ロ 秒) 累積時間 DB ト レース ダ イ ア ロ グ ボ ッ ク ス での選択は、 デー タ ベース接続を 行っ たマシ ン の レ ジ ス ト リ に保存 さ れ ます。 デー タ ベース ト レース ユーテ ィ リ テ ィ 環境設定用の Windows レ ジ ス ト リ は、 HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\11.0\DBTrace キーの下に格納 さ れ ます。 こ のキーの下の レ ジ ス ト リ 文字列は、 ShowBindings、 FetchBuffers、 ShowDBINames、 Timing、 SumTiming、 LogFileName、 お よ び ShowDialog です。 ト レース出力フ ァ イ ルに完全 な フ ァ イ ル名を割 り 当て る LogFileName 文字列以外は、 すべての文字 列を 0 ま たは 1 で設定す る こ と がで き ます。 デー タ ベース接続が ト レース可能な場合、 ShowDialog レ ジ ス ト リ 文字 列を設定 し て、 DB ト レー ス ダ イ ア ロ グ ボ ッ ク ス の表示を抑制す る こ と がで き ます。 こ れは、 DB ト レース ダ イ ア ロ グ ボ ッ ク ス で変更す る こ と がで き ない唯一の ト レース レ ジ ス ト リ 文字列です。 DB ト レース ダ イ ア ロ グボ ッ ク ス を表示 し ない よ う にす る ためには、 ShowDialog を 0 に設定す る 必要があ り ます。 DBTrace の INI フ ァ イル設定 レ ジ ス ト リ にア ク セ ス し ない場合は、 PB.INI を使用 し て ト レース フ ァ イ ル設定を 格納す る こ と がで き ま す。 INI フ ァ イ ルに次の値 を少な く と も 1 つ持つ [DbTrace] セ ク シ ョ ン を追加 し 、PowerBuilder を再起動 し ます。 [DbTrace] ShowDBINames=0 FetchBuffers=1 ShowBindings=1 SumTiming=1 Timing=1 ShowDialog=1 LogFileName=dbtrace.log キ ーワ ード はレ ジス ト リ と 同じ で、 同じ 意味を 持ちま す。 データ ベース に再び接続す る と 、 初期設定を INI フ ァ イ ルか ら 受け取 り 、 それ ら を 修正す る と き に、 変更が INI フ ァ イ ルに書 き 出 さ れ ます。 LogFileName の フ ァ イ ル名が絶対パ ス を 含 ま な い場合は、 Documents and Settings\<username>\Application Data\PowerBuilder11.0 に ロ グ フ ァ イ ル を 書 き 出 し ま す。 <username> は login ID で す。 INI フ ァ イ ル に DbTrace 設定がない場合は、 レ ジ ス ト リ 設定が使用 さ れ ます。 194 PowerBuilder 第 13 章 エ ラ ー メ ッ セージ デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング デー タ ベー ス ト レ ー ス ユーテ ィ リ テ ィ が書 き 込み権限を持つ ト レ ー ス出力フ ァ イ ルを開 く こ と がで き ない場合には、 指定 さ れた ト レー ス フ ァ イ ルが作成で き ないか、 ま たは開 く こ と がで き ない こ と を エ ラ ー メ ッ セージが知 ら せます。 ト レース ユーテ ィ リ テ ィ ド ラ イ バが正常に ロ ー ド で き ない場合は、 現行の イ ン ス ト ールでは選択 さ れた ト レー ス DBMS を サ ポー ト し て い な い こ と を メ ッ セージ ボ ッ ク ス が通知 し ま す。 デー タ ベース ト レース ロ グの書式 デー タ ベー ス ト レー ス ロ グ フ ァ イ ルの内容は、 ア ク セ ス す る デー タ ベー ス や、 実行す る デー タ ベー ス 処理に よ っ て異な り ま す。 し か し 、 ロ グ フ ァ イ ルへの出力では、 サ ポー ト さ れて い る すべて のプ ラ ッ ト フ ォ ームお よ びデー タ ベース で、 以下の基本書式が使用 さ れ ます。 COMMAND:(time) {additional_information} パラ メ ー タ COMMAND time additional_information 例 説明 PowerBuilder が、デー タ ベース処理を実行す る 内部コ マ ン ド PowerBuilder がデー タ ベー ス 処理 を 実行す る のに要 し た時間 (マ イ ク ロ 秒単位)。 適用 さ れ る 精度は、 使用 し てい る オペレーテ ィ ン グ シ ス テ ム の タ イ ミ ン グ メ カ ニ ズ ム に よ っ て異な る (オプシ ョ ン) コ マ ン ド に関す る 追加情報。 こ こ に記録 さ れ る 情報はデー タ ベー ス の処理内 容に よ っ て異な る た と えば、 以下に示す ロ グ フ ァ イ ルの一部では、 PowerBuilder が、 コ マ ン ド を 実行 し て SQL Anywhere デー タ ベー ス テーブルか ら 2 行 を フ ェ ッ チ し た こ と が示 さ れてい ます。 FETCH NEXT: COLUMN=400 FETCH NEXT: COLUMN=500 (0.479 MS) COLUMN=Marketing COLUMN=Evans (0.001 MS) COLUMN=Shipping COLUMN=Martinez ト レース ロ グ フ ァ イ ルに [DBI 名を表示] と [累積時間を表示] を 選択 し た場合、 同 じ ロ グに次の 2 行が追加 さ れ ます。 FETCH NEXT:(DBI_FETCHNEXT) (1.459 MS / 3858.556 MS) COLUMN=400 COLUMN=Marketing COLUMN=Evans FETCH NEXT:(DBI_FETCHNEXT) (0.001 MS / 3858.557 MS) COLUMN=500 COLUMN=Shipping COLUMN=Martinez デー タ ベース と の接続 195 デー タ ベース ト レース ツールの使い方 デー タ ベース ト レース出力の詳細な例については、205 ページの 「デー タ ベース ト レース ロ グのサン プル」 を参照 し て く だ さ い。 デー タ ベース ト レース ツールの起動 PowerBuilder において、 デー タ ベース ト レース ツールは、 デフ ォ ル ト でオ フ にな っ てい ます。デー タ ベース ト レース ツールは、PowerBuilder の開発環境ま たは PowerBuilder アプ リ ケーシ ョ ンにおいてデー タ ベー ス接続を ト レースす る ために起動で き ます。 ト レースのオ ン/オ フ の切 り 替え ト レー ス のオ ン/オ フ を切 り 替え る には、 再接続が必要です。 設定お よ び再設定を行 う だけでは十分ではあ り ません。 ❖ デー タ ベース ト レース ツールを起動する 1 ト レースす る デー タ ベース接続に対応す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を開 き ます。 2 [接続] タ ブで、 [ ト レ ー ス の生成] チ ェ ッ ク ボ ッ ク ス を チ ェ ッ ク し て、 [OK] ボ タ ン ま たは [更新] ボ タ ン を ク リ ッ ク し ます (DB プ ロ フ ァ イ ル設定 - OLE DB ダ イ ア ロ グボ ッ ク ス では [ ト レース の 生成] チ ェ ッ ク ボ ッ ク ス は [シ ス テ ム] タ ブにあ り ます)。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れます。 た と えば、 以下に、 Adaptive Server 12.5 Test に対す る デー タ ベース プ ロ フ ァ イ ル エ ン ト リ の該当部分 を 示 し ま す。 デー タ ベー ス ト レース を開始す る 設定は、 DBMS です。 [Default] [value not set] AutoCommit "FALSE" Database "qadata" DatabasePassword "00" DBMS "TRACE SYC Adaptive Server Enterprise" DbParm "Release='12.5'" Lock "" LogId "qalogin" LogPassword "00171717171717" Prompt "FALSE" ServerName "Host125" UserID "" 196 PowerBuilder 第 13 章 3 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス で [接続] ボ タ ン を ク リ ッ ク し てデー タ ベース に接続 し ます。 デー タ ベース の ト レース が有効にな っ た こ と を示す DB ト レース ダ イ ア ロ グボ ッ ク ス が表示 さ れ ます。 PowerBuilder が ト レース の 出力を書 き 出すフ ァ イ ルの位置を入力す る こ と がで き ます。 デ フ ォ ル ト では、 PowerBuilder はデー タ ベース ト レース の出力を DBTRACE.LOG と い う 名前の ロ グ フ ァ イ ルに書 き 込みます。 DB ト レース ダ イ ア ロ グ ボ ッ ク ス で ロ グ フ ァ イ ル名 と 位置を変更す る こ と がで き ます。 DB ト レ ー ス ダ イ ア ロ グ ボ ッ ク ス では、 デー タ ベー ス ト レ ー ス フ ァ イ ルに必要な ト レ ー ス 情報の レ ベル を選択す る こ と も で き ま す。 4 ト レース フ ァ イ ルに含めたい項目を選択 し て、 [OK] ボ タ ン を ク リ ッ ク し ます。 PowerBuilder はデー タ ベース に接続 し 、接続の ト レース を起動 し ま す。 開発環境におけるデー タ ベース ト レースの起動 PowerBuilder の開発環境でデー タ ベース ト レース ツールを起動す る に は、 以下の手順に従っ て、 ト レー ス し たい接続に対応す る デー タ ベー ス プ ロ フ ァ イ ルを編集 し ます。 ❖ デー タ ベース プ ロ フ ァ イルを編集 し てデー タ ベース ト レース ツールを起動 する 1 ト レースす る デー タ ベース接続に対応す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を開 き ます。 2 [接続] タ ブで、 [ ト レ ー ス の生成] チ ェ ッ ク ボ ッ ク ス を チ ェ ッ ク し て、 [OK] ボ タ ン ま たは [更新] ボ タ ン を ク リ ッ ク し ます (DB プ ロ フ ァ イ ル設定 - OLE DB ダ イ ア ロ グボ ッ ク ス では [ ト レース の 生成] チ ェ ッ ク ボ ッ ク ス は [シ ス テ ム] タ ブにあ り ます)。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れ ます。 た と えば、 以下に、 Adaptive Server 12.5 Test に対す る デー タ ベース プ ロ フ ァ イ ル エ ン ト リ の該当部分 を 示 し ま す。 デー タ ベー ス ト レース を開始す る 設定は、 DBMS です。 [Default] AutoCommit Database デー タ ベース と の接続 [value not set] "FALSE" "qadata" 197 デー タ ベース ト レース ツールの使い方 DatabasePassword "00" DBMS "TRACE SYC Adaptive Server Enterprise" DbParm "Release='12.5'" Lock "" LogId "qalogin" LogPassword "00171717171717" Prompt "FALSE" ServerName "Host125" UserID "" 3 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス で [接続] ボ タ ン を ク リ ッ ク し てデー タ ベース に接続 し ます。 デー タ ベー ス の ト レ ー ス が有効にな っ た こ と を示す DB ト レ ー ス ダ イ ア ロ グボ ッ ク ス が表示 さ れます。PowerBuilder が ト レース の出 力を書 き 出すフ ァ イ ルの位置を入力す る こ と がで き ま す。 デフ ォ ル ト で は、 PowerBuilder は デ ー タ ベ ー ス ト レ ー ス の 出 力 を DBTRACE.LOG と い う 名前の ロ グ フ ァ イ ルに書 き 込み ま す。 DB ト レ ー ス ダ イ ア ロ グ ボ ッ ク ス で ロ グ フ ァ イ ル名 と 位置 を 変更す る こ と がで き ます。 DB ト レ ース ダイ ア ロ グ ボッ ク ス では、データ ベース ト レ ース フ ァ イ ルに必要なト レ ース 情報のレ ベルを 選択する こ と も でき ま す。 4 ト レース フ ァ イ ルに含めたい項目を選択 し て、 [OK] ボ タ ン を ク リ ッ ク し ます。 PowerBuilder はデー タ ベース に接続 し 、接続の ト レース を起動 し ま す。 PowerBuilder ア プ リ ケーシ ョ ンにおけるデー タ ベース ト レースの起動 デー タ ベース に接続す る PowerBuilder アプ リ ケーシ ョ ン では、 必要な 接続パ ラ メ ー タ を適切な ス ク リ プ ト に指定 し ます。 た と えば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に接続パ ラ メ ー タ を指定す る のが一般的 です。 PowerBuilder ス ク リ プ ト で デー タ ベー ス 接続 を ト レ ー ス す る に は、 DBMS 識別子の前に trace と い う 単語 と スペース を 1 つ入力 し ます。以 下の方法で指定 し ます。 198 • PowerScript DBMS ト レース構文を、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピーす る • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBMS プ ロ パテ ィ に値を設定 す る PowerScript コ ー ド を記述す る PowerBuilder 第 13 章 • デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング 外部テ キ ス ト フ ァ イ ルか ら DBMS に設定す る 値を読み込む PowerBuilder アプ リ ケーシ ョ ン でデー タ ベー ス と 通信す る ための ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の使い方については、 『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルを参照 し て く だ さ い。 [プ レ ビ ュ ー] タ ブから の DBMS ト レース構文のコ ピー PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト でデー タ ベース ト レース を開始す る には、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら PowerScript DBMS ト レース構文を コ ピー し 、 必要で あれば、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を 変更す る 方法があ り ます。 開発環境で DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定す る と 、 PowerBuilder は [ ト レ ー ス の生成] な ど、 選択 し た各オプシ ョ ン に対 し て正 し い接続構文を [プ レ ビ ュ ー] タ ブ上に生成 し ます。 し たが っ て、 その構文を [プ レ ビ ュ ー] タ ブか ら 直接 コ ピーすれば、 ス ク リ プ ト は正 し い も のであ る こ と が保証 さ れ ます。 ❖ DBMS ト レース構文を [プ レ ビ ュ ー] タ ブから ス ク リ プ ト に コ ピーする 1 使用 し てい る 接続に対す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブ (OLE DB の場合は [シ ス テ ム] タ ブ) で、 [ ト レース の生成] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し てデー タ ベース ト レース を オ ン に し ます。 詳 し い手順については、 197 ページの 「開発環境におけ る デー タ ベース ト レース の起動」 を参照 し て く だ さ い。 2 [更新] ボ タ ン を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ずに [接続] タ ブへの変更を保存 し ます。 3 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 [ ト レ ー ス の 生成] な ど、 選択 し た オ プ シ ョ ン に 対す る 正 し い PowerScript 接続構文が [DB 接続構文] ボ ッ ク ス に表示 さ れ ます。 4 SQLCA.DBMS 行 と 、 ス ク リ プ ト に コ ピー し たい構文があればそれ を選択 し て、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 選択 し た テ キ ス ト を PowerBuilder が ク リ ッ プボー ド に コ ピー し ま す。 5 デー タ ベース と の接続 [OK] を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を閉 じ ます。 199 デー タ ベース ト レース ツールの使い方 6 [プ レ ビ ュ ー] タ ブか ら 選択 し た テ キ ス ト を ス ク リ プ ト に貼 り 付 け、 必要であれば ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を変更 し ます。 DBMS プ ロパテ ィ の値を設定する ための PowerScript コ ー ド の記述 PowerBuilder ス ク リ プ ト の中でデー タ ベース ト レース ツールを起動す る には、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBMS プ ロ パテ ィ に対 し て 値を割 り 当て る 方法 も あ り ま す。 PowerBuilder では、 デー タ ベー ス と 通信す る ために、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト と 呼ばれ る 、 特殊な 非表示オブジ ェ ク ト を使用 し ます。 デフ ォ ル ト の ト ラ ンザ ク シ ョ ン オ ブジ ェ ク ト の名前は SQLCA で、 こ れは SQL Communications Area の略 です。 SQLCA は 15 種類のプ ロ パテ ィ を持ち、その中の 10 種類がデー タ ベー ス と の接続に使用 さ れ ます。その 10 種類の接続プ ロ パテ ィ の中の 1 つ が DBMS です。DBMS プ ロ パテ ィ には接続す る デー タ ベース の名前を 指定 し ます。 ❖ DBMS プ ロパテ ィ を指定 し てデー タ ベース ト レース ツールを起動する • 以下の PowerScript 構文で DBMS プ ロ パテ ィ を指定 し ます。 ( こ の 構文では、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を 使用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.DBMS = "trace DBMS_name" た と えば、 PowerBuilder ス ク リ プ ト 中の以下の ス テー ト メ ン ト は、 各種の SQLCA プ ロ パテ ィ を設定 し て、 Test と い う 名前の Adaptive Server デー タ ベース に接続 し ます。DBMS プ ロ パテ ィ に対す る キー ワー ド の trace に よ っ て、 こ のデー タ ベース接続に対す る ト レース が指定 さ れ ます。 SQLCA.DBMS SQLCA.database SQLCA.logId SQLCA.LogPass SQLCA.ServerName 200 = = = = = "trace SYC" "Test" "Frans" "xxyyzz" "Tomlin" PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング 外部テキス ト フ ァ イルやレ ジ ス ト リ か らの DBMS 値の読み込み PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBMS プ ロ パテ ィ を設 定す る には、 PowerScript ProfileString 関数を使用 し て、 アプ リ ケーシ ョ ン 固有の初期設定 フ ァ イ ルな ど の外部テ キ ス ト フ ァ イ ルの特定のセ ク シ ョ ン か ら 、 ま た は レ ジ ス ト リ の ア プ リ ケ ーシ ョ ン 設定 キ ーか ら DBMS 値を読み込む方法 も あ り ます。 以下に示す手順では、 初期設定フ ァ イ ルのデー タ ベース セ ク シ ョ ン か ら 読み込んだ DBMS 値は、 以下の構文 を 使用 し てデー タ ベー ス の ト レース の起動を指定 し ます。 DBMS = trace DBMS_name ❖ 外部テキス ト フ ァ イルから DBMS 値を読み込んでデー タ ベース ト レース ツールを起動する • 以下の PowerScript 構文を 使用し て、DBMS プロ パティ に ProfileString 関数を指定 し ます。 SQLCA.DBMS = ProfileString(file, section, variable, default_value) た と えば、 以下の PowerBuilder ス ク リ プ ト では APP.INI フ ァ イ ル の [Database] セ ク シ ョ ン か ら DBMS 値を読み込みます。 SQLCA.DBMS=ProfileString("APP.INI","Database", "DBMS","") かわ り に レ ジ ス ト リ フ ァ イ ルか ら 値を取得す る 方法については、 189 ページの 「レ ジ ス ト リ か ら の値の取得」 を参照 し て く だ さ い。 PBTrace パラ メ ー タ を持つ PowerScript で ト レース を起動 デー タ ベー ス 接続の開始 か ら すべ て のデー タ ベー ス コ マ ン ド を ト レースす る かわ り に、 特定のデー タ ベース ク エ リ に関す る ト レース を プ ロ グ ラ ム で開始お よ び終了で き ます。 ト レース を開始す る ためには、 一 組 の 文 字 列 値 “PBTrace=1” を ト ラ ン ザ ク シ ョ ン オ ブ ジ ェ ク ト DBParm プ ロ パテ ィ に割 り 当て ます。 ト レース を終了す る ためには、一 組の文字列値 “PBTrace=0” を割 り 当て ま す。 た と えば、 1 つの検索 コ マ ン ド に関す る ト レー ス の出力にデー タ を記録 し たい場合は、 以下の よ う に接続の開始か ら ト レー ス を無効に し 、 それか ら 検索呼び出 し を DBParm プ ロ パテ ィ 指示で囲みます。 SQLCA.DBMS = "TRACE ODBC" SQLCA.DBParm="PBTrace=0" Connect using SQLCA; ... SQLCA.DBParm="PBTrace=1" dw_1.Retrieve ( ) デー タ ベース と の接続 201 デー タ ベース ト レース ツールの使い方 SQLCA.DBParm="PBTrace=0" DBMS パ ラ メ ー タ に 「Trace DBMSName」 を設定 し た後でデー タ ベー ス に最初に接続す る と 、 ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ ます。 こ のダ イ ア ロ グ ボ ッ ク ス で設定 し た設定パ ラ メ ー タ は、 レ ジ ス ト リ に保存 さ れ ます。 設定パ ラ メ ー タ は、 DBParm パ ラ メ ー タ に 「PBTrace=1」 を割 り 当て て ト レース を開始す る 際に、 レ ジ ス ト リ か ら 取 り 出 さ れます。 DBMS 値に 「Trace DBMSName」 のかわ り に 「TRS DBMSName」 を設定 す る 場合 と 同 じ 方法で、 SQL 文 ト レース を開始 し て終了す る こ と がで き ま す。 SQL 文 ト レ ー ス ユーテ ィ リ テ ィ につい ては、 207 ページ の 「SQL 文 ト レース ユーテ ィ リ テ ィ の使い方」 を参照 し て く だ さ い。 デー タ ベース ト レース ツールの停止 デー タ ベー ス接続の ト レー ス を い っ たん起動す る と 、 以下のいずれか の操作が さ れ る ま で、 PowerBuilder に よ る ロ グ フ ァ イ ルへの ト レース ロ グの書 き 込みが続 き ます。 • ト レース を停止 し た状態で同 じ デー タ ベース に再接続す る • ト レース の設定を し ていない別のデー タ ベース と 接続す る 開発環境におけるデー タ ベース ト レースの停止 ❖ デー タ ベース プ ロ フ ァ イルを編集 し てデー タ ベース ト レース ツールを停止 する 1 ト レース し てい る デー タ ベース に対す る DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を開 き 、[接続] タ ブの [ ト レース の生成] チ ェ ッ ク ボ ッ ク ス のチ ェ ッ ク をはず し ます。 2 DB プ ロ フ ァ イ ル設定ダ イ ア ロ グ ボ ッ ク ス の [OK] ボ タ ン を ク リ ッ ク し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れます。 3 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス内で、 接続す る デー タ ベー ス を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再接続] を選 択 し ます。 PowerBuilder はデー タ ベース に接続 し 、接続の ト レース を停止 し ま す。 202 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング PowerBuilder ア プ リ ケーシ ョ ンにおけるデー タ ベース ト レースの停止 PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト でデー タ ベー ス ト レー ス を停止す る には、DBMS プ ロ パテ ィ か ら trace と い う 単語を削除す る 必 要があ り ます。 以下の方法で指定 し ます。 • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBMS プ ロ パテ ィ の値を編集 する • 外部テ キ ス ト フ ァ イ ルか ら DBMS に設定す る 値を読み込む 変更を反映 さ せ る ために再接続す る 必要があ り ます。 DBMS プ ロパテ ィ 値の編集 ❖ PowerBuilder ス ク リ プ ト で DBMS 値を編集 し てデー タ ベース ト レース を停 止する • アプ リ ケーシ ョ ン ス ク リ プ ト の中で、 DBMS 接続プ ロ パテ ィ か ら trace と い う 単語を削除 し ます。 た と えば、 PowerBuilder ス ク リ プ ト の中の、 デー タ ベー ス ト レ ー ス を有効にす る DBMS 接続プ ロ パテ ィ を以下に示 し ます ( こ の構 文では、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を使 用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.DBMS = "trace SYC" こ の DBMS 接続プ ロ パテ ィ を編集 し て、 ト レース の終了を指定す る と 、 以下の よ う にな り ます。 SQLCA.DBMS = "SYC" 外部テキス ト フ ァ イルか らの DBMS に設定する値の読み込み PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBMS プ ロ パテ ィ を編 集す る には、 PowerScript ProfileString 関数を使用 し て、 ア プ リ ケーシ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ルの特定のセ ク シ ョ ン か ら 、 DBMS 値を読み込む方法 も あ り ます。 こ こ では、初期設定フ ァ イ ルか ら 読み込ま れ る DBMS 値には、「DBMS プ ロ パテ ィ 値の編集」 の例に示 し た よ う に、 trace と い う 単語が含まれ ていない こ と を前提に し てい ます。 デー タ ベース と の接続 203 デー タ ベース ト レース ツールの使い方 デー タ ベース ト レース ロ グの使い方 PowerBuilder は、データ ベース ト レ ース ツ ールの出力を PBTRACE.LOG と い う 名前の フ ァ イ ル (デフ ォ ル ト ) ま たは指定 し た ロ グ フ ァ イ ルに 書 き 込みます。 出力 さ れた ト レース ロ グ を使用 し て、 以下の操作がで き ます。 • 任意のテ キ ス ト エデ ィ タ で、 デー タ ベース ト レース ロ グ フ ァ イ ルを表示す る • デー タ ベース ト レース ロ グ フ ァ イ ルに、 コ メ ン ト を追加す る • デー タ ベース ト レース ロ グ フ ァ イ ルが大 き く な り すぎ た場合、 フ ァ イ ルそのも のを 削除し たり 、 フ ァ イ ルの内容を 消去し たり する ログの表示 PowerBuilder セ ッ シ ョ ン中であれば、 ロ グ フ ァ イ ルの内容はいつで も 表示で き ます。 ❖ ログ フ ァ イルの内容を表示する • 以下の方法か ら 、 ロ グ フ ァ イ ルを開 き ます。 • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ いては、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照) • PowerBuilder 以外の ツールで、任意のテ キ ス ト エデ ィ タ を使用 する ログ フ ァ イルを開いたま まにする PowerBuilder を使用 し てい る 間、 ロ グ フ ァ イ ルを開いた ま ま に し てお く と 、デー タ ベース ト レース ツールは ロ グ フ ァ イ ルを更新 し ません。 デー タ ベース ト レース ログへの コ メ ン ト の追加 ト ラ ブルシ ュ ーテ ィ ン グ の た めの ツ ール と し てデー タ ベー ス ト レ ー ス ロ グ を使用す る 場合、 フ ァ イ ルに コ メ ン ト を追加 し てお く と 便利で す。 た と えば、 あ る 接続について、 日付、 時刻、 使用 し たデー タ ベー ス サーバお よ び ク ラ イ ア ン ト ソ フ ト ウ ェ アのバージ ョ ン、ま たはその ほかの有効な情報を ロ グに記録 し てお く こ と が考え ら れ ます。 ❖ ログ フ ァ イルに コ メ ン ト を追加する 1 204 以下のいずれかの方法で、 DBTRACE.LOG フ ァ イ ルを開 き ます。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ いては、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照) • PowerBuilder 以外の ツールで、任意のテ キ ス ト エデ ィ タ を使用 する 2 ロ グ フ ァ イ ルに コ メ ン ト を追加 し ます。 3 変更 し た ロ グ フ ァ イ ルを保存 し ます。 ログの削除または消去 ト レース を設定 し てデー タ ベース に接続す る たびに、 既存の ロ グ フ ァ イ ルに、 ト レー ス の出力が追加 さ れ ます。 し たが っ て、 デー タ ベー ス に接続す る と き に ト レース を頻繁に設定 し てい る と 、 ト レース ロ グが す ぐ に大 き く な っ て し ま い ます。 ❖ ログ フ ァ イルを適切な大き さ に保つ • 定期的に、 以下のいずれかの操作を実行 し ます。 • ロ グ フ ァ イ ルを 開いて、 その内容を 消去し 、 フ ァ イ ルを 空にし て保存す る デフ ォ ル ト の DBTRACE.LOG フ ァ イ ルま たは同一のデフ ォ ル ト 以外の フ ァ イ ルを使用 し てい る 場合、 次回、 ト レース を設定 し てデー タ ベース に接続す る と 、 PowerBuilder は、 空の フ ァ イ ルに ト レース を出力 し ます。 • ロ グ フ ァ イ ルを削除す る 次回、 ト レース を設定 し てデー タ ベース に接続す る と 、 PowerBuilder に よ り 新 し い ロ グ フ ァ イ ルが自動的に作成 さ れ ます。 デー タ ベース ト レース ログのサン プル こ の節では、 ロ グ フ ァ イ ルに出力 さ れ る デー タ ベー ス ト レ ー ス ロ グ の例を示 し 、 ロ グ フ ァ イ ルの内容について簡単に説明 し ます。 こ の例では、 [累積時間を表示] を有効に し て接続を ト レー ス し ます。 こ の ロ グは、 PowerBuilder ア プ リ ケーシ ョ ン を 実行 し て、 公開デー タ ベー ス の著者に関す る 情報を表示 し た と き の も のです。 SELECT 文は Author テーブルか ら 情報を取得す る こ と を示 し てい ます。 デー タ ベース と の接続 205 デー タ ベース ト レース ツールの使い方 デー タ ベー ス ト レ ー ス が内部 コ マ ン ド を 記録す る と き に使用す る 精 度 (た と えばマ イ ク ロ 秒単位な ど) は、 使用 し てい る オペレーテ ィ ン グ シ ス テ ム の タ イ ミ ン グ メ カ ニ ズ ム に よ っ て異な り ま す。 し たが っ て、 実際のデー タ ベース ト レース ロ グの タ イ ミ ン グの精度は、 こ の例 と は異な る 場合があ り ます。 デー タ ベース と の接続 CONNECT TO TRACE SYC Adaptive Server Enterprise: DATABASE=pubs2 LOGID=bob SERVER=HOST12 DPPARM=Release='12.5.2',StaticBind=0 SELECT 文の準備 PREPARE: SELECT authors.au_id, authors.au_lname, authors.state FROM authors WHERE ( authors.state not in ( 'CA' ) ) ORDER BY authors.au_lname ASC (3.386 MS / 20.349 MS) カ ラ ム記述の取得 DESCRIBE: (0.021 MS / 20.370 MS) name=au_id,len=12,type=CHAR,pbt=1,dbt=1,ct=0,prec=0, scale=0 name=au_lname,len=41,type=CHAR,pbt=1,dbt=1,ct=0, prec=0,scale=0 name=state,len=3,type=CHAR,pbt=1,dbt=1,ct=0,prec=0, scale=0 メ モリ バッ フ ァ をカ ラ ムにバイ ン ド BIND SELECT OUTPUT BUFFER (DataWindow): (0.007 MS / 20.377 MS) name=au_id,len=12,type=CHAR,pbt=1,dbt=1,ct=0,prec=0, scale=0 name=au_lname,len=41,type=CHAR,pbt=1,dbt=1,ct=0, prec=0,scale=0 name=state,len=3,type=CHAR,pbt=1,dbt=1,ct=0,prec=0, scale=0 SELECT 文の実行 EXECUTE: (0.001 MS / 20.378 MS) 結果集合か ら行を フェ ッチ FETCH NEXT: (0.028 MS / 20.406 MS) au_id=648-92-1872 au_lname=Blotchet-Hall state=OR FETCH NEXT: (0.012 MS / 20.418 MS) au_id=722-51-5454 au_lname=DeFrance state=IN ... FETCH NEXT: (0.010 MS / 20.478 MS) au_id=341-22-1782 au_lname=Smith state=KS FETCH NEXT: (0.025 MS / 20.503 MS) *** DBI_FETCHEND *** (rc 100) デー タ ベース変更の更 新と コ ミ ッ ト PREPARE: UPDATE authors SET state = 'NM' 206 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング WHERE au_id = '648-92-1872' AND au_lname = 'BlotchetHalls' AND state = 'OR' (3.284 MS / 23.787 MS) EXECUTE: (0.001 MS / 23.788 MS) GET AFFECTED ROWS: (0.001 MS / 23.789 MS) ^ 1 Rows Affected COMMIT: (1.259 MS / 25.048 MS) デー タ ベース と の接続 の解除 DISCONNECT: (0.764 MS / 25.812 MS) デー タ ベース イ ン タ フ ェ ースのシ ャ ッ ト ダウン SHUTDOWN DATABASE INTERFACE: (0.001 MS / 25.813 MS) SQL 文 ト レース ユーテ ィ リ テ ィ の使い方 SQL 文の ト レース 独立 し たデー タ ベース ト レース ユーテ ィ リ テ ィ に よ り 、SQL 文の構文 に し たがっ て、デー タ ベース に発行 さ れ る 各 SQL 文の ロ グ フ ァ イ ルに 日付 と 時刻の項目を追加で き ま す。 デフ ォ ル ト では、 こ のユーテ ィ リ テ ィ は、 現行の Windows デ ィ レ ク ト リ の PBTRSSQL.log フ ァ イ ルにす べての ロ グ項目を保存 し ます。メ イ ン デー タ ベース ト レース ユーテ ィ リ テ ィ の ト レー ス 出力フ ァ イ ル名を変更す る の と 同 じ よ う に、 レ ジ ス ト リ 内で、 あ る いは以下の よ う に PB.INI フ ァ イ ルの DbTrace セ ク シ ョ ン で、ロ グ フ ァ イ ルの位置 と ロ グ フ ァ イ ル名を変更で き ます(194 ペー ジの 「DBTrace の INI フ ァ イ ル設定」 を参照 し て く だ さ い)。 [DbTrace] SqlTraceFile=c:\myApplication\tracesql.log ロ グ フ ァ イ ル名の レ ジ ス ト リ 文字列は、 SqlTraceFile です。 こ れは、 HKEY_CURRENT_USER\Software\Sybase\PowerBuilder\11.0\DBTrace キーの下にあ り ます。 PB.INI フ ァ イ ルの DbTrace セ ク シ ョ ン に 1 つで も エ ン ト リ があ る 場合は、 レ ジ ス ト リ の値は無視 さ れ ます。 デフ ォ ル ト の フ ァ イ ル名は、 レ ジ ス ト リ 値 と PB.INI 値が と も に設定 さ れていな い場合にだけ使用 さ れます。 TRS 修 飾 子 を 付 け て 使 用 し た い DBMS の ド ラ イ バ を 実 行 し て、 PowerScript コ ー ド 内の SQL 文 ト レース ユーテ ィ リ テ ィ を起動 し ます。 接続オブジ ェ ク ト の DBMS プ ロ パテ ィ に ド ラ イ バを設定 し ます。 た と えば、 デフ ォ ル ト の SQLCA 接続オブジ ェ ク ト に関 し て、 SQL ト レー ス で ODBC を使用 し たい場合は、 以下の よ う な コ ー ド にな り ます。 SQLCA.DBMS="TRS ODBC" デー タ ベース と の接続 207 SQL 文 ト レース ユーテ ィ リ テ ィ の使い方 メ イ ン データ ベース ユーティ リ ティ を 開始し 終了する のと 同じ よ う に、 PowerScript で SQL 文 ト レース ユーテ ィ リ テ ィ を開始 し 終了で き ます。 DBParm パ ラ メ ー タ に 「PBTrace=1」 を 設定 し て ト レ ー ス ロ グ を 開始 し 、 パ ラ メ ー タ に 「PBTrace=0」 を設定 し て ト レ ー ス ロ グ を停止す る こ と がで き ます。 詳細については、201 ページの 「PBTrace パ ラ メ ー タ を持つ PowerScript で ト レース を起動」 を参照 し て く だ さ い。 サーバ側の タ イムス タ ンプ 接続 し てい る PowerBuilder デー タ ベース ド ラ イ バが DBI_GET_SERVER_TIME コ マ ン ド タ イ プ をサポー ト す る 場合は、 サーバ側の タ イ ム ス タ ン プ を ク ラ イ ア ン ト 側の タ イ ム ス タ ンプのか わ り に使用で き ます。 現在、 サーバ側の タ イ ム ス タ ン プは、 ASE、 SYC、 SYJ、 お よ び ODBC ド ラ イ バで使用で き ます。 PBTRS110.DLL は、 デー タ ベース接続処理中に 1 度だけサーバか ら 日 付 と 時刻を入手 し ます。 新 し い タ イ ム ス タ ン プ を生成す る 必要があ る 度に、 接続を確立 し てか ら 経過 し た ミ リ 秒数を割 り 出 し 、 サーバか ら 入手 し た最初の接続の タ イ ム ス タ ン プ に経過時間 を 足 し て、 新 し い サーバ側の日付 と 時刻を計算 し ます。 ロ グ フ ァ イ ルのヘッ ダ ロ グ フ ァ イ ルへの出力は、常に追加 さ れ ます。読みやす く す る ために、 PBTRS110.DLL は新 し いデー タ ベース接続を確立す る 度に ロ グ フ ァ イ ル内にバナーを作 り ます。 バナーは、 ク ラ イ ア ン ト ワ ー ク ス テーシ ョ ンのシ ス テ ム ク ロ ッ ク を使用 し て、 デー タ ベース接続の日付 と 時刻を 一覧に し ます。 デー タ ベース接続の DBParm は、 バナーのす ぐ 下に一 覧 さ れ ます。 サーバの タ イ ム ス タ ン プが ロ グ フ ァ イ ルの後に続 く 項目 で使用 さ れ る 場合は、 「Using timestamp from DBMS server」 が DBParm の リ ス ト のす ぐ下に入力 さ れます。 デー タ ベー ス ト レ ー ス ユーテ ィ リ テ ィ と 一緒に ア プ リ ケーシ ョ ン を 実行 し てい る 場合は、 DBParm 値の 1 つは DisableBind パ ラ メ ー タ を含 む必要があ り ます。 DisableBind を 1 に設定す る 必要があ り ます。 そ う でな ければ、 ト レー ス出力フ ァ イ ルに記録 さ れ る 構文は、 人間が読み 取れ る 値ではな く 、 パ ラ メ ー タ マーカ を含みます。 以下の出力は、 バナー自体に ク ラ イ ア ン ト 側の タ イ ム ス タ ン プ を使用 し 、 ほ か の場所ではサーバ側の タ イ ム ス タ ン プ を 使用す る ト レ ー ス フ ァ イ ルか ら のバナーを示 し てい ます。 /*--------------------------------------------------*/ /* 2007/1/10 16:08 */ /*--------------------------------------------------*/ (60ec068): CONNECT TO TRS ODBC: DBPARM=ConnectString='DSN=EAS Demo DB 208 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング V110;UID=dba;PWD=sql' SERVER=EASDemoDB110 (60ec068): Using timestamp from DBMS server. (2007/1/10 16:08:28.079) (60ec068): PREPARE: (2007/1/10 16:08:44.513) SELECT DISTINCT "pbcattbl"."pbt_tnam" , "pbcattbl"."pbt_cmnt" FROM "pbcattbl" ORDER BY "pbcattbl"."pbt_tnam" ASC ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 こ の節では、ODBC ド ラ イ バ マネージ ャ ト レース の使い方について説 明 し ます。 ODBC ド ラ イバ マネージ ャ ト レース ODBC ド ラ イ バ マネージ ャ ト レース を使用す る と 、PowerBuilder か ら 、 ODBC イ ン タ フ ェ ー ス を 経由 し て ア ク セ ス し て い る ODBC デー タ ソ ースへの接続を ト レース で き ます。 デー タ ベース ト レース ツール と は異な り 、ODBC ド ラ イ バ マネージ ャ ト レー ス ツールでは、 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を経 由す る 接続を ト レース で き ません。 ツールの機能 ODBC ド ラ イ バ マネージャ ト レ ース は、ODBC データ ソ ース に接続し ている 状態で、PowerBuilder の ODBC API 呼び出 し 、 SQLDriverConnect、 SQLGetInfo、 SQLFetch な ど についての情報を記録 し ます。 こ の情報は、 SQL.LOG と い う 名前のデフ ォ ル ト ロ グ フ ァ イ ル、 ま たは指定の ロ グ フ ァ イ ルに書 き 込まれます。 ツールから の出力の利 用 デー タ ベース ト レー ス ツール と 同様に、 ODBC ド ラ イ バ マネージ ャ ト レー ス か ら 得 ら れ る 情報を使用す る と 、 以下の こ と が可能にな り ま す。 デー タ ベース と の接続 • ODBC デー タ ソ ース に接続中の PowerBuilder の内部的な処理の把 握 • ODBC と の接続で発生 し た問題の確認 と 解決 • デー タ ベース と の接続で発生 し た問題について テ ク ニ カル サポー ト セ ン タ に連絡す る 際の情報の提供 209 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 PowerBuilder の ODBC API 呼び出 し に関 し て詳細な情報が必要な場合 は、 デー タ ベー ス ト レ ー ス ツ ールでは な く ODBC ド ラ イ バ マ ネー ジ ャ ト レース を使用 し ます。 ツールの使い分け パ フ ォ ーマ ン スに関する注意 ODBC ド ラ イ バ マネージ ャ ト レース を使用す る と 、 PowerBuilder で操 作 し てい る と き に、 パフ ォ ーマ ン ス が低下す る 場合があ り ま す。 こ の ため、 ODBC ド ラ イ バ マネージ ャ ト レース は、 デバ ッ グだけ を目的に 使用 し 、 それ以外の場合は使用 し ないで く だ さ い。 PowerBuilder は、ODBC ド ラ イ バ マネージ ャ を SQL.LOG と い う デフ ォ ル ト ロ グ フ ァ イ ル ま た は指定 し た ロ グ フ ァ イ ルに書 き 込み ま す。 SQL.LOG のデフ ォ ル ト の位置はルー ト デ ィ レ ク ト リ です。 SQL.LOG フ ァ イル ODBC ド ラ イバ マネージ ャ ト レースの起動 PowerBuilder におい て、 ODBC ド ラ イ バ マ ネージ ャ ト レ ー ス は、 デ フ ォ ル ト で オ フ に な っ て い ま す。 ODBC 接続 を ト レ ー ス す る た めに ODBC ド ラ イ バ マネージ ャ ト レース を起動す る には、 2 つの方法があ り ます。 • PowerBuilder 開発環境でデー タ ベース プ ロ フ ァ イ ルを編集す る • PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト を編集す る 開発環境における ODBC ド ラ イバ マネージ ャ ト レースの起動 PowerBuilder の開発環境の中で ODBC ド ラ イ バ マネージ ャ ト レ ー ス を起動す る には、以下の手順に従っ て、 ト レースす る 接続のデー タ ベー ス プ ロ フ ァ イ ルを編集 し ます。 ❖ 210 デー タ ベース プ ロ フ ァ イルを編集 し て ODBC ド ラ イバ マネージ ャ ト レース を起動する 1 ト レ ース する ODBC 接続に対応する DB プロ フ ァ イ ル設定 - ODBC ダ イ ア ロ グボ ッ ク ス を開 き ます。 2 [オプシ ョ ン] タ ブで、 [ODBC API 呼出の ト レース] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し ます。 3 (オプシ ョ ン) ODBC ド ラ イ バ マネージ ャ ト レース の ロ グの出力 先 と な る ロ グ フ ァ イ ルを指定す る には、[ ト レース フ ァ イ ル] ボ ッ ク ス にパ ス名を入力 し ます。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング ま たは (オプシ ョ ン) 参照 ([...]) ボ タ ン を ク リ ッ ク し て、 [ ト レース フ ァ イ ル] ボ ッ ク ス に既存の ロ グ フ ァ イ ルのパ ス名を表示 し ます。 デフ ォ ル ト では、 [ODBC API 呼出の ト レース] チ ェ ッ ク ボ ッ ク ス がチ ェ ッ ク さ れていて、 ト レース フ ァ イ ルが指定 さ れていない場 合、 ODBC ド ラ イ バ マ ネージ ャ ト レ ー ス の出力はデ フ ォ ル ト の SQL.LOG フ ァ イ ルに書 き 込まれます。 4 [OK] ボ タ ン ま たは [更新] ボ タ ン を ク リ ッ ク し ます。 ま たは DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス 内で、 接続す る デー タ ベー ス を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再接続] を選 択 し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れ ます。 設定は、 PowerBuilder に よ っ て レ ジ ス ト リ 内のデー タ ベース プ ロ フ ァ イ ルのエ ン ト リ (HKEY_CURRENT_USER\Software\Sybase\ PowerBuilder\11.0\DatabaseProfiles キー) に保存 さ れます。 た と えば、 以下に、 Employee と い う 名前の ODBC デー タ ソ ース に 対す る デー タ ベー ス プ ロ フ ァ イ ル エ ン ト リ の該当部分 を 示 し ま す。 ODBC ド ラ イ バ マネージ ャ ト レース (ConnectOption DBParm パ ラ メ ー タ に対応) を開始す る 設定は、 強調で示 さ れてい ます。 DBMS "ODBC" ... DbParm "ConnectString='DSN=Emloyee;UID=dba; PWD=00c61737',ConnectOption='SQL_OPT_TRACE,SQL_OPT_ TRACE_ON;SQL_OPT_TRACEFILE,C:\Temp\odbctrce.log'” 5 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス で [接続] ボ タ ン を ク リ ッ ク し てデー タ ベース に接続 し ます。 ま たは DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス 内で、 接続す る デー タ ベー ス を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再接続] を選 択 し ます。 デー タ ベース と の接続が さ れ る と と も に、 その ODBC デー タ ベー ス接続に対す る ト レース が起動 さ れ、 指定 し た ロ グ フ ァ イ ルに出 力が書 き 込まれ ます。 デー タ ベース と の接続 211 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 PowerBuilder アプ リ ケーショ ン における ODBC ド ラ イ バ マネージャ ト レ ースの起動 PowerBuilder ア プ リ ケーシ ョ ン におい て ODBC ド ラ イ バ マ ネージ ャ ト レース を起動す る には、 ConnectOption DBParm パ ラ メ ー タ の値を適 切な ス ク リ プ ト に指定 し ます。 た と えば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に接続パ ラ メ ー タ を含め る のが一般的です。 PowerBuilder ス ク リ プ ト に必要な ConnectOption 値を指定す る には、以 下の方法があ り ます。 • (推奨) PowerScript ConnectOption DBParm 構文を、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピーす る • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ に値を設定 す る PowerScript コ ー ド を記述す る • 外部テ キ ス ト フ ァ イ ルか ら DBParm プ ロ パテ ィ に設定す る 値を読 み込む PowerBuilder アプ リ ケーシ ョ ン でデー タ ベー ス と 通信す る ための ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の使い方については、 『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルを参照 し て く だ さ い。 ConnectOption DBParm パラ メ ー タ 212 ConnectOption は何種類 も のパ ラ メ ー タ を備え てい ますが、 その中の 2 種類が PowerBuilder で使用 し て い る ODBC 準拠の ド ラ イ バに対す る ODBC ド ラ イ バ マネージ ャ ト レース を制御 し ます。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング 表 13-2: ODBC ド ラ イ バ マネージャ ト レ ースの ConnectOption パラ メ ー タ パラ メ ー タ SQL_OPT_TRACE 説明 PowerBuilder で ODBC ド ラ イ バ マ ネー ジ ャ ト レース を起動ま たは停止す る 値 以下のいずれかの値を指定する 目的 • SQL_OPT_TRACE_OFF (デフ ォ ル ト ) ODBC ド ラ イ バ マネージ ャ ト レース を停止す る • SQL_OPT_TRACEFILE SQL_OPT_TRACE_ON ODBC ド ラ イ バ マネージ ャ ト レース を起 動す る 目的 ODBC ド ラ イ バ マネージ ャ ト レース の 出力を書 き 込む、 ト レー ス フ ァ イ ルの名前を 指定す る 。 ト レース を停止する ま で、指定す る ト レ ー ス フ ァ イ ルに出力が追加 さ れて い く 。 ト レー ス フ ァ イ ルを表示す る には、 テ キ ス ト エデ ィ タ (PowerBuilder の ツール) や任意のテ キ ス ト エデ ィ タ (PowerBuilder 以外の ツール) を使用す る 値 ト レ ー ス フ ァ イ ルに任意の フ ァ イ ル名を 指定で き る 。 ただ し 、 オペレーテ ィ ン グ シ ス テ ムの命名規則に従 う 必要があ る 。ト レース が 起動 さ れていて、 ト レー ス フ ァ イ ルが指定 さ れていない場合、 ODBC ド ラ イ バ マネージ ャ ト レ ー ス の 出力 は デ フ ォ ル ト で SQL.LOG フ ァ イ ルに書 き 込まれ る 各プ ラ ッ ト フ ォ ー ム で の SQL.LOG の保存場 所の詳細については、 209 ページの 「ODBC ド ラ イ バ マネージ ャ ト レース」 を参照 [プ レ ビ ュ ー] タ ブか ら の ConnectOption 構文の コ ピー PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト で ODBC ド ラ イ バ マネー ジ ャ ト レー ス を起動す る も っ と も 簡単な方法 と し て、 DB プ ロ フ ァ イ ル 設 定 - ODBC ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブ か ら PowerScript ConnectString DBParm 構文を ス ク リ プ ト に コ ピー し 、 必要 であれば、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を修正す る 方法があ り ます。 開発環境で DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定す る と 、 PowerBuilder は正 し い接続構文を [プ レ ビ ュ ー] タ ブ上に生成 し ます。 し た が っ て、 そ の構文 を [プ レ ビ ュ ー] タ ブか ら 直接 コ ピ ーすれば、 ス ク リ プ ト は正 し い も のであ る こ と が保証 さ れ ます。 デー タ ベース と の接続 213 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 ❖ ConnectOption 構文を [プ レ ビ ュ ー] タ ブから ス ク リ プ ト に コ ピーする 1 使用 し てい る 接続に対す る DB プ ロ フ ァ イ ル設定 - ODBC ダ イ ア ロ グボ ッ ク ス の [オプシ ョ ン] タ ブで、 [ODBC API 呼出の ト レー ス] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し 、 必要であれば [ ト レース フ ァ イ ル] ボ ッ ク ス で ロ グ フ ァ イ ル を 指定 し て、 ODBC ド ラ イ バ マ ネージ ャ ト レース を起動 し ます。 2 [更新] ボ タ ン を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ずに、 [オプシ ョ ン] タ ブへの変更を保存 し ます。 3 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 ODBC ド ラ イ バ マ ネージ ャ ト レ ー ス お よ び選択 し た ほかのオプ シ ョ ン に対す る 正 し い PowerScript 接続構文が [DB 接続構文] ボ ッ ク ス に表示 さ れます。 次の例では、 ODBC ド ラ イ バ マネージ ャ ト レース を起動 し 、 出力 を C:\TEMP\ODBCTRCE.LOG フ ァ イ ルに書 き 込む PowerScript 構 文が示 さ れてい ます。 // Profile Employee SQLCA.DBMS = "ODBC" SQLCA.AutoCommit = False SQLCA.DBParm = "Connectstring='DSN=Employee', ConnectOption='SQL_OPT_TRACE,SQL_OPT_TRACE_ON; SQL_OPT_TRACEFILE,c:\temp\odbctrce.log’" 4 SQLCA.DBParm 行 と 、 ス ク リ プ ト に コ ピー し たい構文があればそ れを選択 し て、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 選択 し た テ キ ス ト を PowerBuilder が ク リ ッ プボー ド に コ ピー し ま す。 5 PowerBuilder ア プ リ ケ ーシ ョ ン の ス ク リ プ ト で、 ODBC ド ラ イ バ マ ネージ ャ ト レース を起動す る には、 ト レース を制御す る ConnectOption パ ラ メ ー タ を、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ の値 と し て指定す る 方法 も あ り ます。 DBParm プ ロパテ ィ に対 し て値を設定する PowerScript コ ー ド を 記述 ❖ DBParm プ ロパテ ィ を指定 し て ODBC ド ラ イバ マネージ ャ ト レース を起動 • 214 [プ レ ビ ュ ー] タ ブか ら 選択 し た テ キ ス ト を ス ク リ プ ト に貼 り 付 け、 必要であれば ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を変更 し ます。 ト レース を起動 し て、 デフ ォ ル ト 以外の ト レース フ ァ イ ルを指定 す る には、アプ リ ケーシ ョ ン ス ク リ プ ト の中で、SQL_OPT_TRACE と (オプシ ョ ン で) SQL_OPT_TRACEFILE ConnectOption パ ラ メ ー タ を それぞれ指定 し ます。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング た と えば、 以下の ス テー ト メ ン ト はアプ リ ケーシ ョ ン で ODBC ド ラ イ バ マネージ ャ ト レ ー ス を起動 し 、 MYTRACE.LOG と い う 名 前の フ ァ イ ルに出力を送 り ます。 ConnectString 値 と ConnectOption 値を区切 る ために、 カ ン マ を挿入 し ます。 こ の例は、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を 使用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます。 SQLCA.DBParm="ConnectString=’DSN=Test;UID=PB; PWD=xyz’,ConnectOption=’SQL_OPT_TRACE, SQL_OPT_TRACE_ON;SQL_OPT_TRACEFILE,C:\TRC.LOG’" PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBParm プ ロ パテ ィ を 設定す る には、PowerScript ProfileString 関数を使用 し て、アプ リ ケーシ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ルの特定のセ ク シ ョ ン か ら 、 DBParm 値を読み込む方法 も あ り ます。 外部テキス ト フ ァ イ ルから の DBParm 値 の読み込み こ の場合、 初期設定フ ァ イ ルか ら 読み込ま れ る DBParm 値には、 前述 の例に示す よ う に、 ODBC ド ラ イ バ マネージ ャ ト レ ー ス を起動す る ConnectOption パ ラ メ ー タ が定義 さ れてい る も の と し ます。 ❖ 外部テキス ト フ ァ イルから DBParm 値を読み込んで ODBC ド ラ イバ マネー ジ ャ ト レース を起動する • 以下の PowerScript 構文を 使用し て、DBParm プロ パティ に ProfileString 関数を指定 し ます。 SQLCA.dbParm = ProfileString(file, section, variable, default_value) た と えば、 以下の PowerBuilder ス ク リ プ ト では APP.INI フ ァ イ ル の [Database] セ ク シ ョ ン か ら DBParm 値を読み込みます。 SQLCA.dbParm = ProfileString("APP.INI","Database","DBParm","") ODBC ド ラ イバ マネージ ャ ト レースの停止 ODBC ド ラ イ バ マネージ ャ ト レース で ODBC 接続の ト レース を い っ たん起動す る と 、 ト レ ー ス を停止す る ま で、 PowerBuilder に よ る ロ グ フ ァ イ ルへの ト レース 出力の書 き 込みが続 き ます。 以降の節に記述 さ れてい る よ う に、 ト レース を停止 し た後に、 変更を反映 さ せ る ために 再接続す る 必要があ り ます。 デー タ ベース と の接続 215 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 開発環境における ODBC ド ラ イバ マネージ ャ ト レースの停止 ❖ デー タ ベース プ ロ フ ァ イルを編集 し て ODBC ド ラ イバ マネージ ャ ト レース を停止する 1 ト レース し てい る デー タ ベース接続に対す る DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 詳 し い手順については、 210 ページの 「開発環境におけ る ODBC ド ラ イ バ マネージ ャ ト レース の起動」 を参照 し て く だ さ い。 2 [オプシ ョ ン] タ ブで、 [ODBC API 呼出の ト レース] チ ェ ッ ク ボ ッ ク ス のチ ェ ッ ク をはず し ます。 [ ト レー ス フ ァ イ ル] ボ ッ ク ス に ロ グ フ ァ イ ルのパ ス 名を指定 し た場合、 後で ト レース を再開す る 場合に備え て、 ト レース フ ァ イ ルの名前を残 し ておけ ます。 3 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の[OK]ボ タ ン を ク リ ッ ク し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れます。 4 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス の [接続] ボ タ ン を ク リ ッ ク す る か、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス 内で、 接続す る デー タ ベース を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再 接続] を選択 し ます。 PowerBuilder はデー タ ベース に接続 し 、接続の ト レース を停止 し ま す。 PowerBuilder アプ リ ケーショ ン における ODBC ド ラ イ バ マネージャ ト レ ースの停止 PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト の中で、 ODBC ド ラ イ バ マ ネージ ャ ト レ ー ス を 停止す る には、 SQL_OPT_TRACE ConnectOption パ ラ メ ー タ を SQL_OPT_TRACE_OFF に変更 し ま す。 以下の方法で指 定 し ます。 DBParm プ ロパテ ィ 値の編集 216 • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ の値を編集 する • 外部テ キ ス ト フ ァ イ ルか ら DBParm プ ロ パテ ィ に設定す る 値を読 み込む PowerBuilder ス ク リ プ ト の中で、 ConnectOption 値を変更す る には、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ を編集す る 方法が あ り ます。 PowerBuilder 第 13 章 ❖ デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング DBParm プ ロパテ ィ を編集 し て ODBC ド ラ イバ マネージ ャ ト レース を停止 • アプ リ ケーシ ョ ン ス ク リ プ ト の中で、 ト ラ ンザ ク シ ョ ン オブ ジ ェ ク ト の DBParm プ ロ パテ ィ を編集 し 、 SQL_OPT_TRACE ConnectOption パ ラ メ ー タ の値を SQL_OPT_TRACE_OFF に変更 し ます。 た と え ば、 以下の ス テ ー ト メ ン ト は、 ア プ リ ケ ー シ ョ ン の中で ODBC ド ラ イ バ マネージ ャ ト レー ス を起動 し 、 出力を TRC.LOG と い う 名前の フ ァ イ ルに書 き 込む こ と を指定 し ます。 ( こ の構文で は、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を使用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.DBParm="ConnectString=’DSN=Test;UID=PB; PWD=xyz’,ConnectOption=’SQL_OPT_TRACE, SQL_OPT_TRACE_ON;SQL_OPT_TRACEFILE,C:\TRC.LOG’" こ の ス テ ー ト メ ン ト を 編集 し て ODBC ド ラ イ バ マ ネ ー ジ ャ ト レース の終了を指定す る と 、 以下の よ う にな り ます。 (後で ト レー ス を再開す る 場合に備え て、 ト レース フ ァ イ ルの名前を残 し てお け ます。) SQLCA.DBParm="ConnectString=’DSN=Test;UID=PB; PWD=xyz’,ConnectOption=’SQL_OPT_TRACE, SQL_OPT_TRACE_OFF;SQL_OPT_TRACEFILE,C:\TRC.LOG’" DBParm 値の読み込 み PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBParm プ ロ パテ ィ を 編集す る には、 PowerScript ProfileString 関数 を 使用 し て、 ア プ リ ケー シ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ルの特定の セ ク シ ョ ン か ら 、 DBParm 値を読み込む方法 も あ り ます。 こ の場合、 前述の例に示す よ う に、 初期設定フ ァ イ ルか ら 読み込 ま れ る DBParm 値は、 SQL_OPT_TRACE の値を SQL_OPT_TRACE_OFF に 設定 し ます。 ODBC ド ラ イバ マネージ ャ ト レース ログの表示 PowerBuilder セ ッ シ ョ ン 中で あ れば、 ODBC ド ラ イ バ マ ネージ ャ ト レース ロ グ フ ァ イ ルの内容はいつで も 表示で き ます。 SQL.LOG の保存場所 デフ ォ ル ト の SQL.LOG フ ァ イ ルの保存場所については、209 ページの 「ODBC ド ラ イ バ マネージ ャ ト レース」 を参照 し て く だ さ い。 デー タ ベース と の接続 217 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 ❖ ログ フ ァ イルの内容を表示する • 以下のいずれかの方法で、 SQL.LOG フ ァ イ ル、 ま たは指定 し た ロ グ フ ァ イ ルを開 き ます。 • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ いては、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照) • PowerBuilder の外部の環境で、任意のテ キ ス ト エデ ィ タ を使用 する ログ フ ァ イルを開いたま まにする PowerBuilder を使用 し てい る 間、 ロ グ フ ァ イ ルを開いた ま ま に し てお く と 、 ODBC ド ラ イ バ マネージ ャ ト レース ツールはその フ ァ イ ルを 更新 し ません。 ODBC ド ラ イバ マネージ ャ ト レース ログのサン プル こ の節では、ODBC ド ラ イ バ マネージ ャ ト レース か ら 出力 さ れ る ロ グ の例を示 し 、 その内容について説明 し ます。 こ の例は EAS Demo DB へ の ODBC 接続の ト レース の一部です。 各 ODBC API 呼び出 し の詳細については、 ODBC のマニ ュ アルを参照 し て く だ さ い。 PB110 179:192 EXIT SQLSetConnectOption code 0 (SQL_SUCCESS) HDBC 0x036e1300 UWORD 104 <SQL_OPT_TRACE> UDWORD 1 with return PB110 179:192 ENTER SQLSetConnectOption HDBC 0x036e1300 UWORD 110 <SQL_OPT_TRACEFILE> UDWORD 160694373 PB110 179:192 EXIT SQLSetConnectOption with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 UWORD 110 <SQL_OPT_TRACEFILE> UDWORD 160694373 PB110 179:192 ENTER SQLDriverConnectW HDBC 0x036e1300 HWND 0x004607fa WCHAR * 0x1f4be068 [ -3] "******\ 0" 218 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング SWORD -3 WCHAR * 0x1f4be068 SWORD 8 SWORD * 0x00000000 UWORD 1 <SQL_DRIVER_COMPLETE> PB110 179:192 EXIT SQLDriverConnectW with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 HWND 0x004607fa WCHAR * 0x1f4be068 [ -3] "******\ 0" SWORD -3 WCHAR * 0x1f4be068 SWORD 8 SWORD * 0x00000000 UWORD 1 <SQL_DRIVER_COMPLETE> PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 6 <SQL_DRIVER_NAME> PTR 0x036e2098 SWORD 6 SWORD * 0x0012cd30 PB110 179:192 EXIT SQLGetInfoW with return code 1 (SQL_SUCCESS_WITH_INFO) HDBC 0x036e1300 UWORD 6 <SQL_DRIVER_NAME> PTR 0x036e2098 [ 6] "DB\ 0" SWORD 6 SWORD * 0x0012cd30 (22) DIAG [01104] [Sybase][ODBC Driver]Data truncated (0) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 10 <SQL_ODBC_VER> PTR 0x036e39f8 SWORD 100 SWORD * 0x0012cd38 PB110 179:192 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 UWORD 10 <SQL_ODBC_VER> PTR 0x036e39f8 [ 20] "03.51.0000" SWORD 100 SWORD * 0x0012cd38 (20) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 2 <SQL_DATA_SOURCE_NAME> PTR 0x036e3c88 デー タ ベース と の接続 219 ODBC ド ラ イバ マネージ ャ ト レース ツールの使い方 SWORD 512 SWORD * 0x0012cc32 PB110 179:192 EXIT SQLGetInfoW with return (SQL_SUCCESS) HDBC 0x036e1300 UWORD 2 <SQL_DATA_SOURCE_NAME> PTR 0x036e3c88 [ 28] "EAS Demo DB" SWORD 512 SWORD * 0x0012cc32 (28) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 16 <SQL_DATABASE_NAME> PTR 0x036e3c88 SWORD 512 SWORD * 0x0012cc32 PB110 179:192 EXIT SQLGetInfoW with return (SQL_SUCCESS) HDBC 0x036e1300 UWORD 16 <SQL_DATABASE_NAME> PTR 0x036e3c88 [ 16] "easdemodb" SWORD 512 SWORD * 0x0012cc32 (16) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 25 <SQL_DATA_SOURCE_READ_ONLY> PTR 0x036e3c88 SWORD 512 SWORD * 0x0012cc32 PB110 179:192 EXIT SQLGetInfoW with return (SQL_SUCCESS) HDBC 0x036e1300 UWORD 25 <SQL_DATA_SOURCE_READ_ONLY> PTR 0x036e3c88 [ 2] "N" SWORD 512 SWORD * 0x0012cc32 (2) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 13 <SQL_SERVER_NAME> PTR 0x036e3c88 SWORD 512 SWORD * 0x0012cc32 PB110 179:192 EXIT SQLGetInfoW with return (SQL_SUCCESS) HDBC 0x036e1300 UWORD 13 <SQL_SERVER_NAME> PTR 0x036e3c88 [ 16] "easdemodb" 220 code 0 code 0 code 0 code 0 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング SWORD 512 SWORD * 0x0012cc32 (16) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 17 <SQL_DBMS_NAME> PTR 0x036e3c88 SWORD 512 SWORD * 0x0012cab6 PB110 179:192 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 UWORD 17 <SQL_DBMS_NAME> PTR 0x036e3c88 [ 48] "SQL Anywhere" SWORD 512 SWORD * 0x0012cab6 (48) PB110 179:192 ENTER SQLGetInfoW HDBC 0x036e1300 UWORD 6 <SQL_DRIVER_NAME> PTR 0x036e1a10 SWORD 550 SWORD * 0x0012cbbc PB110 179:192 EXIT SQLGetInfoW with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 UWORD 6 <SQL_DRIVER_NAME> PTR 0x036e1a10 [ 22] "DBODBC9.DLL" SWORD 550 SWORD * 0x0012cbbc (22) PB110 179:192 ENTER SQLAllocStmt HDBC 0x036e1300 HSTMT * 0x0012d0b4 PB110 179:192 EXIT SQLAllocStmt with return code 0 (SQL_SUCCESS) HDBC 0x036e1300 HSTMT * 0x0012d0b4 ( 0x036e1c48) PB110 179:192 ENTER SQLGetTypeInfo HSTMT 0x036e1c48 SWORD 0 <SQL_ALL_TYPES> JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 こ の節では、 JDBC ド ラ イ バ マネージ ャ ト レース の使い方について説 明 し ます。 デー タ ベース と の接続 221 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 JDBC ド ラ イバ マネージ ャ ト レース JDBC ド ラ イ バ マネージ ャ ト レース を使用す る と 、PowerBuilder か ら 、 JDBC イ ン タ フ ェ ー ス を経由 し て ア ク セ ス し てい る デー タ ベー ス への 接続を ト レース で き ます。 デー タ ベース ト レース ツール と は異な り 、JDBC ド ラ イ バ マネージ ャ ト レ ー ス ツールでは、 ネ イ テ ィ ブ デー タ ベー ス イ ン タ フ ェ ー ス を経 由す る 接続を ト レース で き ません。 ツールの機能 JDBC ド ラ イ バ マネージ ャ ト レース は、 PowerBuilder が JDBC イ ン タ フ ェ ース を経由 し てデー タ ベース に接続 し てい る と き に、 現在 ロ ー ド し てい る ド ラ イ バ オブジ ェ ク ト (Sybase の jConnect JDBC ド ラ イ バな ど) が生成 し たエ ラ ーお よ び情報 メ ッ セージ を ロ グ フ ァ イ ルに記録 し ま す。 こ の情報は、 JDBC.LOG と い う 名前のデ フ ォ ル ト ロ グ フ ァ イ ル、 ま たは指定の ロ グ フ ァ イ ルに書 き 込ま れ ます。 ト レース出力の量 は、 使用 し てい る JDBC ド ラ イ バに よ っ て異な り ます。 ツールか らの出力の利 用 デー タ ベース ト レース ツール と 同様に、JDBC ド ラ イ バ マネージ ャ ト レース か ら 得 ら れ る 情報を使用す る と 、以下の こ と が可能にな り ます。 ツールの使い分け • JDBC イ ン タ フ ェ ース を経由 し てデー タ ベース接続中の PowerBuilder の内部的な処理の把握 • JDBC 接続で発生 し た問題の確認 と 解決 • デー タ ベース と の接続で発生 し た問題について テ ク ニ カル サポー ト セ ン タ に連絡す る 際の情報の提供 JDBC ド ラ イ バに関 し て詳細な情報が必要な場合は、 デー タ ベース ト レー ス ツールではな く JDBC ド ラ イ バ マネージ ャ ト レー ス を使用 し ます。 パ フ ォ ーマ ン スに関する注意 JDBC ド ラ イ バ マネージ ャ ト レース を使用す る と 、 PowerBuilder で操 作 し てい る と き に、 パフ ォ ーマ ン ス が低下す る 場合があ り ま す。 こ の ため、 JDBC ド ラ イ バ マネージ ャ ト レース は、 デバ ッ グだけ を目的に 使用 し 、 それ以外の場合は使用 し ないで く だ さ い。 JDBC.LOG フ ァ イル 222 PowerBuilder は、 JDBC ド ラ イ バ マ ネ ー ジ ャ ト レ ー ス の 出 力 を JDBC.LOG と い う デフ ォ ル ト ロ グ フ ァ イ ル ま たは指定 し た ロ グ フ ァ イ ルに書 き 込みます。JDBC.LOG のデフ ォ ル ト の位置は temp デ ィ レ ク ト リ です。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング JDBC ド ラ イバ マネージ ャ ト レースの起動 PowerBuilder において、JDBC ド ラ イ バ マネージ ャ ト レース は、デフ ォ ル ト でオ フ にな っ てい ます。JDBC 接続を ト レースす る ために JDBC ド ラ イ バ マネージ ャ ト レース を起動す る には、 2 つの方法があ り ます。 • PowerBuilder 開発環境でデー タ ベース プ ロ フ ァ イ ルを編集す る • PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト を編集す る 開発環境における JDBC ド ラ イバ マネージ ャ ト レースの起動 PowerBuilder の開発環境の中で JDBC ド ラ イ バ マネージ ャ ト レース を 起動す る には、 以下の手順に従っ て、 ト レー スす る 接続のデー タ ベー ス プ ロ フ ァ イ ルを編集 し ます。 ❖ デー タ ベース プ ロ フ ァ イルを編集 し て JDBC ド ラ イバ マネージ ャ ト レース を起動する 1 ト レース し たい JDB 接続に対応す る DB プ ロ フ ァ イ ル設定 - JDBC ダ イ ア ロ グボ ッ ク ス を開 き ます。 2 [オプシ ョ ン] タ ブで、 [JDBC コ ールを ト レース] チ ェ ッ ク ボ ッ ク ス をチ ェ ッ ク し ます。 3 (オプシ ョ ン) JDBC ド ラ イ バ マネージ ャ ト レース の ロ グの出力先 と な る ロ グ フ ァ イ ルを指定す る には、 [ ト レー ス フ ァ イ ル] ボ ッ ク ス にパ ス名を入力す る か、 参照 ([...]) ボ タ ン を ク リ ッ ク し て、 [ ト レ ー ス フ ァ イ ル] ボ ッ ク ス に既存の ロ グ フ ァ イ ルのパ ス 名を 表示 し ます。 デフ ォ ル ト では、 [JDBC コ ールを ト レー ス] チ ェ ッ ク ボ ッ ク ス が チ ェ ッ ク さ れていて、 代わ り の ト レース フ ァ イ ルが指定 さ れてい ない場合、 JDBC ド ラ イ バ マネージ ャ ト レース の出力はデフ ォ ル ト の JDBC.LOG フ ァ イ ルに書 き 込まれます。 4 [OK] ボ タ ン ま たは [更新] ボ タ ン を ク リ ッ ク し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れ ます。 PowerBuilder は、 レ ジ ス ト リ 内のデー タ ベー ス プ ロ フ ァ イ ルのエ ン ト リ に設定 を 保存 し ま す。 デー タ ベース と の接続 223 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 た と えば、 以下に、 Employee と い う 名前の JDBC デー タ ベース に 対す る デー タ ベー ス プ ロ フ ァ イ ル エ ン ト リ の DBMS と DBParm 文字列の部分 を 示 し ま す。 JDBC ド ラ イ バ マ ネージ ャ ト レ ー ス (TraceFile DBParm パ ラ メ ー タ に対応) を開始す る 設定は、 強調で 示 さ れてい ます。 DBMS DbParm 5 "TRACE JDBC" "Driver='com.sybase.jdbc.SybDriver', URL='jdbc:sybase:Tds:199.93.178.151: 5007\tsdata',TraceFile='c:\temp\jdbc.log'" DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス で [接続] ボ タ ン を ク リ ッ ク し てデー タ ベース に接続 し ます。 ま たは DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス 内で、 接続す る デー タ ベー ス を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再接続] を選 択 し ます。 PowerBuilder はデー タ ベース に接続 し 、 JDBC デー タ ベース接続の ト レース を起動 し 、指定 し た ロ グ フ ァ イ ルに出力を書 き 込みます。 PowerBuilder アプ リ ケーショ ン における JDBC ド ラ イ バ マネージャ ト レ ースの起動 PowerBuilder アプ リ ケーシ ョ ンにおいて JDBC ド ラ イ バ マネージ ャ ト レ ー ス を起動す る には、 TraceFile DBParm パ ラ メ ー タ の値を適切な ス ク リ プ ト に指定 し ます。 た と えば、 アプ リ ケーシ ョ ン を開 く ス ク リ プ ト に指定す る のが一般的です。 PowerBuilder ス ク リ プ ト に TraceFile パ ラ メ ー タ を指定す る には、 以下 の方法があ り ます。 • (推奨) PowerScript TraceFile DBParm 構文を、 DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブか ら ス ク リ プ ト に コ ピーす る • ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ に対 し て値 を設定す る PowerScript コ ー ド を記述す る • 外部テ キ ス ト フ ァ イ ルか ら DBParm プ ロ パテ ィ に設定す る 値を読 み込む PowerBuilder アプ リ ケーシ ョ ン でデー タ ベー ス と 通信す る ための ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の使い方については、 『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルを参照 し て く だ さ い。 TraceFile DBParm パ ラ メータ 224 TraceFile は、 PowerBuilder で使用 し てい る JDBC 準拠 ド ラ イ バに対す る 、 JDBC ド ラ イ バ マネージ ャ ト レース を制御 し ます。 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト で JDBC ド ラ イ バ マネー ジ ャ ト レー ス を起動す る も っ と も 簡単な方法 と し て、 DB プ ロ フ ァ イ ル 設 定 - JDBC ダ イ ア ロ グ ボ ッ ク ス の [プ レ ビ ュ ー] タ ブ か ら PowerScript TraceFile DBParm 構文を ス ク リ プ ト に コ ピー し 、 必要であ れば、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を修 正す る 方法があ り ます。 [プ レ ビ ュ ー] タ ブか ら の TraceFile 構文の コ ピー 開発環境で DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を設定す る と 、 PowerBuilder は正 し い接続構文を [プ レ ビ ュ ー] タ ブ上に生成 し ます。 し た が っ て、 そ の構文 を [プ レ ビ ュ ー] タ ブか ら 直接 コ ピ ーすれば、 ス ク リ プ ト は正 し い も のであ る こ と が保証 さ れ ます。 ❖ TraceFile 構文を [プ レ ビ ュ ー] タ ブから ス ク リ プ ト に コ ピーする 1 使用 し てい る 接続に対す る DB プ ロ フ ァ イ ル設定 - JDBC ダ イ ア ロ グ ボ ッ ク ス の [オプ シ ョ ン] タ ブで、 [JDBC コ ール を ト レ ー ス] チ ェ ッ ク ボ ッ ク ス を チ ェ ッ ク し 、 必要で あれば [ ト レ ー ス フ ァ イ ル] ボ ッ ク ス で ロ グ フ ァ イ ルを指定 し て、 JDBC ド ラ イ バ マネー ジ ャ ト レース を起動 し ます。 詳 し い手順については、 223 ページの 「開発環境におけ る JDBC ド ラ イ バ マネージ ャ ト レース の起動」 を参照 し て く だ さ い。 2 [更新] ボ タ ン を ク リ ッ ク し て、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス を閉 じ ずに、 [オプシ ョ ン] タ ブへの変更を保存 し ます。 3 [プ レ ビ ュ ー] タ ブ を ク リ ッ ク し ます。 JDBC ド ラ イ バ マ ネージ ャ ト レ ー ス お よ び選択 し た ほ かのオ プ シ ョ ン に対す る 正 し い PowerScript 接続構文が [DB 接続構文] ボ ッ ク ス に表示 さ れます。 次の例では、 JDBC ド ラ イ バ マネージ ャ ト レース を起動 し 、 出力 を C:\TEMP\JDBC.LOG と い う フ ァ イ ルに書 き 込む PowerScript 構 文が示 さ れてい ます。 // Profile Employee SQLCA.DBMS = "TRACE JDBC" SQLCA.DBParm = "Driver='com.sybase.jdbc.SybDriver', URL='jdbc:sybase:Tds:199.93.178.151:5007/tsdata', TraceFile='c:\temp\jdbc.log'" 4 DBParm 行 と 、ス ク リ プ ト に コ ピー し たい構文があればそれを選択 し て、 [ コ ピー] ボ タ ン を ク リ ッ ク し ます。 選択 し た テ キ ス ト を PowerBuilder が ク リ ッ プボー ド に コ ピー し ま す。 デー タ ベース と の接続 225 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 5 DBParm プ ロパテ ィ に対 し て値を設定する PowerScript コ ー ド を 記述 [プ レ ビ ュ ー] タ ブか ら 選択 し た テ キ ス ト を ス ク リ プ ト に貼 り 付 け、 必要であれば ト ラ ンザ ク シ ョ ン オブジ ェ ク ト のデフ ォ ル ト 名 (SQLCA) を変更 し ます。 PowerBuilder アプ リ ケーシ ョ ンの ス ク リ プ ト で、JDBC ド ラ イ バ マネー ジ ャ ト レ ー ス を 起動す る には、 TraceFile パ ラ メ ー タ を、 ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ の値 と し て指定す る 方法 も あ り ます。 ❖ DBParm プロパティ を指定し て JDBC ド ラ イ バ マネージャ ト レ ースを起動する • ト レ ー ス を 起動 し 、 (オ プ シ ョ ン で) デ フ ォ ル ト 以外の ト レ ー ス フ ァ イ ル を指定す る には、 ア プ リ ケーシ ョ ン ス ク リ プ ト の中で、 TraceFile パ ラ メ ー タ を指定 し ます。 たと えば、以下のス テート メ ン ト は、ア プリ ケ ーショ ン の中で JDBC ド ラ イ バ マネージャ ト レ ース を 起動し 、出力を MYTRACE.LOG と い う 名前の フ ァ イ ルに書 き 込む こ と を 指定 し ま す。 ( こ の構文で は、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を使用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.DBParm = "Driver='com.sybase.jdbc.SybDriver', URL='jdbc:sybase:Tds:199.93.178.151:5007/tsdata', TraceFile='c:\MYTRACE.LOG'" PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBParm プ ロ パテ ィ を 設定す る には、 PowerScript ProfileString 関数 を 使用 し て、 ア プ リ ケー シ ョ ン固有の初期設定フ ァ イ ルな ど、 外部テ キ ス ト フ ァ イ ルの特定の セ ク シ ョ ンか ら 、 DBParm 値を読み込む方法 も あ り ます。 外部テキス ト フ ァ イ ルか らの DBParm 値 の読み込み こ の場合、 初期設定フ ァ イ ルか ら 読み込ま れ る DBParm 値には、 前述 の例に示す よ う に、 JDBC ド ラ イ バ マ ネージ ャ ト レ ー ス を 起動す る TraceFile パ ラ メ ー タ が定義 さ れてい る も の と し ます。 ❖ 外部テキス ト フ ァ イルか ら DBParm 値を読み込んで JDBC ド ラ イバ マネー ジ ャ ト レース を起動する • 以下の PowerScript 構文を 使用し て、DBParm プロ パティ に ProfileString 関数を指定 し ます。 SQLCA.dbParm = ProfileString(file, section, variable, default_value) た と えば、 以下の PowerBuilder ス ク リ プ ト では APP.INI フ ァ イ ル の [Database] セ ク シ ョ ン か ら DBParm 値を読み込みます。 SQLCA.dbParm = ProfileString("APP.INI","Database","DBParm","") 226 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング JDBC ド ラ イバ マネージ ャ ト レースの停止 JDBC ド ラ イ バ マネージ ャ ト レース で JDBC 接続の ト レース をい っ た ん起動す る と 、ト レース を停止す る ま で、PowerBuilder に よ る ロ グ フ ァ イ ルへの ト レース出力の書 き 込みが続 き ます。 開発環境における JDBC ド ラ イバ マネージ ャ ト レースの停止 ❖ デー タ ベース プ ロ フ ァ イルを編集 し て JDBC ド ラ イバ マネージ ャ ト レース を停止する 1 ト レース し てい る デー タ ベース接続に対す る DB プ ロ フ ァ イ ル設 定 ダ イ ア ロ グ ボ ッ ク ス を開 き ます。 詳 し い手順については、 223 ページの 「開発環境におけ る JDBC ド ラ イ バ マネージ ャ ト レース の起動」 を参照 し て く だ さ い。 2 [オプシ ョ ン] タ ブで、 [JDBC コ ールを ト レース] チ ェ ッ ク ボ ッ ク ス のチ ェ ッ ク をはず し ます。 [ ト レ ー ス フ ァ イ ル] ボ ッ ク ス に ロ グ フ ァ イ ルのパ ス 名を指定 し た場合、 後で ト レース を再開す る 場合に備え て、 ト レース フ ァ イ ルの名前を残 し ておけ ます。 3 DB プ ロ フ ァ イ ル設定 - JDBC ダ イ ア ロ グ ボ ッ ク ス の [OK] ボ タ ン を ク リ ッ ク し ます。 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、 編集 し たプ ロ フ ァ イ ル名がハ イ ラ イ ト 表示 さ れ ます。 4 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス の [接続] ボ タ ン を ク リ ッ ク す る か、 DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス 内で、 接続す る デー タ ベース を右 ク リ ッ ク し 、 ド ロ ッ プダ ウ ン メ ニ ュ ーか ら [再 接続] を選択 し ます。 PowerBuilder はデー タ ベース に接続 し 、接続の ト レース を停止 し ま す。 PowerBuilder アプリ ケーショ ン における JDBC ド ラ イ バ マネージャ ト レ ースの停止 PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト の中で、 JDBC ド ラ イ バ マ ネージ ャ ト レ ー ス を 停止す る には、 TraceFile パ ラ メ ー タ を 削除 し ま す。 以下の方法で指定 し ます。 • デー タ ベース と の接続 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ の値を編集 する 227 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 • 外部テ キ ス ト フ ァ イ ルか ら DBParm プ ロ パテ ィ に設定す る 値を読 み込む PowerBuilder ス ク リ プ ト の中で、 TraceFile 値を変更す る には、 ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ を編集す る 方法があ り ます。 DBParm プ ロパテ ィ 値の編集 ❖ DBParm プ ロパテ ィ を編集 し て JDBC ド ラ イバ マネージ ャ ト レース を停止 する • アプ リ ケーシ ョ ン ス ク リ プ ト の中で、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBParm プ ロ パテ ィ を編集 し て、 TraceFile パ ラ メ ー タ を削 除 し ます。 たと えば、以下のス テート メ ン ト は、ア プリ ケ ーショ ン の中で JDBC ド ラ イ バ マネージャ ト レ ース を 起動し 、出力を MYTRACE.LOG と い う 名前の フ ァ イ ルに書 き 込む こ と を 指定 し ま す。 ( こ の構文で は、 デフ ォ ル ト ト ラ ンザ ク シ ョ ン オブジ ェ ク ト SQLCA を使用 し ますが、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト を定義す る こ と も で き ます)。 SQLCA.DBParm = "Driver='com.sybase.jdbc.SybDriver', URL='jdbc:sybase:Tds:199.93.178.151:5007/tsdata', TraceFile='c:\MYTRACE.LOG'" こ の ス テー ト メ ン ト を編集 し て JDBC ド ラ イ バ マネージ ャ ト レー ス の終了を指定す る と 、 以下の よ う にな り ます。 SQLCA.DBParm = "Driver='com.sybase.jdbc.SybDriver', URL='jdbc:sybase:Tds:199.93.178.151:5007/tsdata'" DBParm 値の読み込 み PowerBuilder アプ リ ケーシ ョ ン の ス ク リ プ ト で DBParm プ ロ パテ ィ を 編集す る には、PowerScript ProfileString 関数を使用 し て、アプ リ ケーシ ョ ン 固有の初期設定 フ ァ イ ルな ど の外部テ キ ス ト フ ァ イ ルの特定のセ ク シ ョ ン か ら DBParm 値を読み込む、 ま たは RegistryGet を使用 し て レ ジ ス ト リ キーか ら 値を取得す る 方法 も あ り ます。 こ の場合、 前述の例に示す よ う に、 DBParm 値は初期設定 フ ァ イ ルや レ ジ ス ト リ キーか ら 読み込まれ ません。DBParm 値を有効にす る には、 接続の解除を し た後、 再接続す る 必要があ り ます。 JDBC ド ラ イバ マネージ ャ ト レース ログの表示 PowerBuilder セ ッ シ ョ ン 中で あ れば、 JDBC ド ラ イ バ マ ネージ ャ ト レース ロ グ フ ァ イ ルの内容はいつで も 表示で き ます。 228 PowerBuilder 第 13 章 デー タ ベース接続に関する ト ラ ブルシ ュ ーテ ィ ング JDBC.LOG の保存場所 デフ ォ ル ト の JDBC.LOG フ ァ イ ルの保存場所については、 222 ページ の 「JDBC ド ラ イ バ マネージ ャ ト レース」 を参照 し て く だ さ い。 ❖ ログ フ ァ イルの内容を表示する • 以下のいずれかの方法で、 JDBC.LOG フ ァ イ ル、 ま たは指定 し た ロ グ フ ァ イ ルを開 き ます。 • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ いては、 『ユーザーズ ガ イ ド 』 マニ ュ アルを参照) • PowerBuilder の外部の環境で、任意のテ キ ス ト エデ ィ タ を使用 する ログ フ ァ イルを開いたま まにする PowerBuilder を使用 し てい る 間、 ロ グ フ ァ イ ルを開いた ま ま に し てお く と 、JDBC ド ラ イ バ マネージ ャ ト レース ツールは ロ グ を更新 し ませ ん。 デー タ ベース と の接続 229 JDBC ド ラ イバ マネージ ャ ト レース ツールの使い方 230 PowerBuilder 第 5 部 ト ラ ンザク シ ョ ン サーバで の作業 第 5 部では、 ト ラ ンザ ク シ ョ ン コ ン ポーネ ン ト のために デー タ ベース接続を確立する方法について説明 し ます。 第 1 4 章 PowerBuilder コ ン ポーネ ン ト 内で のデー タ ベース接続の確立 こ の章では、 ト ラ ンザ ク シ ョ ン サーバへの配布用の PowerBuilder コ ン ポーネ ン ト を開発 し てい る 場合に確立可能なデー タ ベー ス 接 続について解説 し ます。 ま た、 EAServer への接続手順を簡素化す る プ ロ フ ァ イ ルの作成方法について説明 し ます。 項目 EAServer への コ ン ポーネ ン ト の配布 COM+ への COM コ ン ポーネ ン ト の配布 PowerBuilder コ ン ポーネ ン ト に対する DBParm のサポー ト ページ 233 237 238 EAServer への コ ンポーネ ン ト の配布 ビ ジネ ス ロ ジ ッ ク を含む PowerBuilder カ ス タ ム ク ラ ス ユーザ オ ブジ ェ ク ト を開発 し てい る 場合で、 それが ト ラ ンザ ク シ ョ ン サー バに配布す る オブジ ェ ク ト で あ る と き は、 デー タ ベー ス の接続に 関す る 問題に注意す る 必要があ り ます。 PowerBuilder で作成 し た ア プ リ ケーシ ョ ン ま たは コ ン ポーネ ン ト と と も に配布す る 必要のあ る フ ァ イ ルについての詳細は、『アプ リ ケーシ ョ ン テ ク ニ ッ ク 』 マニ ュ アルのアプ リ ケーシ ョ ン の配布に 関す る 章を参照 し て く だ さ い。 開発中の コ ン ポーネ ン ト で EAServer の接続プール機能お よ び ト ラ ンザ ク シ ョ ン管理機能を利用 し たい場合は、 EAServer の使用す る ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ でサポー ト さ れ る いずれかの デ ー タ ベ ー ス イ ン タ フ ェ ー ス を 使 用 し な け れ ば な り ま せ ん。 EAServer は、OTS/XA ト ラ ンザク ショ ンに対し て Microsoft Distributed Transaction Coordinator (DTC) お よ び Java Transaction Service (JTS) をサポー ト し てい ます。 デフ ォ ル ト の コ ーデ ィ ネー タ は JTS コ ーデ ィ ネー タ です。 デー タ ベース と の接続 233 EAServer への コ ンポーネ ン ト の配布 ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ の設定 ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ を設定す る には、 EAServer Manager で サーバのプ ロ パテ ィ ダ イ ア ロ グボ ッ ク ス の [ ト ラ ンザ ク シ ョ ン] タ ブ を使用 し ます。 共有接続を使用する場合にサポー ト さ れるデー タ ベース接続 EAServer には、 擬似 コ ーデ ィ ネー タ であ る 共有接続が組み込ま れてい ます。こ のモデルでは、 ト ラ ンザ ク シ ョ ン に参加す る すべての コ ン ポー ネ ン ト が単一の接続を共有 し ます。 こ のモデルを使用す る には、 すべ ての ア プ リ ケーシ ョ ン デー タ が単一のデー タ サーバ上に存在す る 必 要が あ り ま す。 さ ら に、 ト ラ ン ザ ク シ ョ ン に参加す る すべ て の コ ン ポーネ ン ト において接続のユーザ名、 パ ス ワ ー ド が同 じ で あ り 、 その 接続で同 じ サーバ名ま たは CacheName DBParm で定義 さ れてい る の と 同 じ EAServer 接続キ ャ ッ シ ュ 名を使用 し てい る こ と が必要です。 こ の モデルでサポー ト さ れ る デー タ ベー ス接続用の イ ン タ フ ェ ー ス は次の と お り です。 234 • ODBC デー タ ベース イ ン タ フ ェ ース。 ODBC ド ラ イ バに よ り さ ま ざ ま なデー タ ベース に対す る 接続を可能に し ます。PowerBuilder に 付属す る も の と 同 じ ODBC ド ラ イ バが EAServer で も サポー ト さ れ ます。 • Sybase SYJ データ ベース イ ン タ フ ェ ース 。Adaptive Server Enterprise 11.5 以 降 に 対 す る 接 続 を 提 供 し ま す。 (Open Client と Adaptive Server の一部のバージ ョ ンは、現在 Windows NT で OTS/XA ト ラ ン ザ ク シ ョ ン をサポー ト し ません。) • JDB デー タ ベース イ ン タ フ ェース。 Sun の Java 仮想マシ ン を通 じ て、 Sybase jConnect な ど の JDBC ド ラ イ バへの接続を可能に し ま す。 • Oracle O84、 O90、 お よ び O10 デー タ ベース イ ン タ フ ェ ース。 Oracle8i、 Oracle9i、 お よ び Oracle 10g デー タ ベースへの接続を可能 に し ます。 PowerBuilder 第 14 章 PowerBuilder コ ンポーネ ン ト 内でのデー タ ベース接続の確立 Microsoft DTC を使用する場合にサポー ト さ れるデー タ ベース接続 Microsoft Distributed Transaction Coordinator (DTC) は、 2 相 コ ミ ッ ト を 使用 し て、 複数のデー タ ベー ス 間で ト ラ ン ザ ク シ ョ ン を調整 し ま す。 こ の ト ラ ン ザ ク シ ョ ン コ ーデ ィ ネー タ でサポー ト さ れ る デー タ ベー ス接続用の イ ン タ フ ェース は次の と お り です。 • ODBC デー タ ベース イ ン タ フ ェース。 Microsoft SQL Server 6.5 以 降お よ び Microsoft ODBC driver for Oracle の ODBC ド ラ イ バのみサ ポー ト し ます。 • JDB デー タ ベース イ ン タ フ ェ ース。 Sun の Java 仮想マシ ン を通 じ て、JDBC-ODBC ブ リ ッ ジ と し て機能す る JDBC ド ラ イ バへの接続 を可能に し ます。 OTS/XA を使用する場合にサポー ト さ れるデー タ ベース接続 こ のオプシ ョ ン では、 EAServer に組み込まれてい る Transarc Encina ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ を使用 し ます。 Encina ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ は、 2 相 コ ミ ッ ト を使用 し て、 複数のデー タ ベース 間で ト ラ ンザ ク シ ョ ン を調整 し ます。 こ の ト ラ ンザ ク シ ョ ン コ ーデ ィ ネー タ でサポー ト さ れ る デー タ ベー ス接続用の イ ン タ フ ェ ー ス は次の と お り です。 デー タ ベース と の接続 • SYJ デー タ ベース イ ン タ フ ェ ース。 Adaptive Server Enterprise 11.5 以降への接続を提供 し ます。 • JDB デー タ ベース イ ン タ フ ェース。 Sun の Java 仮想マシ ン (JRE 1.2 以降) を 通 じ て、 Java Transaction API (JTA) を サ ポー ト す る JDBC ド ラ イ バ (Sybase jConnect 5.2 な ど) への接続を可能に し ま す。 • O84、 O90、 お よ び O10 デー タ ベース イ ン タ フ ェ ース。 Oracle8i、 Oracle 9i お よ び Oracle 10g デー タ ベースへの接続を可能に し ます。 235 EAServer への コ ンポーネ ン ト の配布 SYJ デー タ ベース イ ン タ フ ェ ースの使い方 EAServer は、 PowerBuilder の Sybase Open Client CT-Library (CT-Lib) ソ フ ト ウ ェ ア と は若干異な る バージ ョ ン を使用 し ます。 し たが っ て、 実 行 時 に は ASE や SYC で は な く SYJ を 使 用 し て Adaptive Server Enterprise デー タ ベー ス に接続す る 必要が あ り ま す。 SYJ の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス を使 う と 、 適切な接続パ ラ メ ー タ を 設定 し 、 構文を [プ レ ビ ュ ー] タ ブか ら ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の ス ク リ プ ト に簡単に コ ピーで き ます。 ただ し 、 SYJ イ ン タ フ ェ ー ス を使用 し て、 PowerBuilder 開発環境か ら デー タ ベース に接続す る こ と はで き ません。 そのため、 開発段階、 つ ま り コ ン ポーネ ン ト が EAServer に配布 さ れ る 前の段階では、ASE ま た は SYC イ ン タ フ ェ ー ス を 使用 し てデー タ ベー ス に接続す る 必要が あ り ます。 SYJ デー タ ベース イ ン タ フ ェ ース でサポー ト さ れ る のは、 実行時に関 連す る DBParm だけで あ る こ と に注意 し て く だ さ い。 PowerBuilder で デー タ ベー ス 接続 を 確立す る 前に設定す る 必要の あ る DBParm パ ラ メ ー タ はサポー ト さ れ ません。 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス に表示 さ れ る 以下の DBParms は、 SYJ ではサポー ト さ れません。 236 • 文字セ ッ ト 、 言語、 ロ ケールを含めて、 [地域の設定] タ ブ上のす べての DBParm • [デ ィ レ ク ト リ サービ ス] タ ブ上のすべてのデ ィ レ ク ト リ サービ ス DBParm • [セキ ュ リ テ ィ ] タ ブ上のすべてのセキ ュ リ テ ィ サービ ス DBParm • アプ リ ケーシ ョ ン名、 ワ ー ク ス テーシ ョ ン名、 Client Library の最 大接続数、 パケ ッ ト サ イ ズ、 パ ス ワ ー ド の暗号化を含めて、 [ネ ッ ト ワ ー ク ] タ ブ上のすべての DBParm • [接続] タ ブ上の リ リ ース DBParm • [シ ス テ ム] タ ブ上のテーブルの抽出条件 DBParm • [ ト ラ ンザ ク シ ョ ン] タ ブ上の非同期操作 DBParm であ る 非同期 と 処理待ち時間 PowerBuilder 第 14 章 PowerBuilder コ ンポーネ ン ト 内でのデー タ ベース接続の確立 JDB デー タ ベース イ ン タ フ ェ ースの使い方 JDB イ ン タ フ ェ ース を 使用し て開発し たコ ン ポーネン ト を EAServer に 配布する と き 、 EAServer の使用する JVM のバージョ ン と PowerBuilder の使用す る バージ ョ ン が PowerBuilder に よ っ て照合 さ れ ます。 両者の バージ ョ ンが一致 し ない場合、EAServer ロ グ フ ァ イ ルに警告が出力 さ れます。 PowerBuilder は、 EAServer で ロ ー ド さ れてい る バージ ョ ン を 使用 し ます。EAServer ロ グ フ ァ イ ルには コ ン ポーネ ン ト の実行に関す る エ ラ ーが記録 さ れ ます。 ロ グ フ ァ イ ルの内容は、 EAServer Manager File Viewer を使用 し て表示で き ます。 自動 コ ミ ッ ト モー ド の指定 ODBC、 SYJ、 お よ び JDB を サポー ト す る DBMS と デー タ ベース の イ ン タ フ ェ ー ス では、 PowerBuilder が SQL 文 を ト ラ ン ザ ク シ ョ ン の ス コ ープの外側で発行す る か、 あ る いは内側で発行す る かが自動 コ ミ ッ ト (AutoCommit) に よ っ て 制御 さ れ ま す。 AutoCommit を False (デ フ ォ ル ト ) に設定 し た場合、PowerBuilder は ト ラ ンザ ク シ ョ ン の ス コ ー プの内側で SQL 文を発行 し ます。AutoCommit を True に設定 し た場合、 PowerBuilder は ト ラ ンザ ク シ ョ ンの ス コ ープの外側で SQL 文を発行 し ます。 AutoCommit を設定す る には、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [接続] タ ブにあ る [自動 コ ミ ッ ト モー ド ] チ ェ ッ ク ボ ッ ク ス を使用す る か、 あ る いは PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト 内で AutoCommit に値を設定 し ます。 し か し 、開発 し た コ ン ポーネ ン ト を EAServer ト ラ ンザ ク シ ョ ン に参加 さ せ る 場合には、 自動 コ ミ ッ ト の設定は無視 さ れ ます。 その代わ り に、 EAServer がその ト ラ ンザ ク シ ョ ン の一部 と し て コ ン ポーネ ン ト のデー タ ベース処理の実行方法を決定 し ます。 COM+ への COM コ ンポーネ ン ト の配布 開発中の COM コ ン ポーネ ン ト で COM+ の接続プール機能お よ び ト ラ ン ザ ク シ ョ ン管理機能を利用 し たい場合は、 デー タ ベー ス に接続す る た めに以下のデー タ ベー ス イ ン タ フ ェ ー ス の う ち のいずれか を 使用 し なければな り ません。 • デー タ ベース と の接続 ODBC デー タ ベース イ ン タ フ ェ ース。 ODBC ド ラ イ バに よ り さ ま ざ ま なデー タ ベース に対す る 接続を可能に し ます。 237 PowerBuilder コ ンポーネ ン ト に対する DBParm のサポー ト • Oracle O84、 O90、 お よ び O10 デー タ ベース イ ン タ フ ェース。 Oracle8i、 Oracle9i、 お よ び Oracle 10g デー タ ベースへの接続を可能 に し ます。 ODBC デー タ ベース イ ン タ フ ェ ースの使い方 接続プールのサ ポー ト のみが必要な場合は、 任意の ス レ ッ ド セー フ ODBC ド ラ イ バを使用で き ます。 ト ラ ンザ ク シ ョ ン のサポー ト も 必要 にな る 場合は、Microsoft ODBC driver for Oracle や Microsoft ODBC driver for SQL Server な ど、 Microsoft Distributed Transaction Coordinator (DTC) を サポー ト す る ド ラ イ バを使用す る 必要があ り ます。 Oracle デー タ ベース イ ン タ フ ェ ースの使い方 COM+ に配布 し た コ ン ポーネ ン ト がデー タ ベー ス ト ラ ン ザ ク シ ョ ン に参加で き る のは、 Oracle8i 以降のデー タ ベー ス サーバに接続す る 場 合で、 さ ら に Oracle Services for COM+ が イ ン ス ト ール、 構成 さ れてい る 場合に限 ら れ ます。 PowerBuilder コ ン ポーネン ト に対する DBParm のサポート ト ラ ンザク ショ ン サーバ コ ンポーネント と し て配布さ れる PowerBuilder カ ス タ ム ク ラ ス ユーザ オブジ ェ ク ト にのみ関連す る 接続オプシ ョ ン がい く つか存在 し ます。 こ れ ら の DBParm パ ラ メ ー タ を設定す る には、 適切なデー タ ベース イ ン タ フ ェース の DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グ ボ ッ ク ス の [EAServer] タ ブ ま たは [EAServer/COM+] タ ブ を使用 す る か、 ま たは PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト 内で値を指 定 し ます。 DBParm UseContextObject CacheName GetConnectionOption ProxyUserName ReleaseConnectionOption ODBCU_CONLIB 238 DBParm が関連する コ ンポーネ ン ト の配布先 EAServer ま たは COM+ EAServer のみ(OTS/XA を使用す る 場合は対象外) EAServer のみ EAServer のみ EAServer のみ EAServer のみ PowerBuilder 第 14 章 PowerBuilder コ ンポーネ ン ト 内でのデー タ ベース接続の確立 DBParm OraMTSConFlgs DBParm が関連する コ ンポーネ ン ト の配布先 COM+ のみ こ れ ら の DBParms の詳細については、オ ン ラ イ ン ヘルプ を参照 し て く だ さ い。 デー タ ベース と の接続 239 PowerBuilder コ ンポーネ ン ト に対する DBParm のサポー ト 240 PowerBuilder 第 6 部 付録 こ の付録では、 PBODB110 初期設定 フ ァ イルを変更する 方法について説明 し ます。 付録 A こ の付録について PBODB110 初期設定フ ァ イルへ の関数の追加 通常は、 PBODB110 初期設定フ ァ イ ルを変更す る 必要はあ り ませ ん。 し か し 、 使用す る バ ッ ク エ ン ド DBMS と の、 PowerBuilder の ODBC ま た は OLE DB イ ン タ フ ェ ー ス を 介 し た 接続に応 じ て、 PBODB110 初期設定フ ァ イ ルに関数を追加す る 場合があ り ます。 こ の付録では、 必要に応 じ て、 PBODB110 初期設定フ ァ イ ルに関 数を追加す る 方法について解説 し ます。 内容 項目 PBODB110 初期設定フ ァ イ ルについて PBODB110.INI への関数の追加 ページ 243 244 PBODB110 初期設定 フ ァ イルについて PBODB110 初期設定フ ァ イルの目的 ODBC イ ン タ フ ェ ー ス を 介 し て デ ー タ に ア ク セ ス す る と き 、 PowerBuilder では、 ODBC API 呼び出 し でサポー ト さ れていない、 バ ッ ク エ ン ド DBMS の拡張機能へのア ク セ ス を管理す る ために、 PBODB110 初期設定フ ァ イ ル (PBODB110.INI) が使用 さ れ ま す。 拡張機能には、特定の DBMS 固有の SQL 構文や関数呼び出 し な ど があ り ます。 PBODB110.INI の編集 通常、 PBODB110.INI を変更す る 必要はあ り ません。 こ の フ ァ イ ル をむやみに変更す る と PowerBuilder が正常に動作 し ない こ と があ り ま す。 テ ク ニ カ ル サ ポ ー ト セ ン タ か ら 指 示 さ れ な い 限 り 、 PBODB110.INI を変更 し ないで く だ さ い。 ただ し 、 使用 し てい る バ ッ ク エ ン ド DBMS 用に関数を追加す る 必 要があ る 場合は、 こ の PBODB110.INI を編集で き ます。 デー タ ベース と の接続 243 PBODB110.INI への関数の追加 PBODB110.INI を変更す る 場合は、 操作の前に必ず、 既存の フ ァ イ ル のバ ッ ク ア ッ プ コ ピーを作成 し て く だ さ い。 ま た、 ど の よ う な変更を 加え たかについて、記録を残す よ う に し て く だ さ い。PBODB110.INI を 変更 し た後で、 テ ク ニ カルサポー ト セ ン タ の技術サポー ト を受け る 場 合は、 PBODB110.INI を 変更 し た こ と を告げ、 その変更内容をお知 ら せ く だ さ い。 PBODB110.INI への関数の追加 PBODB110.INI には、 ODBC ド ラ イ バがサポー ト す る DBMS の関数が 記述 さ れ て い ま す。 バ ッ ク エ ン ド DBMS と と も に使用す る 関数 を PBODB110.INI に追加す る 必要が あ る 場合は、 以下のいずれかの操作 を行い ます。 • 既存のセ ク シ ョ ン PBODB110.INI に、 使用 し て い る バ ッ ク エ ン ド デー タ ベー ス 用の関数セ ク シ ョ ン が存在す る 場合は、 そ の セ ク シ ョ ン に関数を追加 し ます。 • 新 し いセ ク シ ョ ン PBODB110.INI に、 使用 し て い る バ ッ ク エ ン ド DBMS 用のセ ク シ ョ ン を新規に作成 し 、 その新規作成 し た関数セ ク シ ョ ンに関数を追加 し ます。 既存のセ ク シ ョ ンへの関数の追加 PBODB110.INI に、 使用 し てい る バ ッ ク エ ン ド DBMS 用のセ ク シ ョ ン がすでに存在す る 場合は、 以下の手順に従っ て新 し い関数を追加 し ま す。 ❖ PBODB110.INI の既存のセ ク シ ョ ンに関数を追加するには 1 2 244 以下の ど ち ら かの方法で、 PBODB110.INI を開 き ます。 • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ い て は、 『ユーザーズ ガ イ ド 』 マ ニ ュ ア ル を 参照 し て く だ さ い。) • PowerBuilder の外部の環境で、任意のテ キ ス ト エデ ィ タ を使用 する PBODB110.INI の DBMS ド ラ イ バ / DBMS の設定セ ク シ ョ ン内で バ ッ ク エ ン ド DBMS のエ ン ト リ を見つけ ます。 PowerBuilder 付録 A PBODB110 初期設定 フ ァ イルへの関数の追加 た と えば、 SQL Anywhere の PBODB110.INI のエ ン ト リ は以下の よ う にな り ます。 ;********************************************* ; 設定に関する詳細はこのファイルの後半にある[DBMS ; ドライバ /DBMS 設定]のコメントを参照してください。 ;********************************************* ... [SQL Anywhere] PBSyntax='WATCOM50_SYNTAX' PBDateTime='STANDARD_DATETIME' PBFunctions='ASA_FUNCTIONS' PBDefaultValues='autoincrement,current date, current time,current timestamp,timestamp, null,user' PBDefaultCreate='YES' PBDefaultAlter='YES' PBDefaultExpressions='YES' DelimitIdentifier='YES' PBDateTimeInvalidInSearch='NO' PBTimeInvalidInSearch='YES' PBQualifierIsOwner='NO' PBSpecialDataTypes='WATCOM_SPECIALDATATYPES' IdentifierQuoteChar='"' PBSystemOwner='sys,dbo' PBUseProcOwner='YES' SQLSrvrTSName='YES' SQLSrvrTSQuote='YES' SQLSrvrTSDelimit='YES' ForeignKeyDeleteRule='Disallow if Dependent Rows Exist (RESTRICT),Delete any Dependent Rows (CASCADE),Set Dependent Columns to NULL (SET NULL)' TableListType=’GLOBAL TEMPORARY’ 3 PBODB110.INI において、 使用 し てい る バ ッ ク エ ン ド DBMS の関 数情報が記述 さ れてい る セ ク シ ョ ン の名前を検索 し ます。 こ のセ ク シ ョ ン を検索す る には、 DBMS ド ラ イ バ / DBMS を設定 す る エ ン ト リ の中で、 以下の形式の行を調べます。 PBFunctions='section_name' た と えば、SQL Anywhere 用の DBMS ド ラ イ バ / DBMS の設定エ ン ト リ にあ る 以下の行に よ っ て、 関数セ ク シ ョ ンの名前が ASA_FUNCTIONS であ る こ と がわか り ます。 PBFunctions='ASA_FUNCTIONS' デー タ ベース と の接続 245 PBODB110.INI への関数の追加 4 PBODB110.INI において、 使用 し てい る バ ッ ク エ ン ド DBMS に対 す る 関数セ ク シ ョ ン を検索 し ます。 例 と し て、 SQL Anywhere 用の関数セ ク シ ョ ン を以下に示 し ます。 ;********************************************* ; 関数 ;********************************************* [ASA_FUNCTIONS] AggrFuncs=avg(x),avg(distinct x),count(x), count(distinct x),count(*),list(x), list(distinct x),max(x),max(distinct x), min(x),min(distinct x),sum(x),sum(distinct x) Functions=abs(x),acos(x),asin(x),atan(x), atan2(x,y),ceiling(x),cos(x),cot(x),degrees(x), exp(x),floor(x),log(x),log10(x), mod(dividend,divisor),pi(*),power(x,y), radians(x),rand(),rand(x), remainder(dividend,divisor),round(x,y), sign(x),sin(x),sqrt(x),tan(x), "truncate"(x,y),ascii(x),byte_length(x), byte_substr(x,y,z),char(x),char_length(x), charindex(x,y),difference(x,y)insertstr(x,y,z), lcase(x),left(x,y),length(x), locate(x,y,z), lower(x),ltrim(x),patindex('x',y),repeat(x,y), replicate(x,y),right(x,y),rtrim(x), similar(x,y),soundex(x),space(x),str(x,y,z), string(x,...),stuff(w,x,y,z),substr(x,y,z), trim(x),ucase(x),upper(x),date(x), dateformat(x,y),datename(x,y),day(x), dayname(x),days(x),dow(x),hour(x),hours(x), minute(x),minutes(x),minutes(x,y),month(x), monthname(x),months(x),months(x,y),now(*), quarter(x),second(x),seconds(x),seconds(x,y), today(*),weeks(x),weeks(x,y),year(x),years(x), years(x,y),ymd(x,y,z),dateadd(x,y,z), datediff(x,y,z),datename(x,y),datepart(x,y), getdate(),cast(x as y),convert(x,y,z), hextoint(x),inttohex(x), connection_property(x,...),datalength(x), db_id(x),db_name(x),db_property(x), next_connection(x),next_database(x), property(x),property_name(x), property_number(x),property_description(x), argn(x,y,...),coalesce(x,...), estimate(x,y,z),estimate_source(x,y,z), experience_estimate(x,y,z),ifnull(x,y,z), 246 PowerBuilder 付録 A PBODB110 初期設定 フ ァ イルへの関数の追加 index_estimate(x,y,z),isnull(x,...), number(*),plan(x),traceback(*) 5 新 し い関数を追加す る には、 以下に示す よ う に、 適切な関数 リ ス ト の最後に、 カ ン マに続けて関数名を入力 し ます。 集計関数は、 AggrFuncs リ ス ト の最後に追加 し ます。 • 集計関数 • ほかの関数 集計関数以外の関数は、 Functions リ ス ト の最後に 追加 し ます。 英字の大文字 と 小文字の区別 使用 し てい る バ ッ ク エ ン ド DBMS が、 英字の大文字 と 小文字を区 別す る 場合は、 関数名を追加す る と き に、 大文字 と 小文字を区別 し て正 し く 指定 し て く だ さ い。 以下の例では、 Functions リ ス ト の最後に、 SQL Anywhere 用の関数 を新 し く 追加 し てい ます。 ;********************************************* ; 関数 ;********************************************* [ASA_FUNCTIONS] AggrFuncs=avg(x),avg(distinct x),count(x), count(distinct x),count(*),list(x), list(distinct x),max(x),max(distinct x), min(x),min(distinct x),sum(x),sum(distinct x) Functions=abs(x),acos(x),asin(x),atan(x), atan2(x,y),ceiling(x),cos(x),cot(x),degrees(x), exp(x),floor(x),log(x),log10(x), mod(dividend,divisor),pi(*),power(x,y), radians(x),rand(),rand(x), ... number(*),plan(x),traceback(*),newfunction() 6 変更内容を PBODB110.INI に保存 し ます。 新 し いセ ク シ ョ ンへの関数の追加 使用 し てい る バ ッ ク エ ン ド DBMS 用のエ ン ト リ が、 PBODB110.INI に 存在 し な い場合は、 以下の手順に従 っ て必要な セ ク シ ョ ン を 作成 し 、 適切な関数を追加 し ます。 デー タ ベース と の接続 247 PBODB110.INI への関数の追加 は じ めに PBODB110.INI におけ る 、 バ ッ ク エ ン ド DBMS に対す る 設定の詳細に ついては、 PBODB110.INI の最後にあ る コ メ ン ト を参照 し て く だ さ い。 ❖ PBODB110.INI の既存のセ ク シ ョ ンに関数を追加するには 1 2 以下の ど ち ら かの方法で、 PBODB110.INI を開 き ます。 • PowerBuilder のテ キ ス ト エデ ィ タ を使用す る (詳 し い手順につ い て は、 『ユーザーズ ガ イ ド 』 マ ニ ュ ア ル を 参照 し て く だ さ い。) • PowerBuilder 以外の ツールで、任意のテ キ ス ト エデ ィ タ を使用 する PBODB110 初期設定フ ァ イ ルの DBMS ド ラ イ バ / DBMS の設定セ ク シ ョ ン を編集 し 、 使用 し てい る バ ッ ク エ ン ド DBMS 用のエ ン ト リ を追加 し ます。 名前の検索 使用 し てい る バ ッ ク エ ン ド DBMS 用に DBMS ド ラ イ バ / DBMS の 設定セ ク シ ョ ン で使用す る エ ン ト リ の識別子は、 PBODB110.INI で、 そのバ ッ ク エ ン ド DBMS に対 し て使用 し てい る 識別子 と 同 じ 識別子を使用 し て く だ さ い。 こ の と き 、 以下の操作を確実にす る 必要があ り ます。 • PBODB110.INI の最後にあ る コ メ ン ト の指示に従い ます。 • PBODB110.INI の DBMS ド ラ イ バ / DBMS の設定セ ク シ ョ ン に おけ る 、 既存のエ ン ト リ と 同 じ 構文を使用 し ます。 • PBFunctions に対 し てセ ク シ ョ ン名を記述 し ます。 以下は、 DB2/2 デー タ ベース のエ ン ト リ の該当部分を示す例です。 ;*********************************************** ;DBMS ドライバ /DBMS 設定 ;*********************************************** [DB2/2] ... PBFunctions='DB22_FUNCTIONS' ... 3 248 PBODB110.INI の関数セ ク シ ョ ン を編集 し 、使用 し てい る バ ッ ク エ ン ド DBMS 用のエ ン ト リ を追加 し ます。 PowerBuilder 付録 A PBODB110 初期設定 フ ァ イルへの関数の追加 こ の と き 、 以下の操作を確実にす る 必要があ り ます。 • PBODB110.INI の最後にあ る コ メ ン ト の指示に従い ます。 • PBODB110.INI の関数セ ク シ ョ ン におけ る 、 既存のエ ン ト リ と 同 じ 構文を使用 し ます。 • DBMS ド ラ イ バ / DBMS の設定エ ン ト リ の PBFunctions で指定 し たセ ク シ ョ ン名を、 関数セ ク シ ョ ンに対 し て指定 し ます。 以下に例を示 し ます。 ;*********************************************** ; 関数 ;*********************************************** [DB22_FUNCTIONS] AggrFuncs=avg(),count(),list(),max(),min(),sum() Functions=curdate(),curtime(),hour(), ... 4 以下に示す よ う に、 適切な関数 リ ス ト の最後に、 カ ン マに続け て 関数名を入力 し ます。 集計関数は、 AggrFuncs リ ス ト の最後に追加 し ます。 • 集計関数 • ほかの関数 集計関数以外の関数は、 Functions リ ス ト の最後に 追加 し ます。 英字の大文字 と 小文字の区別 使用 し てい る バ ッ ク エ ン ド DBMS が、 英字の大文字 と 小文字を区 別す る 場合は、 関数名を追加す る と き に、 大文字 と 小文字を区別 し て正 し く 指定 し て く だ さ い。 以下の例では、 Functions リ ス ト の最後に、 DB2/2 用の関数 substr() を新 し く 追加 し てい ます (太字で表示)。 ;*********************************************** ; 関数 ;*********************************************** [DB22_FUNCTIONS] AggrFuncs=avg(),count(),list(),max(),min(),sum() Functions=curdate(),curtime(),hour(), substr() 5 デー タ ベース と の接続 変更内容を PBODB110.INI に保存 し ます。 249 PBODB110.INI への関数の追加 250 PowerBuilder 索引 A D ADO.NET イ ン タ フ ェース identity カ ラ ム値の取得 68 コ ン ポーネ ン ト 61 接続パ ラ メ ー タ の指定 68 デー タ プ ロ バ イ ダの イ ン ス ト ール 66 デー タ リ ン ク の使用 68 ヘルプ情報の入手 59 ASE DBMS 識別子 81 AutoCommit デー タ ベース環境設定項目 PowerBuilder ス ク リ プ ト での設定 186 [プ レ ビ ュ ー] タ ブの表示 186 AutoCommit デー タ ベース環境設定、 デー タ ベー ス プ ロ フ ァ イ ルでの設定 181 AutoCommit ト ラ ンザ ク シ ョ ン オブジ ェ ク ト プ ロ パテ ィ 188 DataDirect ODBC ド ラ イ バ ヘルプの表示 25 DB 環境設定 [DB の接続を保持] 183 DB 環境設定 [SQL 構文の終止符] 183 DB 環境設定 [開始時にデー タ ベース に接続] 183 DB 環境設定 [拡張属性の使用] 170, 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス [全般] ページ、 値 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [DB の接続を 保持] チ ェ ッ ク ボ ッ ク ス 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [開始時に デー タ ベース に接続] チ ェ ッ ク ボ ッ ク ス 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [拡張属性の 使用] チ ェ ッ ク ボ ッ ク ス 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [全般] ペー ジ 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [読み取 り 専 用] チ ェ ッ ク ボ ッ ク ス 183 DB 環境設定 [読み取 り 専用] 170, 183 DB 環境設定 ダ イ ア ロ グボ ッ ク ス [SQL 構文の終止符] ボ ッ ク ス 143 説明 182 DB 環境設定 ダ イ ア ロ グボ ッ ク ス の [共有 DB プ ロ フ ァ イ ル] ボ ッ ク ス 183 DB 環境設定プ ロ パテ ィ シー ト [全般] プ ロ パテ ィ ページ、 値 161 [DB 環境設定] プ ロ パテ ィ シー ト の [共有 DB プ ロ フ ァ イ ル] ボ ッ ク ス 161 [DB 環境設定] プ ロ パテ ィ シー ト の [全般] プ ロ パテ ィ ページ 161 [DB 情報ダ イ ア ロ グの表示] チ ェ ッ ク ボ ッ ク ス 158 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス 共有プ ロ フ ァ イ ルの表示 162 説明 9, 155 C COM+ ( ト ラ ンザ ク シ ョ ナル コ ン ポーネ ン ト の ためのデー タ ベース接続) 237 ConnectOption DBParm 内の SQL_OPT_ TRACEFILE パ ラ メ ー タ PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト へ の追加 214 ConnectOption DBParm 内の SQL_OPT_TRACE パ ラ メ ータ PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト で の SQL_OPT_TRACE_OFF の変更 216 PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト へ の追加 214 ConnectString DBParm パ ラ メ ー タ DSN (デー タ ソ ース名) 値 29 ODBC 接続 29 説明 29 デー タ ベース と の接続 251 索引 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス DBParm 文字列の文字数制限 176 [JDBC コ ールを ト レース] チ ェ ッ ク ボ ッ ク ス 223 JDBC ド ラ イ バ マネージ ャ ト レース、 停止 227 [ODBC API 呼出の ト レース] チ ェ ッ ク ボ ッ ク ス 210 ODBC ド ラ イ バ マネージ ャ ト レース、 停止 216 [自動 コ ミ ッ ト モー ド ] チ ェ ッ ク ボ ッ ク ス 181 接続のための値の指定 11 説明 10 [ ト レース フ ァ イ ル] ボ ッ ク ス 223 [ ト レース の生成] チ ェ ッ ク ボ ッ ク ス 202 [プ レ ビ ュ ー] タ ブ 10, 158, 175, 176, 186, 199, 213, 225 プ ロ フ ァ イ ルの編集 159 分離レベル (Lock) 181 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [JDBC コ ールを ト レース] チ ェ ッ ク ボ ッ ク ス 223 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [ODBC API 呼出の ト レース] チ ェ ッ ク ボ ッ ク ス 210 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [ ト レー ス フ ァ イ ル] ボ ッ ク ス 223 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [ ト レー ス の生成] チ ェ ッ ク ボ ッ ク ス 202 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス の [ ト レー スす る JDBC 呼び出 し ] チ ェ ッ ク ボ ッ ク ス 223 [DB プ ロ フ ァ イ ル] ボ タ ン 155 DB ラ イ ブ ラ リ の解放 7 DBConfigSection デー タ ベース パ ラ メ ー タ 68 DBMS PBODB110 初期設定フ ァ イ ル内のエン ト リ 244, 248 シ ス テ ム テーブル、 表示 166 デー タ ベース プ ロ フ ァ イ ルの値 29 ト レース キーワ ー ド 、 PowerBuilder アプ リ ケー シ ョ ン ス ク リ プ ト か ら の削除 203 ト レース キーワ ー ド 、 PowerBuilder アプ リ ケー シ ョ ン ス ク リ プ ト への追加 200 ト レース キーワ ー ド 、 [プ レ ビ ュ ー] タ ブに表示 さ れ る 199 バ ッ ク エン ド 、 ODBC 関数の追加 244 DBMS 識別子 252 ASE 81 I10 105 IN9 105 O10 133 O84 133 O90 133 SNC 119 SYC 81 DBParm ト ラ ンザ ク シ ョ ン オブジ ェ ク ト プ ロ パ テ ィ 177 DBParm パ ラ メ ー タ ProfileString 関数を使用 し た読み込み 178 Sybase Open Client のセキ ュ リ テ ィ サービ ス 92 デー タ ベース プ ロ フ ァ イ ルの設定 10 [プ レ ビ ュ ー] タ ブの表示 10, 158 デー タ ベース パ ラ メ ー タ [プ レ ビ ュ ー] タ ブの表示 175 DBTRACE.LOG フ ァ イ ル コ メ ン ト の追加 204 削除ま たは消去 205 サンプル出力 205 書式 195 説明 192 内容 193 表示 204 開いた ま ま の 204 DECLARE PROCEDURE 文 142 DLL フ ァ イ ル JDBC 接続 42 ODBC 接続 19 ODBC.DLL 19 ODBC32.DLL 19 PBODB110.DLL 19 デー タ ベース イ ン タ フ ェース接続 76 DSN (デー タ ソ ース名) 値、 ODBC 接続文字列 29 E EAS Demo DB 19 PowerBuilder 索引 I I10 DBMS 識別子 105 identity カ ラ ム と デー タ 型 (Sybase Adaptive Server Enterprise) 82 identity カ ラ ム、 ADO.NET 68 IN9 DBMS 識別子 105 Informix ク ラ イ ア ン ト ソ フ ト ウ ェ ア 115, 105 Informix デー タ ベース イ ン タ フ ェース I10 でサポー ト し てい る 機能 108 イ ン ス ト ール 116 サポー ト し てい る デー タ 型 106 接続 コ ン ポーネ ン ト 113 接続の確認 116 デー タ ベース の準備 114 サポー ト し てい る デー タ ベース 105 必要な ク ラ イ ア ン ト ソ フ ト ウ ェ ア 115 Informix の DateTime デー タ 型 107 Informix の interval デー タ 型 108 Informix の Time デー タ 型 107 PBSYC.SQL ス ク リ プ ト ISQL で実行 101 ISQL、 ス ト ア ド プ ロ シージ ャ の イ ン ス ト ールに 使用 101 L J Java 仮想マシ ン、 イ ン ス ト ール 42 Java の Web サ イ ト 39 JDBC イ ン タ フ ェース Java 仮想マシ ン 42 Java ク ラ ス パ ッ ケージ 42 PBJDB110.DLL 44 コ ン ポーネ ン ト 41 サポー ト さ れてい る デー タ 型 44 使用 41 接続パ ラ メ ー タ の指定 46 説明 39 デー タ ベース サーバの設定 45 ド ラ イ バ 43 必須 DLL フ ァ イ ル 42 レ ジ ス ト リ エン ト リ 43 JDBC 接続、 ト ラ ブルシ ュ ーテ ィ ン グ デー タ ベース と の接続 JDBC デー タ ベース イ ン タ フ ェース、 ト ラ ブル シ ュ ーテ ィ ン グ 222 JDBC ド ラ イ バ マネージ ャ ト レース PowerBuilder ス ク リ プ ト での起動 224 PowerBuilder ス ク リ プ ト での停止 228 各種プ ラ ッ ト フ ォームでの利用可能性 222 説明 222 デー タ ベース プ ロ フ ァ イ ルでの停止 227 デー タ ベース プ ロ フ ァ イ ル内での起動 223 デフ ォ ル ト 以外の ロ グ フ ァ イ ルの指定 223 パフ ォーマ ン ス に関する 注意 222 [プ レ ビ ュ ー] タ ブに表示 さ れ る 構文 225 ロ グの表示 228 JDBC ド ラ イ バ、 ト ラ ブルシ ュ ーテ ィ ン グ 222 JDBC の Web サ イ ト 39 JDBC.LOG フ ァ イ ル 説明 222 デフ ォ ル ト 以外の ロ グ フ ァ イ ルを代わ り に使 用 223 パフ ォーマ ン ス に関する 注意 222 表示 228 開いた ま ま の 228 Lock 値 と 分離レベル、 デー タ ベース プ ロ フ ァ イ ル での設定 181 Lock デー タ ベース環境設定項目 PowerBuilder ス ク リ プ ト での設定 186 [プ レ ビ ュ ー] タ ブの表示 186 Lock デー タ ベース環境設定項目、 デー タ ベース プ ロ フ ァ イ ルでの設定 181 Lock ト ラ ンザ ク シ ョ ン オブジ ェ ク ト プ ロ パテ ィ 188 LOG フ ァ イ ル JDBC ド ラ イ バ マネージ ャ ト レース のデフ ォ ル ト 以外の設定 223 JDBC.LOG 222, 228 PBTRACE.LOG 192, 204 SQL.LOG 209, 217 222 253 索引 M Microsoft SQL Native Client デー タ ベース イ ン タ フ ェー ス イ ン ス ト ール 125 サポー ト し てい る デー タ 型 120 サポー ト し てい る バージ ョ ン 119 接続 コ ン ポーネ ン ト 122 接続の確認 125 定義 125 デー タ ベース の準備 123 必要な ク ラ イ ア ン ト ソ フ ト ウ ェ ア 124 Microsoft Universal Data Access Web サ イ ト 49, 59 Microsoft デー タ リ ン ク 、 ADO.NET イ ン タ フ ェース で 使用 68 Microsoft デー タ リ ン ク 、 OLE DB イ ン タ フ ェース で 使用 58 N NewLogic、 デー タ ベース プ ロ フ ァ イ ルの設定 13 O O10 DBMS 識別子 133 O10 Oracle 10g ド ラ イ バ 133 O84 DBMS 識別子 133 O84 Oracle 8.0.4 ド ラ イ バ 133 O90 DBMS 識別子 133 O90 Oracle 9i ド ラ イ バ 133 ODBC 25 ODBC イ ン タ フ ェース ODBC 初期設定フ ァ イ ル 28 ODBCINST 初期設定フ ァ イ ル 28 使用 19 説明 18 デー タ ソ ースへの接続 155 ト ラ ブルシ ュ ーテ ィ ン グ 192, 209 必須 DLL フ ァ イ ル 19 必要な初期設定フ ァ イ ル 27 ODBC イ ン タ フ ェース、PBODB110 初期設定フ ァ イ ル 243 ODBC 関数 254 PBODB110 初期設定フ ァ イ ル内の新 し いセ ク シ ョ ンへの追加 247 PBODB110 初期設定フ ァ イ ル内の既存のセ ク シ ョ ンへの追加 244 ODBC 初期設定フ ァ イ ル お よ び PBODB110 初期設定フ ァ イ ル 248 説明 28 ODBC 接続文字列 DSN (デー タ ソ ース名) 値 29 説明 29 ODBC デー タ ソ ース ODBC 初期設定フ ァ イ ル 28 ODBC 接続 19 ODBCINST 初期設定フ ァ イ ル 28 PBODB110 初期設定フ ァ イ ル 243 Sybase SQL Anywhere 32 ア ク セ ス 27 コ ン フ ィ グ レーシ ョ ン と デー タ ベース プ ロ フ ァ イ ルの作成 27 準備 26 定義 27 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの編集 159 ト ラ ブルシ ュ ーテ ィ ン グ 192, 209 ト ラ ン ス レー タ 、 ド ラ イ バに対する 選択 31 複数の定義 30 ODBC デー タ ソ ース の準備 Sybase SQL Anywhere 34 説明 26 ODBC デー タ ソ ース の定義 Sybase SQL Anywhere 35 コ ン フ ィ グ レーシ ョ ン と デー タ ベース プ ロ フ ァ イ ルの作成 27 説明 27 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの編集 159 複数のデー タ ソ ース 30 ODBC ド ラ イ バ API 合致レベル 24 ODBC 初期設定フ ァ イ ル 28 ODBC 接続 19 ODBCINST 初期設定フ ァ イ ル 28 PBODB110 初期設定フ ァ イ ル 243 PowerBuilder 索引 SQL 合致レベル 24 Sybase SQL Anywhere 32 合致レベル、 推奨 23 使用 19 説明 18 ト ラ ブルシ ュ ーテ ィ ン グ 192, 209 ト ラ ン ス レー タ 、 選択 31 複数層 22 ヘルプの表示 17, 25, 31 ODBC ド ラ イ バ マネージ ャ 19 ODBC ド ラ イ バ マネージ ャ ト レース PowerBuilder ス ク リ プ ト での起動 212 PowerBuilder ス ク リ プ ト での停止 216 サンプル出力 218 説明 209 デー タ ベース プ ロ フ ァ イ ルでの停止 216 デー タ ベース プ ロ フ ァ イ ル内での起動 210 パフ ォーマ ン ス に関す る 注意 210 [プ レ ビ ュ ー] タ ブに表示 さ れ る 構文 213 ロ グの表示 217 ODBC ド ラ イ バの合致レベル ODBC API 24 SQL 24 推奨 23 ODBC の API 合致レベル 24 ODBC の SQL 合致レベル 24 ODBC の拡張 SQL 合致レベル 24 ODBC の コ ア API 合致レベル 24 ODBC の最小 SQL 合致レベル 24 ODBC の レベル 1 API 合致レベル 24 ODBC.DLL フ ァ イ ル 19 ODBC32.DLL フ ァ イ ル 19 ODBCINST 初期設定フ ァ イ ル 28 OLE DB イ ン タ フ ェ ース 50 PBOLE110.DLL 54 コ ン ポーネ ン ト 53 サポー ト し てい る オブジ ェ ク ト イ ン タ フ ェー ス 50 接続パ ラ メ ー タ の指定 57 デー タ プ ロ バ イ ダ 50 デー タ プ ロ バ イ ダの イ ン ス ト ール 56, 57 デー タ プ ロ バ イ ダの入手、 ほかのベン ダ 54 デー タ リ ン ク の使用 58 デー タ ベース と の接続 ヘルプ情報の入手 49 Open Client ソ フ ト ウ ェ ア、 Sybase 55, 66, 87 Open Database Connectivity (ODBC) ODBC 初期設定フ ァ イ ル 28 ODBCINST 初期設定フ ァ イ ル 28 コ ン ポーネ ン ト 19 説明 18 デー タ ソ ース の定義 27 ド ラ イ バの合致レベル 23 ト ラ ン ス レー タ 、 ド ラ イ バに対する 選択 31 複数のデー タ ソ ース の定義 30 デー タ ソ ース の準備 26 Oracle SQL*Net ク ラ イ ア ン ト ソ フ ト ウ ェ ア 139 Oracle ス ト ア ド プ ロ シージ ャ (LOB 出力パ ラ メ ー タ の使用) 147 Oracle デー タ ベース イ ン タ フ ェース Oracle ス ト ア ド プ ロ シージ ャ の使用 142 サポー ト し てい る デー タ 型 134 サポー ト し てい る バージ ョ ン 133 接続コ ン ポーネ ン ト 138 接続の確認 140 接続文字列ま たは記述子、 指定 141 定義 141 デー タ ベース の準備 138 必要な ク ラ イ ア ン ト ソ フ ト ウ ェ ア 139 P pbcatcol テーブル 168 pbcatedt テーブル 168 pbcatfmt テーブル 168 pbcattbl テーブル 168 pbcatvld テーブル 168 PBIN9110.DLL フ ァ イ ル 113 PBJDB110.DLL 44 PBO10110.DLL フ ァ イ ル 133 PBO84110.DLL フ ァ イ ル 133 PBO90110.DLL フ ァ イ ル 133 PBODB110 初期設定フ ァ イ ル ODBC 初期設定フ ァ イ ル内での DBMS セ ク シ ョ ンの名前の検索 248 新 し いセ ク シ ョ ンへの関数の追加 247 英字の大文字 と 小文字の区別 247, 249 255 索引 既存のセ ク シ ョ ンへの関数の追加 244 説明 243 特殊な timestamp カ ラ ムのサポー ト 38 PBODB110.DLL フ ァ イ ル 19 PBOLE110.DLL フ ァ イ ル 54 PBSNC110.DLL フ ァ イ ル 122 PBSYC.SQL ス ク リ プ ト PBSYC2.SQL ス ク リ プ ト と の比較 101 WISQL で実行 102 実行す る タ イ ミ ン グ 98 説明 98 保存場所 98 PBSYC2.SQL ス ク リ プ ト ISQL で実行 101 PBSYC.SQL ス ク リ プ ト と の比較 101 WISQL で実行 102 実行す る タ イ ミ ン グ 100 説明 100 保存場所 98 PowerBuilder 初期設定フ ァ イ ル 共有時のデー タ ベース プ ロ フ ァ イ ルの場所の指定 160 PowerBuilder Desktop デー タ ベース イ ン タ フ ェ ース、 サポー ト し ていな い 75 PowerBuilder 初期設定フ ァ イ ル 共有デー タ ベース プ ロ フ ァ イ ルのデー タ ベース環 境設定項目の設定 161 共有デー タ ベース プ ロ フ ァ イ ルの ロ ーカルな保存 163 説明 159 パ ス ワー ド の表示の抑制 158 PowerScript 構文、 [プ レ ビ ュ ー] タ ブ 12 ProfileString 関数 ス ク リ プ ト での AutoCommit と Lock の設定 189 ス ク リ プ ト での DBParm パ ラ メ ー タ の設定 178 ス ク リ プ ト での JDBC ド ラ イ バ マネージ ャ ト レー ス の起動 226 ス ク リ プ ト での ODBC ド ラ イ バ マネージ ャ ト レー ス の起動 215 ス ク リ プ ト での ODBC ド ラ イ バ マネージ ャ ト レー ス の停止 217, 228 ス ク リ プ ト でのデー タ ベース ト レース の起動 256 201 ス ク リ プ ト でのデー タ ベース ト レース の停止 203 R RPCFUNC キーワ ー ド 142 S scope_identity、 ADO.NET で使用 68 SERVER デ ィ レ ク ト リ フ ァ イ ル Adaptive Server Enterprise デー タ ベース におけ る ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール 98 SNC DBMS 識別子 119 sp_pb110table ス ト ア ド プ ロ シージ ャ PBSYC.SQL ス ク リ プ ト 99 PBSYC2.SQL ス ク リ プ ト 101 SQL Anywhere ODBC 設定 ダ イ ア ロ グボ ッ ク ス 35 SQL Server ス ト ア ド プ ロ シージ ャ の PRINT 文 96 SQL 構文の終止符、 デー タ ベース ペ イ ン タ 内での 変更 143, 183 SQL フ ァ イ ル PBSYC.SQL 98 PBSYC2.SQL 100 SQL*Net ク ラ イ ア ン ト ソ フ ト ウ ェ ア、 Oracle 139 SQL.LOG フ ァ イ ル サンプル出力 218 説明 209 パフ ォーマ ン ス に関す る 注意 210 表示 217 開いた ま ま の 217 SQLCA ト ラ ンザ ク シ ョ ン オブジ ェ ク ト AutoCommit プ ロ パテ ィ の設定 188 ConnectOption DBParm の設定 214 DBMS プ ロ パテ ィ の ト レース キーワー ド 200, 203 DBParm プ ロ パテ ィ の設定 177 Lock プ ロ パテ ィ の設定 188 TraceFile DBParm の設定 226 Sybase SQL Anywhere PowerBuilder 索引 PBODB110 初期設定フ ァ イ ルへの関数の追加 244 Sybase Adaptive Server Anywhere、 Sybase SQL Anywhere を参照 Sybase Adaptive Server Enterprise 対応の CT-Library ク ラ イ ア ン ト ソ フ ト ウ ェ ア 87 Sybase Adaptive Server Enterprise デー タ ベース イ ン タ フ ェ ース EAServer の SYJ デー タ ベース イ ン タ フ ェ ース を使用 82 IDENTITY カ ラ ム 82 異種デー タ ベース間の結合に基づ く デー タ ウ ィ ン ド ウ の作成 97 イ ン ス ト ール 88 サポー ト し てい る デー タ 型 82 サポー ト し てい る バージ ョ ン 81, 82 サポー ト し てい る プ ラ ッ ト フ ォーム 81, 82 ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール 97 セキ ュ リ テ ィ サービ ス、 使用 90 接続の確認 88 定義 89 デ ィ レ ク ト リ サービ ス、 使用 93 デー タ ベース の準備 55, 66, 86 必要な ク ラ イ ア ン ト ソ フ ト ウ ェ ア 55, 66, 87 Sybase Adaptive Server Enterprise 用 CT-Library ク ラ イ ア ン ト ソ フ ト ウ ェ ア 81 Sybase SQL Anywhere LOG フ ァ イ ル 35 Sybase EAServer ( ト ラ ンザ ク シ ョ ナル コ ン ポー ネ ン ト のためのデー タ ベース接続) 233 Sybase Open Client ソ フ ト ウ ェ ア 55, 66 説明 87 Sybase Open Client デ ィ レ ク ト リ サービ ス に対す る DIT ベース 94 Sybase Open Client のセキ ュ リ テ ィ サービ ス DBParm パ ラ メ ー タ 、 パケ ッ ト 単位のセキ ュ リ テ ィ 92 DBParm パ ラ メ ー タ 、 ロ グ イ ン認証 92 使用条件 90 説明 90 Sybase Open Client のデ ィ レ ク ト リ サービ ス DBParm パ ラ メ ー タ 96 サーバ名の指定 94 デー タ ベース と の接続 使用条件 93 説明 93 Sybase SQL Anywhere 開始オプシ ョ ン、 指定 36 コ ン フ ィ グ レーシ ョ ン と デー タ ベース プ ロ フ ァ イ ルの作成 27 サポー ト し てい る バージ ョ ン 33 サポー ト し てい る プ ラ ッ ト フ ォーム 33 使用 19 使用する ための準備 34 接続コ ン ポーネ ン ト 33 デー タ ソ ース の定義 35 特殊な timestamp カ ラ ム 37 ネ ッ ト ワ ー ク サーバ、 含ま ない 32 リ モー ト デー タ ベースへのア ク セ ス 32 Sybase SQL Anywhere Transact-SQL の特殊な timestamp 37 Sybase System 対応の CT-Library ク ラ イ ア ン ト ソ フ ト ウ ェ ア 55, 66 Sybase、 ヘルプ情報の入手 25 sybsystemprocs デー タ ベース、 Sybase Adaptive Server Enterprise 101, 103 SYC DBMS 識別子 81 T timestamp、 Transact-SQL の特殊な 37 U Unicode Adaptive Server 83 ADO.NET 60 ODBC 18, 43 OLE DB 53 Oracle8i 135 Oracle9i、 Oracle 10g 135 サポー ト 18, 43 デー タ ベース パ ス ワー ド の暗号化 13 UNIX、 Adaptive Server の SYJ デー タ ベース イ ン タ フ ェ ース の使い方 82 257 索引 W か WISQL、 ス ト ア ド プ ロ シージ ャ の イ ン ス ト ール 102 拡張属性シ ス テ ム テーブル DB 環境設定 [拡張属性の使用] に よ る 作成の 制御 170 DB 環境設定 [読み と り 専用] に よ る 更新の制 御 170 ア ク セ ス権の制御 171 正確な作成の保証 165 説明 165 内容 168 表示 166 拡張属性シ ス テ ム テーブルに対す る ア ク セ ス権の 指定 171 カラム identity、 Sybase Adaptive Server Enterprise 82 SQL 命名規約 26 拡張属性シ ス テ ム テーブル内の 168 特殊な timestamp、 Sybase SQL Anywhere 37 関数、 ODBC PBODB110 初期設定フ ァ イ ル内の新 し いセ ク シ ョ ンへの追加 247 PBODB110 初期設定フ ァ イ ル内の既存のセ ク シ ョ ンへの追加 244 あ ア ク セ ス権、 シ ス テ ム テーブルに対す る 指定 171 アプ リ ケーシ ョ ン AutoCommit と Lock の設定 189 DBParm パ ラ メ ー タ の設定 176, 178 JDBC 接続の ト レース 224 ODBC 接続 19 ODBC 接続の ト レース 212 デー タ ベース イ ン タ フ ェ ース接続 76 デー タ ベース環境設定項目の設定 186 デー タ ベースへの接続 186 任意のデー タ ベースへの接続の ト レース 199 [プ レ ビ ュ ー] タ ブ を使用 し て ト レース オプシ ョ ン を設定す る 方法 199, 213, 225 [プ レ ビ ュ ー] タ ブを使用 し た接続オプシ ョ ンの設 定 10, 158, 175, 176, 186 い 異種デー タ ベース間の結合 印刷上の表記規則 x イ ン ス ト ール Java 仮想マシ ン 42 き 97 え 英字の大文字 と 小文字の区別、 PBODB110 初期設定 フ ァ イ ル内の 247, 249 お 大 き なデー タ 型 (SQL Server) 258 121 起動 PowerBuilder アプ リ ケーシ ョ ン での JDBC ド ラ イ バ マネージ ャ ト レース 224 PowerBuilder アプ リ ケーシ ョ ン での ODBC ド ラ イ バ マネージ ャ ト レース 212 PowerBuilder アプ リ ケーシ ョ ンにおけ る デー タ ベース ト レース 198 開発環境におけ る JDBC ド ラ イ バ マネージ ャ ト レース 223 基本手順 DBParm パ ラ メ ー タ の設定 175 JDBC ド ラ イ バ マネージ ャ ト レース の起動 224 JDBC ド ラ イ バ マネージ ャ ト レース の停止 227 PowerBuilder 索引 ODBC デー タ ソ ース の準備 26 ODBC ド ラ イ バ マネージ ャ ト レース の起動 212 ODBC ド ラ イ バ マネージ ャ ト レース の停止 215 接続手順 3 デー タ ベース イ ン タ フ ェース で使用す る ため のデー タ ベース の準備 78 デー タ ベース イ ン タ フ ェース の定義 79 デー タ ベース ト レース の停止 202 デー タ ベース パ ラ メ ー タ の設定 173 デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト お よ びエ ク ス ポー ト 164 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの選択に よ る 接続 155 デー タ ベース プ ロ フ ァ イ ルの編集 159 デー タ ベース環境設定項目の設定 173, 179 共有デー タ ベース プ ロ フ ァ イ ル DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス での選 択 162 管理 163 共有デー タ ベース プ ロ フ ァ イ ルのデー タ ベー ス環境設定項目の設定 161 設定 160 ロ ーカルな初期設定フ ァ イ ルへの保存 163 共有デー タ ベース プ ロ フ ァ イ ルの管理 163 共有デー タ ベース プ ロ フ ァ イ ルのデー タ ベース 環境設定項目 183 け 結果集合、 Oracle ス ト ア ド プ ロ シージ ャ の使用 143 さ サーバ名、 Sybase Open Client デ ィ レ ク ト リ サービ ス に対する 指定 94 し シ ス テ ム テーブル チ ェ ッ ク ボ ッ ク ス の表示 166 シ ス テ ム テーブル、 表示 166 [自動コ ミ ッ ト モー ド ] チ ェ ッ ク ボ ッ ク ス、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス 181 初期設定フ ァ イ ル DBMS 値の読み込み 201, 203 DBMS_PROFILES セ ク シ ョ ン 163 DBParm 値の読み込み 178, 215, 217, 226, 228 ODBC 28 ODBC 接続 27 ODBCINST 28 PBODB110、 関数の追加 243 共有時のデー タ ベース プ ロ フ ァ イ ルの場所の 指定 160 接続パ ラ メ ー タ の格納 157 接続パ ラ メ ー タ の保存 13 パス ワ ー ド の表示の抑制 158 初期設定フ ァ イ ル内のデー タ ベース セ ク シ ョ ン 157 く ク ラ イ アン ト ソ フ ト ウ ェア Informix 115 Microsoft SQL Server 124 Oracle 139 Sybase Adaptive Server Enterprise Informix 105 デー タ ベース と の接続 す 87 ス ク リ プ ト 、 PowerBuilder DBParm 値の設定 176 JDBC ド ラ イ バ マネージ ャ ト レース の起動 224 ODBC ド ラ イ バ マネージ ャ ト レース の起動 212 ProfileString 関数を使用 し た読み込み 178, 189 デー タ 型変換 85 259 索引 デー タ ベース ト レース の起動 198 デー タ ベース環境設定項目の設定 186 [プ レ ビ ュ ー] タ ブ を使用 し て ト レース オプシ ョ ン を設定す る 方法 199, 213, 225 [プ レ ビ ュ ー] タ ブを使用 し た接続オプシ ョ ンの設 定 10, 158, 175, 176, 186 ス ト ア ド プ ロ シージ ャ Adaptive Server Enterprise デー タ ベースへの イ ン ス ト ール 97 ISQL、 イ ン ス ト ールに使用 101 Microsoft SQL Server デー タ ベース イ ン タ フ ェース に必要な し 97 PBSYC.SQL ス ク リ プ ト に よ る 作成 99 PBSYC2.SQL ス ク リ プ ト に よ る 作成 101 WISQL、 イ ン ス ト ールに使用 102 ス ク リ プ ト の実行 101 ス ク リ プ ト の保存場所 98 説明 98 ス ト ア ド プ ロ シージ ャ 、 Oracle SQL 終止符の変更 143, 183 結果集合、 使用 143 結果集合、 例 144 説明 142 デー タ ウ ィ ン ド ウ オブジ ェ ク ト と レ ポー ト の作成 146 ス ト ア ド プ ロ シージ ャ 、 SQL Server、 PRINT 文の使い 方 96 せ セキ ュ リ テ ィ サービ ス、 Sybase Open Client、 Sybase Open Client セキ ュ リ テ ィ サービ ス を参照 接続記述子、 Oracle 構文 と 例 141 説明 141 接続文字列、 ODBC DSN (デー タ ソ ース名) 値 29 説明 29 接続文字列、 Oracle 141 セ ミ コ ロ ン、 デフ ォ ル ト の SQL 終止符 143 260 て 停止 ODBC ド ラ イ バ マネージ ャ ト レース 215 PowerBuilder アプ リ ケーシ ョ ン での JDBC ド ラ イ バ マネージ ャ ト レース 228 PowerBuilder アプ リ ケーシ ョ ン での ODBC ド ラ イ バ マネージ ャ ト レース 216 PowerBuilder アプ リ ケーシ ョ ンにおけ る デー タ ベース ト レース 203 開発環境におけ る JDBC ド ラ イ バ マネージ ャ ト レース 227 開発環境におけ る ODBC ド ラ イ バ マネージ ャ ト レース 216 デ ィ レ ク ト リ サービ ス、 Sybase Open Client、 Sybase Open Client デ ィ レ ク ト リ サービ ス を 参照 デー タ プ ロ バ イ ダ、 OLE DB イ ン タ フ ェース 50 デー タ プ ロ バ イ ダ、 入手 54 デー タ 型 Adaptive Server 82 Informix 106 Microsoft SQL Server 120 Oracle 134 PowerBuilder ス ク リ プ ト での型変換 85 SQL Server 120 Sybase Adaptive Server Enterprise 82 特殊な timestamp、 Transact-SQL 37 デー タ ベース ア ク セ ス 27 起動時ま たはペ イ ン タ か ら の接続 154 基本的な接続手順 3 接続 タ イ ミ ン グ 3 デー タ ベース イ ン タ フ ェース接続 76 デー タ ベース プ ロ フ ァ イ ルに よ る 接続 154, 155 初めての ロ グ イ ン 165 デー タ ベース イ ン タ フ ェース Informix 105 JDBC 40 Microsoft SQL Server 119 Oracle 133 PowerBuilder Desktop でサポー ト さ れていない 75 PowerBuilder 索引 Sybase Adaptive Server Enterprise 81 接続 コ ン ポーネ ン ト 76 説明 76 定義 79 デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト お よ びエ ク ス ポー ト 164 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの作成 8, 27 デー タ ベース プ ロ フ ァ イ ルの編集 159 デー タ ベース の準備 78 デー タ ベースへの接続 155 ト ラ ブルシ ュ ーテ ィ ン グ 192 デー タ ベース イ ン タ フ ェース で使用す る ための デー タ ベース の準備 INFORMIX 114 Microsoft SQL Server 123 Oracle 138 Sybase Adaptive Server Enterprise 86 説明 78 デー タ ベース イ ン タ フ ェース の定義 Microsoft SQL Server 125 Oracle 141 Sybase Adaptive Server Enterprise 89 説明 79 デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト お よ びエ ク ス ポー ト 164 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの編集 159 デー タ ベース ト レース PowerBuilder ス ク リ プ ト での起動 198 PowerBuilder ス ク リ プ ト での停止 203 サンプル出力 205 説明 192 [プ レ ビ ュ ー] タ ブに表示 さ れ る 構文 199 ロ グ フ ァ イ ルの書式 195 ロ グ フ ァ イ ルの内容 193 ロ グの削除ま たは消去 205 ロ グの表示 204 ロ グへの コ メ ン ト の追加 204 デー タ ベース パ ラ メ ー タ ConnectString 29 ODBC 接続 29 PowerBuilder ス ク リ プ ト での設定 176 デー タ ベース と の接続 Sybase Open Client のデ ィ レ ク ト リ サービ ス 96 設定方法 173 デー タ ベース プ ロ フ ァ イ ル内の文字列の文字 数制限 176 [プ レ ビ ュ ー] タ ブの表示 176 デー タ ベース プ ロ フ ァ イ ル DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス 9 DB プ ロ フ ァ イ ル ダ イ ア ロ グボ ッ ク ス での選択 155 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス 10 DBParm パ ラ メ ー タ の設定 10 DBParm 文字列の文字数制限 176 JDBC ド ラ イ バ マネージ ャ ト レース、 起動 223 JDBC ド ラ イ バ マネージ ャ ト レース、 停止 227 Microsoft SQL Native Client デー タ ベース イ ン タ フ ェ ース 125 ODBC デー タ ソ ース の DBMS 値 29 ODBC デー タ ソ ース の接続文字列 29 ODBC ド ラ イ バ マネージ ャ ト レース、 停止 216 Oracle デー タ ベース イ ン タ フ ェース 141 Sybase Adaptive Server Enterprise デー タ ベース イ ン タ フ ェ ース 89 Sybase Open Client デ ィ レ ク ト リ サービ ス に対 する サーバ名 94 イ ン ポー ト お よ びエ ク ス ポー ト 164 エ ク ス ポー ト 164 共有 160 共有、 管理 163 共有、 接続時の選択 162 共有、 設定 160 共有、 ロ ーカルな初期設定フ ァ イ ルへの保存 163 作成 8 使用する 理由 154 説明 8, 154 デー タ ベース環境設定項目の設定 10 パス ワ ー ド の表示の抑制 158 [分離レベル] お よ び [自動コ ミ ッ ト モー ド ] 261 索引 の設定 181 編集 159 デー タ ベース プ ロ フ ァ イ ルのエ ク ス ポー ト 164 デー タ ベース環境設定項目 DB 環境設定 ダ イ ア ロ グボ ッ ク ス での設定 182 PowerBuilder ス ク リ プ ト での設定 186 ProfileString 関数を使用 し た読み込み 189 [拡張属性の使用] 170, 183 共有 DB プ ロ フ ァ イ ル 161, 183 自動 コ ミ ッ ト モー ド (AutoCommit) 181, 186 設定方法 173 デー タ ベース プ ロ フ ァ イ ルで設定 181 デー タ ベース プ ロ フ ァ イ ルの設定 10 [プ レ ビ ュ ー] タ ブでの AutoCommit お よ び Lock の表示 186 分離レベル (Lock) 186 [読み取 り 専用] 170, 183 [DB の接続を保持] 183 [SQL 構文の終止符] 183 分離レベル (Lock) 181 デー タ ベース と の接続の ト ラ ブルシ ュ ーテ ィ ン グ JDBC ド ラ イ バ マネージ ャ ト レース 222 ODBC ド ラ イ バ マネージ ャ ト レース 209 説明 191 デー タ ベース ト レース 192 デー タ ベース と の接続の ト レース JDBC ド ラ イ バ マネージ ャ ト レース 222 ODBC ド ラ イ バ マネージ ャ ト レース 209 サンプル出力、 ODBC ド ラ イ バ マネージ ャ ト レー ス 218 サンプル出力、 デー タ ベース ト レース 205 説明 191 デー タ ベース ト レース 192 デー タ ベース パ ラ メ ー タ DBConfigSection 68 デー タ ベースペ イ ン タ 、 SQL 終止符の変更 143 デー タ ベースへのア ク セ ス JDBC 接続の ト ラ ブルシ ュ ーテ ィ ン グ 222 ODBC 接続の ト ラ ブルシ ュ ーテ ィ ン グ 209 ODBC デー タ ソ ース 27 任意の接続の ト ラ ブルシ ュ ーテ ィ ン グ 192 デー タ ベースへの接続 JDBC 接続の ト ラ ブルシ ュ ーテ ィ ン グ 222 262 ODBC 接続の ト ラ ブルシ ュ ーテ ィ ン グ 209 アプ リ ケーシ ョ ン実行中の 186 概要 13 拡張属性シ ス テ ム テーブルの作成 165 起動時ま たはペ イ ン タ か ら の 154 基本的な接続手順 3 接続 タ イ ミ ン グ 3 説明 153, 157 デー タ ベース プ ロ フ ァ イ ルの選択に よ る 155 デー タ ベース プ ロ フ ァ イ ルの使い方 154 任意の接続の ト ラ ブルシ ュ ーテ ィ ン グ 192 デー タ ベースへの初めての ロ グ イ ン 165 デー タ ベース を Sybase Adaptive Server Enterprise で 使用す る ための準備 55, 66 テーブル SQL 命名規約 26 拡張属性内の 168 シ ス テ ム、 表示 166 テーブル と カ ラ ムの SQL 命名規約 26 テーブル と カ ラ ムの命名規約 26 テーブルの選択 ダ イ ア ロ グボ ッ ク ス、 [シ ス テ ム テーブルを表示] チ ェ ッ ク ボ ッ ク ス 166 テ ク ニ カル ド キ ュ メ ン ト 、 Sybase、 ヘルプの使用 17, 79 手順、 基本 DBParm パ ラ メ ー タ の設定 173, 175 JDBC ド ラ イ バ マネージ ャ ト レース の停止 227 ODBC デー タ ソ ース の準備 26 ODBC ド ラ イ バ マネージ ャ ト レース の停止 215 接続手順 3 デー タ ベース イ ン タ フ ェース で使用す る ための デー タ ベース の準備 78 デー タ ベース イ ン タ フ ェース の定義 79 デー タ ベース ト レース の停止 202 デー タ ベース プ ロ フ ァ イ ルの イ ン ポー ト お よ び エ ク ス ポー ト 164 デー タ ベース プ ロ フ ァ イ ルの共有 160 デー タ ベース プ ロ フ ァ イ ルの選択に よ る 接続 155 デー タ ベース プ ロ フ ァ イ ルの編集 159 デー タ ベース環境設定項目の設定 173, 179 PowerBuilder 索引 と ト ラ ンザ ク シ ョ ナル コ ン ポーネ ン ト のための デー タ ベース接続 233 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 、 SQLCA AutoCommit プ ロ パテ ィ の設定 188 ConnectOption DBParm の設定 214 DBMS プ ロ パテ ィ の ト レース キー ワー ド 200, 203 DBParm プ ロ パテ ィ の設定 177 Lock プ ロ パテ ィ の設定 188 TraceFile DBParm の設定 226 ト ラ ン ス レー タ の選択 ダ イ ア ロ グボ ッ ク ス 31 ト ラ ン ス レー タ 、 ODBC 31 ト レース キー ワー ド PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト か ら の削除 203 PowerBuilder アプ リ ケーシ ョ ン ス ク リ プ ト へ の追加 200 [プ レ ビ ュ ー] タ ブの表示 199 に 入力条件則、 拡張属性シ ス テ ム テーブル内 168 は パ ス ワ ー ド 、 初期設定フ ァ イ ルでの表示の抑制 158 ひ 表記規則 x 表示書式、 拡張属性シ ス テ ム テーブル内の 168 186 DBParm パ ラ メ ー タ の コ ピー 175, 176 DBParm プ ロ パテ ィ の コ ピー 10, 158 JDBC ド ラ イ バ マネージ ャ ト レース構文の コ ピー 225 ODBC ド ラ イ バ マネージ ャ ト レース構文の コ ピー 213 説明 10, 12, 158, 175, 176 デー タ ベース ト レース構文の コ ピー 199 プ ロ フ ァ イ ル、 デー タ ベース デー タ ベース プ ロ フ ァ イ ルを参照 8 分離レベル と Lock 値、 デー タ ベース プ ロ フ ァ イ ルでの設定 181 [分離レベル] ボ ッ ク ス、 DB プ ロ フ ァ イ ル設定 ダ イ ア ロ グボ ッ ク ス 181 へ ヘルプ 25 Java の Web サ イ ト 39 JDBC ド ラ イ バ マネージ ャ ト レース、 使用 222 JDBC の Web サ イ ト 39, 59 Microsoft Universal Data Access 49, 59 ODBC ド ラ イ バ 25, 31 ODBC ド ラ イ バ マネージ ャ ト レース、 使用 209 Sybase の Web サ イ ト 49 オン ラ イ ン ヘルプ、 使用 17, 25 デー タ ソ ース 17 デー タ ベース ト レース、 使用 192 編集 PBODB110 初期設定フ ァ イ ル 243 共有デー タ ベース プ ロ フ ァ イ ル 163 デー タ ベース プ ロ フ ァ イ ル 159 編集様式、 拡張属性シ ス テ ム テーブル内の 168 ふ 複数層 ODBC ド ラ イ バ 22 複数の ODBC デー タ ソ ース、 定義 30 [プ レ ビ ュ ー] タ ブ AutoCommit お よ び Lock プ ロ パテ ィ の コ ピー デー タ ベース と の接続 ら ラ ージ オブジ ェ ク ト 、 Oracle ス ト ア ド プ ロ シー ジ ャ の出力パ ラ メ ー タ 147 263 索引 れ レ ジ ス ト リ 、 Windows ODBC 初期設定フ ァ イ ル 28 ODBCINST 初期設定フ ァ イ ル 264 28 PowerBuilder