PowerBuilder 11.5 新機能

新機能
PowerBuilder® 11.5
Document ID: DC00357-01-1150-01
Last revised: September 2008
項目
デー タ ウ ィ ン ド ウ表示の機能拡張
デー タ ウ ィ ン ド ウ カ ラ ムの リ ッ チテ キ ス ト 編集様式
3D グ ラ フ様式
デー タ ウ ィ ン ド ウ カ ラ ム と コ ン ト ロ ールのツールチ ッ プ
ピ ク チ ャ の透明度に対す る デザ イ ン時サポー ト
新 し いデー タ ウ ィ ン ド ウ オブジ ェ ク ト のプ ロ パテ ィ
新 し いデー タ ウ ィ ン ド ウ イ ベン ト と メ ソ ッ ド
PNG サポー ト
.NET タ ーゲ ッ ト の機能拡張
セキ ュ リ テ ィ の機能拡張
厳密な名前のアセ ンブ リ
リ モー ト 配布用に追加 さ れたサポー ト (Vista と IIS 7)
.NET タ ーゲ ッ ト の共有オブジ ェ ク ト のサポー ト
言語の相互運用性の機能拡張
デー タ ベース イ ン タ フ ェ ース の機能拡張
Oracle 11g のネ イ テ ィ ブ ド ラ イ バ サポー ト
MS SQL Server 2008 のネ イ テ ィ ブ ド ラ イ バ サポー ト
ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の機能拡張
機能の廃止
ページ
2
2
4
5
6
6
7
8
9
10
13
15
16
18
19
19
26
35
36
Copyright 2008 by Sybase, Inc. All rights reserved. Sybase trademarks can be viewed at the Sybase trademarks page
at http://www.sybase.com/detail?id=1011207. Sybase and the marks listed are trademarks of Sybase, Inc. &regi; indicates registration in the United
States of America. Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. All other company and product names mentioned may be trademarks of
the respective companies with which they are associated.
デー タ ウ ィ ン ド ウ表示の機能拡張
デー タ ウ ィ ン ド ウ表示の機能拡張
PowerBuilder 11.5 では、 デー タ ウ ィ ン ド ウ を グ ラ デーシ ョ ン、 透明度
設定、 お よ び ピ ク チ ャ に よ っ て拡張で き ま す。 ブ ラ シ モー ド や ピ ク
チ ャ な ど の新 し いオブジ ェ ク ト プ ロ パテ ィ に よ り 、デー タ ウ ィ ン ド ウ
の背景の外観を変更で き ます。 こ れ ら の新 し いプ ロ パテ ィ を使用す る
こ と で、 アプ リ ケーシ ョ ン の外観がモダ ン にな り ま す。 た と えば、 ブ
ラ シモー ド プ ロ パテ ィ を使用 し て、 デー タ ウ ィ ン ド ウ を も っ と 視覚的
に面白い も のにす る よ う な背景の グ ラ デーシ ョ ン 効果 を 作成で き ま
す。
グ ラ デーシ ョ ン は、 あ る 色か ら 別の色への切 り 替わ り を表示 し ま す。
ブ ラ シモー ド を使用す る と 、 複数の異な る ス タ イ ルのグ ラ デーシ ョ ン
効果 (水平、 垂直、 回転、 放射状) か ら 選択 し た後、 他のプ ロ パテ ィ
を設定 し て グ ラ デーシ ョ ンや透明度の外観 を カ ス タ マ イ ズ で き ま す。
ピ ク チ ャ を使用す る 場合は、 ピ ク チ ャ プ ロ パテ ィ を使用 し て ピ ク チ ャ
の外観を、 元のサ イ ズにす る か、 領域に合わせて引 き 伸ばすか、 いず
れかの方法で並べ る か を決定で き ます。 透明度は色 と ピ ク チ ャ の両方
で調整で き ます。
こ れ ら の新 し いプ ロ パテ ィ の使用例については、 『ユーザーズ ガ イ ド 』
の 「デー タ ウ ィ ン ド ウ オブジ ェ ク ト の機能拡張」 を参照 し て く だ さ い。
新 し いデー タ ウ ィ ン ド ウ 表示プ ロ パテ ィ の詳細については、 以下の項
目のオ ン ラ イ ン ヘルプ を参照 し て く だ さ い。
•
ブ ラ シモー ド プ ロ パテ ィ
•
ピ ク チ ャ プ ロ パテ ィ
•
グ ラ デーシ ョ ン プ ロ パテ ィ
•
透明度 (デー タ ウ ィ ン ド ウ オブジ ェ ク ト )
デー タ ウ ィ ン ド ウ カ ラ ムの リ ッ チ テキス ト 編集様式
PowerBuilder 11.5 では、カ ラ ム デー タ を リ ッ チ テ キ ス ト フ ォ ーマ ッ ト
(RTF) で表示 し 、 同 じ デー タ フ ィ ール ド で異な る フ ォ ン ト と 色を使用
す る リ ッ チテ キ ス ト 編集様式を使用で き ます。
2
新機能
デー タ ウ ィ ン ド ウ カ ラ ムの リ ッ チ テキス ト 編集様式
リ ッ チテ キ ス ト 編集様式で書式設定す る カ ラ ム には、プ レーン テ キ ス
ト 編集様式のカ ラ ム よ り 明 ら かに多 く の記憶容量が必要です。 こ のた
め、 カ ラ ム幅には最低 1 KB を設定す る 必要があ り ま す。 そ う し ない
と 、 大 き な テ キ ス ト デー タ 型のカ ラ ム に リ ッ チテ キ ス ト 編集様式は
使用で き ません。
既存の メ ソ ッ ド と イ ベン ト
GetText メ ソ ッ ド を使用 し て リ ッ チ テ キ ス ト フ ォ ーマ ッ ト でテ キ ス ト
に戻 し 、SetText メ ソ ッ ド を使用 し てテ キ ス ト に リ ッ チ テ キ ス ト フ ォ ー
マ ッ ト を設定す る こ と がで き ますが、 ItemChanged お よ び ItemError イ
ベン ト のデー タ 引数は、 リ ッ チ テ キ ス ト 編集カ ラ ム か ら リ ッ チ テ キ ス
ト フ ォーマ ッ ト が設定 さ れていないテ キ ス ト を返 し ます。
デフ ォ ル ト では、 リ ッ チテ キ ス ト 編集様式のカ ラ ムがプ レ ビ ュ ー表示
ま たは実行時に編集 さ れ る と 、 必ずフ ォ ン ト ツールバーが表示 さ れま
す。 フ ォ ン ト ツールバーは、 カ ラ ム の フ ォーカ ス が失われ る と 消え ま
す。 ツールバーは移動で き ます。 ま た前回の位置を記憶 し ます。 デー
タ ウ ィ ン ド ウ コ ン ト ロ ールの RichTextToolbarActivation 定数を変更 し
て、 リ ッ チテ キ ス ト 編集様式の カ ラ ム を含むデー タ ウ ィ ン ド ウ オブ
ジ ェ ク ト に フ ォ ーカ ス があ る と き は必ず ( こ の タ イ プのカ ラ ム が選択
さ れていて も 、 いな く て も ) フ ォ ン ト ツールバーを表示す る よ う にで
き ます。 ま た、 こ の定数を変更 し て、 フ ォ ン ト ツールバーが表示 さ れ
ない よ う にす る こ と も で き ます。
デー タ ウ ィ ン ド
ウ プ ロパテ ィ
デー タ 型
RichTextToolbar RichTextTool
Activation
barActivation
(カ タ ロ グ)
説明
リ ッ チテ キ ス ト 編集様式の カ ラ ム を持つ
デー タ ウ ィ ン ド ウ オブジ ェ ク ト に対 し て、
デ フ ォ ル ト の フ ォ ン ト ツ ールバー を表示
す る タ イ ミ ン グ を指定 し ます。 値は以下の
と お り です。
RichTextToolbarActivationAlways!
RichTextToolbarActivationNever!
RichTextToolbarActivationOnEdit! (デ
フ ォル ト )
リ ッ チ テ キ ス ト 編集様式 を サ ポ ー ト す る た め に導入 さ れ た プ ロ パ
テ ィ 、 イ ベン ト 、 お よ び メ ソ ッ ド を利用 し て、 ツールバーを カ ス タ マ
イ ズで き ます。 デフ ォ ル ト の ツールバーではな く 、 カ ス タ マ イ ズ し た
フ ォ ン ト ツールバーを使用す る 場合は、RichTextToolbarActivation 定数
を RichTextToolbarActivationNever! に設定す る 必要があ り ます。
PowerBuilder 11.5 Windows
3
3D グ ラ フ 様式
新 し いデー タ ウ ィ ン ド ウ 式を使用 し て、 リ ッ チテ キ ス ト カ ラ ム の RTF
設定を解除で き ます。 詳細については、 オ ン ラ イ ン ヘルプで StripRTF
を参照 し て く だ さ い。
リ ッ チテ キ ス ト カ ラ ム プ ロ パテ ィ お よ び メ ソ ッ ド の詳細については、
以下の項目のオ ン ラ イ ン ヘルプ を参照 し て く だ さ い。
RichTextToolbarActivation
RichTextLoseFocus
RichTextCurrentStyleChanged
RichTextLimitError
GetRichTextAlign
GetRichTextFaceName
GetRichTextStyle
SetRichTextColor
SetRichTextSize
GetRichTextColor
GetRichTextSize
SetRichTextAlign
SetRichTextFaceName
SetRichTextStyle
3D グ ラ フ 様式
PowerBuilder 11.5 では、 3D グ ラ フ (3D 円、 3D 横棒、 3D 縦棒、 3D 折
れ線、 お よ び 3D 面) を よ り 洗練 さ れた外観で表示す る ために 3D レ ン
ダ リ ン グが追加 さ れ ま し た。 新 し い グ ラ フ様式では、 元の 3D グ ラ フ
様式で使用 さ れ る オーバーレ イ ではな く 、 デー タ 項目の透明化を使用
す る こ と がで き ま すが、 必要に応 じ て 3D グ ラ フ に元の レ ン ダ リ ン グ
様式を使用す る こ と も で き ます。
新 し いグ ラ フ レ ン ダ リ ン グ様式は、ス タ ン ド ア ロ ン グ ラ フ コ ン ト ロ ー
ルお よ びデー タ ウ ィ ン ド ウ オブジ ェ ク ト 内の グ ラ フ コ ン ト ロ ールで
サポー ト さ れ ま す。 PowerBuilder は、 以下の関数を使用 し て ス タ ン ド
ア ロ ン グ ラ フ コ ン ト ロ ールの新 し いグ ラ フ様式を サポー ト し ます。
GetDataLabelling
GetDataTransparency
GetSeriesLabelling
GetSeriesTransparency
SetDataLabelling
SetDataTransparency
SetSeriesLabelling
SetSeriesTransparency
PowerBuilder は、 デー タ ウ ィ ン ド ウ コ ン ト ロ ールの新 し いグ ラ フ様式
をサポー ト す る 場合 も 同 じ 関数を使用 し ますが、 graphcontol 引数が加
わ り ます。
詳細につい て は、 オ ン ラ イ ン ヘルプで該当す る 関数 を 調べて く だ さ
い。
4
新機能
デー タ ウ ィ ン ド ウ カ ラ ム と コ ン ト ロールのツールチ ッ プ
DirectX ラ ン タ イム
新 し い 3D レ ン ダ リ ン グは、DirectX ラ ン タ イ ム に依存 し ます。 こ れは、
ユーザ が こ の機能 を 最初に選択 し た と き に イ ン ス ト ール さ れ ま す。
Render3D チ ェ ッ ク ボ ッ ク ス を最初にオ ン に し た と き に、 DirectX イ ン
ス ト ー ラ が起動 し ます。 サポー ト さ れない様式のチ ェ ッ ク ボ ッ ク ス が
オ ン に さ れて も 、 サポー ト さ れ る 3D グ ラ フ が選択 さ れ る ま で何 も 起
こ り ません。 イ ン ス ト ールを見送 る と 、 3D レ ン ダ リ ン グ プ ロ パテ ィ
は無視 さ れます。
実行す る コ ン ピ ュ ー タ に DirectX を イ ン ス ト ール し て、 [3D レ ン ダ リ
ン グ] チ ェ ッ ク ボ ッ ク ス を オ ン に し て も 、 グ ラ フ の外観が変わ ら ない
場合は、 グ ラ フ ィ ッ ク カー ド が DirectX に対応 し ていない可能性があ
り ます。
dxdiag.exe を実行す る こ と で DirectX がサポー ト さ れてい る か ど う か を
確認で き ます。 こ の フ ァ イ ルは、通常、Windows \ System32 デ ィ レ ク ト
リ に イ ン ス ト ール さ れて い ま す。 DirectX 診断 ツ ールの [デ ィ ス プ レ
イ] タ ブは、 Direct3D が有効か ど う か を示 し ます。
サポー ト さ れないプ ロ
パテ ィ
以下のプ ロ パテ ィ は、 新 し い 3D グ ラ フ様式ではサポー ト さ れ ません。
•
軸 : 線の種類、 小区分、 小区分目盛刻み、 小区分グ リ ッ ド 線、 基線
•
テ キ ス ト : テ キ ス ト の位置揃え
デー タ ウ ィ ン ド ウ カ ラ ム と コ ン ト ロールのツールチ ッ プ
ツールチ ッ プは、 デー タ ウ ィ ン ド ウ カ ラ ム ま たは コ ン ト ロ ール上でポ
イ ン タ が止 ま っ た と き にテ キ ス ト を表示 し ます。 こ のテ キ ス ト は、 そ
の カ ラ ム ま たは コ ン ト ロ ールの目的を 説明す る ために使用 さ れ ま す。
こ の機能を使用す る には、 ツールチ ッ プ を作成す る カ ラ ム ま たは コ ン
ト ロ ールを選択 し て、 プ ロ パテ ィ ビ ュ ーで [ツールチ ッ プ] タ ブ を選
択 し ます。 こ の タ ブ を使用 し て以下の内容を指定で き ます。
•
ツールチ ッ プのテ キ ス ト
•
ツールチ ッ プの タ イ ト ル
•
背景 と テ キ ス ト の色
•
ツールチ ッ プのア イ コ ン
•
ツールチ ッ プが表示 さ れ る ま で と 消え る ま での時間
•
ツールチ ッ プ を長方形 と し て表示す る か、 吹 き 出 し と し て表示す
るか
PowerBuilder 11.5 Windows
5
ピ ク チ ャ の透明度に対するデザイ ン時サポー ト
詳細については、オ ン ラ イ ン ヘルプで ツールチ ッ ププ ロ パテ ィ を参照
し て く だ さ い。
ピ ク チ ャ の透明度に対するデザイ ン時サポー ト
PowerBuilder 11.5 では、 既存の transparentColor デー タ ウ ィ ン ド ウ プ ロ
パテ ィ に対 し て、 デザ イ ン時サポー ト を導入 し ます。 こ の機能を使用
す る には、 透明にす る ピ ク チ ャ の色 を 右 ク リ ッ ク し 、 コ ン テ キ ス ト
ポ ッ プ ア ッ プ メ ニ ュ ーで [透過度の設定] を 選択 し ま す。 [透過色]
フ ィ ール ド は、 選択 し た色の番号を取 り 出 し ます。 透明度 を ゼ ロ に設
定 し ない よ う に し て く だ さ い。
ま た、 『オブジ ェ ク ト と コ ン ト ロ ール』 マニ ュ アルの 「表示書式に色を
使用す る 」 ト ピ ッ ク で説明 さ れ る 式で値を計算す る こ と で、 色番号を
入力す る こ と も で き ます。
ピ ク チ ャ は、 [名前を付けて行を保存] メ ニ ュ ー項目を使用 し て、 透明
度の設定 と 一緒に WMF、 EMF、 ま たは PSR フ ァ イ ルに保存で き ます。
こ の機能は、 以下には適用 さ れ ません。
•
すでに透明な色
•
Windows メ タ フ ァ イ ル (WMF)
•
リ ッ チテ キ ス ト ま たは OLE 処理様式
•
Web フ ォ ーム アプ リ ケーシ ョ ン
•
印刷 さ れた レ ポー ト ま たはデー タ ウ ィ ン ド ウ オブジ ェ ク ト
•
PDF 形式での行の保存 と 、 PSR、 EMF、 お よ び WMF 以外のその他
の形式
新 し いデー タ ウ ィ ン ド ウ オブ ジ ェ ク ト のプ ロパテ ィ
PowerBuilder 11.5 では、 デー タ ウ ィ ン ド ウ オブジ ェ ク ト と そのカ ラ ム
お よ び コ ン ト ロ ールの表現 を、 グ ラ デーシ ョ ン背景、 ピ ク チ ャ 背景、
柔軟な透明度設定、 お よ びカ ラ ム と コ ン ト ロ ールに対す る ツールチ ッ
プ プ ロ パテ ィ の定義に よ り 、 さ ま ざ ま な新 し い方法で操作で き ます。
6
新機能
新 し いデー タ ウ ィ ン ド ウ イ ベン ト と メ ソ ッ ド
こ れ ら の新 し いプ ロ パテ ィ については、 オ ン ラ イ ン ヘルプの 『デー タ
ウ ィ ン ド ウ リ フ ァ レ ン ス』 を参照 し て く だ さ い。
新 し いデー タ ウ ィ ン ド
ウ オブ ジ ェ ク ト の背
景プ ロパテ ィ
新し いカ ラムと コ ン ト
ロールのプ ロパテ ィ
•
区域プ ロ パテ ィ (グ ラ デーシ ョ ン プ ロ パテ ィ )
•
ブ ラ シモー ド
•
グ ラ デーシ ョ ン プ ロ パテ ィ
•
ピ ク チ ャ プ ロ パテ ィ
•
透明度 (デー タ ウ ィ ン ド ウ オブジ ェ ク ト )
•
背景プ ロ パテ ィ
•
3D レ ン ダ リ ン グ
•
ツールチ ッ ププ ロ パテ ィ
•
透明度 (カ ラ ム と コ ン ト ロ ール)
•
透明度 (デー タ ウ ィ ン ド ウ の ピ ク チ ャ コ ン ト ロ ール)
新 し いデー タ ウ ィ ン ド ウ イ ベン ト と メ ソ ッ ド
6 ページの 「新 し いデー タ ウ ィ ン ド ウ オブジ ェ ク ト のプ ロ パテ ィ 」 に
示 さ れ る 新 し いプ ロ パテ ィ に加え て、 PowerBuilder 11.5 で拡張 さ れた
デー タ ウ ィ ン ド ウ 機能は、 以下の イ ベン ト と メ ソ ッ ド を使用 し ます。
新 し い イ ベン ト
RichTextCurrentStyleChanged
RichTextLimitError
RichTextLoseFocus
新し い メ ソ ッ ド
GetDataLabelling (デー タ ウ ィ ン ド ウ のグ ラ フ)
GetDataTransparency (デー タ ウ ィ ン ド ウ のグ ラ フ)
GetSeriesLabelling (デー タ ウ ィ ン ド ウ のグ ラ フ)
GetSeriesTransparency (デー タ ウ ィ ン ド ウ のグ ラ フ)
SetDataLabelling (デー タ ウ ィ ン ド ウ のグ ラ フ)
SetDataTransparency (デー タ ウ ィ ン ド ウ のグ ラ フ)
SetSeriesLabelling (デー タ ウ ィ ン ド ウ のグ ラ フ)
SetSeriesTransparency (デー タ ウ ィ ン ド ウ のグ ラ フ)
GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextSize
GetRichTextStyle
PowerBuilder 11.5 Windows
7
PNG サポー ト
SetRichTextAlign
SetRichTextColor
SetRichTextFaceName
SetRichTextSize
SetRichTextStyle
デー タ ウ ィ ン ド ウ カ ラ ム の リ ッ チ テ キ ス ト 機能 は、 新 し い 定数
RichTextToolbarActivation も 使用 し ます。
PNG サポー ト
PowerBuilder 11.5 は、 メ ニ ュ ー、 ツールバー、 ツ リ ービ ュ ー コ ン ト ロ ー
ルお よ びデー タ ウ ィ ン ド ウ オ ブ ジ ェ ク ト で使用す る 画像で Portable
Networks Graphics (PNG) フ ァ イ ル形式を サポー ト し ます。 PNG 画像
は、 デザ イ ン時 も 実行時 と 同様に表示 さ れます。 PNG 画像の透明部分
は、 コ ン ト ロ ールに背景色ま たは色のグ ラ デーシ ョ ン プ ロ パテ ィ があ
る 場合は、 割 り 当て ら れた コ ン ト ロ ールの背景色ま たは色のグ ラ デー
シ ョ ン を表示 し ます。
背景色プ ロ パテ ィ のない ピ ク チ ャ コ ン ト
ロ ールの場合、 PNG 画像の透明部分は親オブ ジ ェ ク ト ま たは コ ン ト
ロ ールの背景色を表示 し ます。 た と えば、 PowerBuilder ピ ク チ ャ コ ン
ト ロ ールには背景色プ ロ パテ ィ があ り ません。透明な PNG 画像を ピ ク
チ ャ コ ン ト ロ ールに割 り 当て る 場合、透明部分はピ ク チ ャ コ ン ト ロ ー
ルを含む ウ ィ ン ド ウ ま たはオブジ ェ ク ト の背景色を表示 し ます。
ピ ク チ ャ コ ン ト ロールの場合
ピ ク チ ャ コ ン ト ロ ール と は異 な
り 、 ピ ク チ ャ ボ タ ン コ ン ト ロ ールには PowerBuilder の背景色プ ロ パ
テ ィ があ り ま す。 透明な PNG 画像を ピ ク チ ャ ボ タ ン コ ン ト ロ ールに
割 り 当て る と 、PNG 画像はピ ク チ ャ ボ タ ン コ ン ト ロ ールに割 り 当て ら
れた背景色 と 一緒に表示 さ れ ます。 ピ ク チ ャ ボ タ ン コ ン ト ロ ール内の
PNG 画像を ピ ク チ ャ ボ タ ン コ ン ト ロ ールの コ ン テナ オブジ ェ ク ト の
背景に溶け込 ま せ る 場合は、 ピ ク チ ャ ボ タ ン の BackColor プ ロ パテ ィ
を その コ ン テナ オブジ ェ ク ト の背景色に設定す る 必要があ り ます。
ピ ク チ ャ ボ タ ン コ ン ト ロールの場合
8
新機能
.NET タ ーゲ ッ ト の機能拡張
ピ ク チ ャ コ ン ト ロ ール の 透
明な PNG 画像を ウ ィ ン ド ウ に表示 し 、 ピ ク チ ャ コ ン ト ロ ールが リ ス
ト ボ ッ ク ス コ ン ト ロ ール (ま たは、 他の非 コ ン テナ コ ン ト ロ ールやオ
ブジ ェ ク ト ) の一部 と 重な る 場合、 PNG 画像の透明部分は、 それが重
な る コ ン ト ロ ール ま たはオブジ ェ ク ト を切 り 取 り 、 その コ ン テナ オブ
ジ ェ ク ト の背景色 と 一緒に表示 さ れ ます。 ウ ィ ン ド ウ な ど の コ ン テナ
オブジ ェ ク ト に、 背景色以外に背景画像 も あ る 場合、 PNG 画像は背景
色のみを表示 し 、 重な る 背景画像は切 り 取 り ます。
他の コ ン ト ロールまたは画像に重な る場合
サポー ト さ れる タ ーゲ ッ ト タ イ プ と 例外 PNG
画 像 は、 標 準 的 な
PowerBuilder タ ー ゲ ッ ト お よ び .NET Windows フ ォ ー ム ま た は Web
フ ォ ーム タ ーゲ ッ ト に配布で き ます。 ただ し 、 PNG 画像は リ ッ チテ
キ ス ト ま たは OLE 提示様式を持つデー タ ウ ィ ン ド ウ オブジ ェ ク ト で
は選択で き ません。 ま た、 デー タ ウ ィ ン ド ウ オブジ ェ ク ト を XSLFOP
メ ソ ッ ド を使用 し て PDF フ ァ イ ル と し てエ ク ス ポー ト し た場合、 デー
タ ウ ィ ン ド ウ 内の PNG 画像は生成 さ れた PDF には保存 さ れません。透
明度が設定 さ れた PNG 画像は、 Internet Explorer 7.0 ブ ラ ウ ザでは完全
にサポー ト さ れ ますが、 以前のバージ ョ ン のブ ラ ウ ザは こ れ ら の画像
の透明効果を表示で き ません。
PNG 画像は、 ビ ッ ト マ ッ プ関数ではな く GDI+ 関数で描画 さ れ ま す。
こ のため、 ピ ク チ ャ 画像 と し て PNG フ ァ イ ルを選択す る と 、 ピ ク チ ャ
お よ び ピ ク チ ャ ボ タ ン コ ン ト ロ ールの Map3DColors プ ロ パテ ィ は無
視 さ れ ます。 ま た、 PNG 画像は、 その画像がア ク テ ィ ブな間は ロ ッ ク
さ れ ます。こ れは、画像が ロ ー ド さ れ る と 直ちに解放 さ れ る ビ ッ ト マ ッ
プ画像 と は対照的です。
.NET タ ーゲ ッ ト の機能拡張
PowerBuilder 11.5 では、 .NET タ ーゲ ッ ト に関 し て以下の機能拡張があ
り ます。
•
セキ ュ リ テ ィ の機能拡張
•
厳密な名前のアセ ンブ リ
•
リ モー ト 配布用に追加 さ れたサポー ト (Vista と IIS 7)
•
.NET タ ーゲ ッ ト の共有オブジ ェ ク ト のサポー ト
PowerBuilder 11.5 Windows
9
.NET タ ーゲ ッ ト の機能拡張
セキ ュ リ テ ィ の機能拡張
コ ー ド ア ク セス セ
キュ リ テ ィ
PowerBuilder 11.5 ア プ リ ケ ー シ ョ ン お よ び コ ン ポ ー ネ ン ト は、 .NET
コ ー ド ア ク セ ス セ キ ュ リ テ ィ (CAS) 構成に よ っ て制約 さ れ る 場合
に、 部分的信頼環境で 実行 で き ま す。 PowerBuilder で は、 .NET Web
フ ォ ー ム、 .NET Web サ ー ビ ス、 .NET Windows フ ォ ー ム お よ び
SmartClient プ ロ ジ ェ ク ト に対 し て CAS セ キ ュ リ テ ィ ゾーン (サ ン ド
ボ ッ ク ス) を構成 し て、 アプ リ ケーシ ョ ン ま たは コ ン ポーネ ン ト コ ー
ド がエ ン ド ユーザに よ っ て実行 さ れ る 前に必要な信頼度 を 最小化で
き ます。
.NET Web フ ォ ームお よ び Web サービ ス プ ロ ジ ェ ク ト では、 プ ロ ジ ェ
ク ト の配布後にセキ ュ リ テ ィ ゾーン を サポー ト す る ために、Web.config
フ ァ イ ルを変更す る こ と も で き ます。 PowerBuilder 11.5 では、 .NET ア
セ ン ブ リ プ ロ ジ ェ ク ト を構築お よ び配布す る こ と で作成す る .NET ア
セ ン ブ リ は、 呼び出 し 側アプ リ ケーシ ョ ン ま たは コ ン ポーネ ン ト のセ
キ ュ リ テ ィ 権限で実行 さ れ ま す。 以前の リ リ ー ス では、 PowerBuilder
アプ リ ケーシ ョ ンお よ び コ ン ポーネ ン ト は完全信頼の場合のみ実行で
き ま し た。
[セキ ュ リ テ ィ ] タ ブ
の機能拡張
プ ロ ジ ェ ク ト ペ イ ン タ の [セキ ュ リ テ ィ ] タ ブの ラ ジオボ タ ン グルー
プ フ ィ ール ド を使用 し て、 完全信頼オプシ ョ ン ま たはカ ス タ マ イ ズ し
た信頼オプシ ョ ン を選択で き ます。 Windows フ ォ ーム アプ リ ケーシ ョ
ン では、 ロ ーカル イ ン ト ラ ネ ッ ト 信頼ま たは イ ン タ ーネ ッ ト 信頼 も 選
択で き ま す。 ラ ジ オ ボ タ ン グ ループ の下の リ ス ト ボ ッ ク ス に よ り 、
ロ ーカル イ ン ト ラ ネ ッ ト 信頼、 イ ン タ ーネ ッ ト 信頼、 ま たはカ ス タ ム
オプシ ョ ン を選択 し た と き に、 含め る ま たは含めないア ク セ ス許可を
選択 ま たは表示で き ます (完全信頼を選択す る と 、 リ ス ト ボ ッ ク ス は
使用で き ません)。
.NET Framework 構成ツールでのデ フ ォル ト のア ク セス許可の表示
[セキ ュ リ テ ィ ] タ ブの リ ス ト ボ ッ ク ス に表示 さ れ る ア ク セ ス許可の リ
ス ト は、 ご使用の コ ン ピ ュ ー タ の コ ン ト ロ ール パネルの [管理ツール]
フ ォ ルダか ら 開 く .NET Framework 2.0 SDK 構成ツール内の リ ス ト と 同
じ です。 構成ツールのア ク セ ス許可設定を確認す る には、 構成ツール
の左ペ イ ン の ツ リ ー ビ ュ ーで、 [マ イ コ ン ピ ュ ー タ | ラ ン タ イ ム セ
キュ リ テ ィ
ポ リ シ ー| コ ン ピ ュ ー タ | ア ク セ ス 許可 セ ッ ト |
Everything] を選択 し 、 その リ ス ト が ま だ表示 さ れない場合は、 右ペ
イ ンの [ア ク セス許可の表示] を ク リ ッ ク し ます。
10
新機能
.NET タ ーゲ ッ ト の機能拡張
ロ ーカル イ ン ト ラ ネ ッ ト ま たは イ ン タ ーネ ッ ト オプシ ョ ン を選択 し
た後で ア ク セ ス 許可を変更す る 場合、 PowerBuilder は選択 し た ア ク セ
ス許可を自動的にカ ス タ ム選択 と し て処理 し ますが、 選択 し た ラ ジオ
ボ タ ン オプシ ョ ンは変更 し ません。 こ のため、 リ ス ト ボ ッ ク ス の上の
[ リ セ ッ ト ] ボ タ ン を ク リ ッ ク し て、 デフ ォ ル ト の ロ ーカル イ ン ト ラ
ネ ッ ト ま たは イ ン タ ーネ ッ ト のア ク セ ス 許可設定に戻す こ と がで き ま
す。 [詳細] ボ タ ン ([ リ セ ッ ト ] ボ タ ンの左) を ク リ ッ ク す る と 、 XML
形式の カ ス タ ム ア ク セ ス 許可 を 入力で き る カ ス タ ム ア ク セ ス 許可ダ
イ ア ロ グ ボ ッ ク ス が表示 さ れ ま す。 [ リ セ ッ ト ] お よ び [詳細] ボ タ
ン は、 [完全信頼] ラ ジオボ タ ン オプシ ョ ン を選択 し た場合だけは使
用で き ません。
ス マー ト ク ラ イ ア ン ト アプ リ ケーシ ョ ン では、ア ク セ ス許可情報はア
プ リ ケーシ ョ ン と 一緒に配布す る マ ニ フ ェ ス ト フ ァ イ ルに格納 さ れ
ます。ユーザが ス マー ト ク ラ イ ア ン ト アプ リ ケーシ ョ ン を実行す る 場
合、 アプ リ ケーシ ョ ン ロ ーダ プ ロ セ ス は、 そのマニ フ ェ ス ト フ ァ イ
ルを ロ ー ド し 、 アプ リ ケーシ ョ ン を ホ ス ト す る サ ン ド ボ ッ ク ス を作成
し ます。
標準の Windows フ ォ ーム アプ リ ケーシ ョ ン では、アプ リ ケーシ ョ ンが
PowerBuilder IDE か ら 実行 さ れ る 場合に、 サ ン ド ボ ッ ク ス を使用 し て
アプ リ ケーシ ョ ン を プ ロ ジ ェ ク ト ペ イ ン タ の [セキ ュ リ テ ィ ] タ ブで
定義 し たア ク セ ス許可で実行で き ます。ユーザが Windows フ ォ ーム ア
プ リ ケーシ ョ ン を、 フ ァ イ ル エ ク ス プ ロ ー ラ か ら 起動す る 場合、 ま た
は UNC ア ド レ ス(\\ server \ myapp \ myapp.exe な ど)を入力 し て起動す
る 場合、 現在のユーザのシ ス テ ムに よ っ て設定 さ れたセキ ュ リ テ ィ ポ
リ シーが適用 さ れ、 [セキ ュ リ テ ィ ] タ ブのア ク セ ス許可設定は無視 さ
れ ます。
カ ス タ ム セキ ュ リ
テ ィ 設定
カ ス タ ム セ キ ュ リ テ ィ 権限に関 し て は、 『ア プ リ ケ ー シ ョ ン と コ ン
ポーネ ン ト の .NET への配布』 マニ ュ アルの付録お よ び Microsoft Web サ
イト
http://msdn.microsoft.com/en-us/library/system.security.permissions.aspx
を参照 し て く だ さ い。
ア ク セス許可エ ラ ー
メ ッ セージ
.NET ア プ リ ケーシ ョ ン がセ キ ュ リ テ ィ ポ リ シーで許可 さ れていない
操作を実行 し よ う と す る と 、Microsoft .NET Framework は ラ ン タ イ ム例
外を送出 し ます。 た と えば、 デフ ォ ル ト の ロ ーカル イ ン ト ラ ネ ッ ト 信
頼レベルにはフ ァ イ ル入力ま たは出力 (フ ァ イ ル IO) のア ク セ ス許可
があ り ません。 こ のセキ ュ リ テ ィ 設定でアプ リ ケーシ ョ ンが実行 さ れ、
フ ァ イ ル IO 操作を実行 し よ う と す る と 、 .NET Framework はフ ァ イ ル
操作例外を発行 し ます。
PowerScript コ ー ド の .NET 相互運用性 コ ー ド ブ ロ ッ ク を使用 し て、 次
の よ う に .NET セキ ュ リ テ ィ 例外を捕捉で き ます。
#if defined PBDOTNET then
PowerBuilder 11.5 Windows
11
.NET タ ーゲ ッ ト の機能拡張
try
ClassDefinition cd_windef
cd_windef = FindClassDefinition ( "w_1" )
messagebox ( "w_1's class
definition",cd_windef.DataTypeOf )
catch ( System.Security.SecurityException ex )
messagebox ( "",ex.Message )
end try
#end if
すべての .NET タ ーゲ ッ ト に、 System.Security.SecurityException 例外を
捕捉す る ために、 mscorlib.dll .NET Framework アセ ンブ リ への参照を含
め る 必 要 が あ り ま す。 PowerBuilder Windows フ ォ ー ム お よ び Web
フ ォ ーム アプ リ ケーシ ョ ン がデフ ォ ル ト で生成す る PBTrace.log フ ァ
イ ルには、 アプ リ ケーシ ョ ン の実行中に発生す る セ キ ュ リ テ ィ 例外の
詳細説明が含ま れ ます。PowerBuilder .NET Web サービ ス コ ン ポーネ ン
ト も 、 重大な セ キ ュ リ テ ィ 例外 を記録す る PBTrace.log フ ァ イ ル を デ
フ ォ ル ト で生成 し ます。
例外が送出 さ れた と き に こ れを捕捉 し ない と 、 PowerScript SystemError
イ ベン ト が起動 さ れ ます。 Windows フ ォ ーム アプ リ ケーシ ョ ン では、
例外を捕捉 し ない場合はデフ ォ ル ト の .NET 例外 メ ッ セージが表示 さ
れ る か、 SystemError イ ベン ト を処理す る ための コ ー ド が イ ン ク ルー ド
さ れ ます。 例外 メ ッ セージには、 ユーザが、 エ ラ ーの詳細を表示す る 、
アプ リ ケーシ ョ ン の実行を続行す る 、 ま たはアプ リ ケーシ ョ ン を直ち
に終了す る ためのボ タ ンがあ り ます。同 じ 条件の Web フ ォーム アプ リ
ケーシ ョ ン では、 .NET 例外ダ イ ア ロ グ ボ ッ ク ス ではな く 、 シ ス テ ム
エ ラ ー ダ イ ア ロ グ ボ ッ ク ス が表示 さ れ、アプ リ ケーシ ョ ンが終了 し ま
す。
特定のセキ ュ リ テ ィ 設
定のデバ ッ グ と ト レー
ス
特定の セ キ ュ リ テ ィ 設定の PowerBuilder IDE か ら .NET ア プ リ ケ ー
シ ョ ンお よ び コ ン ポーネ ン ト のデバ ッ グ と 実行が行え ま す。 Windows
フ ォ ー ム ア プ リ ケ ー シ ョ ン で こ の 機 能 を サ ポ ー ト す る た め に、
PowerBuilder はアプ リ ケーシ ョ ン実行フ ァ イ ル と 同 じ デ ィ レ ク ト リ に
ホ ス ト プ ロ セ ス を作成 し ます。 ホ ス ト プ ロ セ ス は、 アプ リ ケーシ ョ ン
ア セ ン ブ リ を ロ ー ド す る 前に CAS 設定の施 さ れた ド メ イ ン を作成 し
ます (Web.config フ ァ イ ルで生成 さ れ る CAS 設定は、.NET Web フ ォ ー
ム アプ リ ケーシ ョ ンお よ び .NET Web サービ ス コ ン ポーネ ン ト に よ っ
て使用 さ れ る セ キ ュ リ テ ィ 権限を定義 し ます)。
.NET ア プ リ ケーシ ョ ン が特定のセ キ ュ リ テ ィ 設定で許可 さ れてい な
い操作を実行 し よ う と す る と 、 IDE で例外が発生 し ます。
12
新機能
.NET タ ーゲ ッ ト の機能拡張
厳密な名前のアセ ン ブ リ
PowerBuilder 11.5 は、 すべての .NET プ ロ ジ ェ ク ト ペ イ ン タ か ら 厳密
な名前のアセ ン ブ リ を生成で き ます。
厳密な名前は、 単純な テ キ ス ト 名、 バージ ョ ン番号、 お よ びカルチ ャ
情報 (指定 さ れた場合) か ら 成 る アセ ン ブ リ の ID と 、 公開キーお よ び
デジ タ ル署名で構成 さ れ ます。 こ れは、 対応す る 非公開キーを使用 し
た アセ ン ブ リ フ ァ イ ルか ら 生成 さ れ ます。 アセ ン ブ リ フ ァ イ ルには、
アセ ン ブ リ を構成す る すべての フ ァ イ ルの名前 と ハ ッ シ ュ を含むア セ
ン ブ リ マニ フ ェ ス ト が含ま れ ます。
プロジ ェ ク ト ペイ ン
タ の [署名] タ ブ
PowerBuilder 11.5 では、 すべて の .NET ア プ リ ケーシ ョ ンお よ び コ ン
ポーネ ン ト プ ロ ジ ェ ク ト でプ ロ ジ ェ ク ト ペ イ ン タ に新 し い [署名] タ
ブがあ り ます。 [署名] タ ブ上の [.NET ア セ ン ブ リ ] グループ ボ ッ ク
ス では、 厳密な名前のキーフ ァ イ ル を .NET プ ロ ジ ェ ク ト が生成す る
アセ ン ブ リ にア タ ッ チで き ます。 [.NET アセ ン ブ リ ] グループ ボ ッ ク
ス には、 以下の フ ィ ール ド があ り ます。
[.NET アセ ン ブ リ ] グルー
プ ボ ッ ク スのフ ィ ール ド
アセ ンブ リ へ署名
厳密な名前のキーフ ァ イ ル
を選択
遅延署名のみ
説明
こ のチ ェ ッ ク ボ ッ ク ス をオンにする と 、 [厳密
な名前のキー フ ァ イ ルを選択] シ ン グル ラ イ
ン エデ ィ ッ ト ボ ッ ク ス、 参照ボ タ ン、 [新規作
成] ボ タ ン、 お よ び [遅延署名のみ] チ ェ ッ ク
ボ ッ ク ス が有効にな り ます。
生成 さ れ た ア セ ン ブ リ に ア タ ッ チ す る キ ー
フ ァ イ ルの名前。 こ の フ ィ ール ド は、 参照 (省
略記号) ボ タ ンお よ び [新規作成] ボ タ ン と 関
連付け ら れてい ます。 参照ボ タ ンに よ り 、 フ ァ
イ ルの選択 ダ イ ア ロ グ ボ ッ ク ス が開かれ ま
す。 こ こ で、 .snk ま たは .pfx 拡張子を持つキー
フ ァ イ ルを選択で き ます。 [新規作成] ボ タ ン
を使用 し て、.snk 拡張子を持つキーフ ァ イ ルを
作成 で き ま す。 PowerBuilder
は、 .NET
Framework SDK か ら Sn.exe ツールを使用 し て
キーフ ァ イ ルを作成 し ます。
会社のセキ ュ リ テ ィ に関す る 考慮事項で、開発
プ ロ セ ス と 分離す る 手順で ア セ ン ブ リ への署
名が必要な場合は、 こ のチ ェ ッ ク ボ ッ ク ス を
オ ン に し ま す。 こ のチ ェ ッ ク ボ ッ ク ス を オ ン
にす る と 、 プ ロ ジ ェ ク ト は実行 さ れず、 デバ ッ
グ で き ま せ ん。 た だ し 、 厳 密 な 名 前 ツ ー ル
Sn.exe (.NET Framework SDK で) を 使用す る
際、 -Vr オプシ ョ ン を指定 し て、 開発時の検証
を ス キ ッ プで き ます。
PowerBuilder 11.5 Windows
13
.NET タ ーゲ ッ ト の機能拡張
[.NET アセ ン ブ リ ] グルー
プ ボ ッ ク スの フ ィ ール ド
AllowPartiallyTrustedCaller
Attribute 属性を ア セ ン ブ リ
に付け ます。
(.NET Web サービ スお よ び
.NET ア セ ン ブ リ プ ロ ジ ェ
ク ト のみ)
説明
デフ ォ ル ト では、厳密な名前のアセ ンブ リ は部
分信頼 コ ー ド では使用で き ず、完全信頼を付与
さ れた その他の ア セ ン ブ リ でのみ呼び出せ ま
す。 ただ し 、 こ のチ ェ ッ ク ボ ッ ク ス を オ ン に
し て、厳密な名前のアセ ンブ リ が部分信頼コ ー
ド で呼び出せ る よ う にす る こ と はで き ます。
[署名] タ ブには、 ス マー ト ク ラ イ ア ン ト アプ リ ケーシ ョ ン で発行す
る 証明書フ ァ イ ルを選択す る ための、その他の フ ィ ール ド も あ り ます。
[イ ン テ リ ジ ェ ン ト 更新] グループ ボ ッ ク ス は、 PowerBuilder の以前の
リ リ ー ス の Windows フ ォ ーム プ ロ ジ ェ ク ト の [発行] タ ブに あ っ た
[証明書] グループ ボ ッ ク ス を置換 し ます。 プ ロ ジ ェ ク ト ペ イ ン タ の
[全般] タ ブで、 [ス マー ト ク ラ イ ア ン ト ア プ リ ケーシ ョ ン と し て発
行] チ ェ ッ ク ボ ッ ク ス を オ ン に し た場合、 .NET Windows フ ォ ーム プ
ロ ジ ェ ク ト では使用可能にな り ます。 ま た、 .NET Web フ ォ ーム ま たは
.NET コ ン ポーネ ン ト プ ロ ジ ェ ク ト (Web サービ スお よ び .NET アセ ン
ブ リ プ ロ ジ ェ ク ト ) の [署名] タ ブには表示 さ れません。
[イ ン テ リ ジ ェ ン ト 更新] グループ ボ ッ ク ス には、 以下の フ ィ ール ド
があ り ます。
[イ ン テ リ ジ ェ ン ト 更新] の
フ ィ ール ド
マニ フ ェ ス ト へ署名
ス ト アか ら 選択
14
新機能
説明
こ のチ ェ ッ ク ボ ッ ク ス を オンに し て、 [ス ト ア
か ら 選択] ボ タ ンお よ び [フ ァ イルから選択]
ボ タ ン を有効に し ます。 ボ タ ン を使用 し て、 証
明書 ス ト ア ま たは フ ァ イ ル シ ス テ ム か ら 証明
書を選択 し ます。 有効な証明書を選択す る と 、
その詳細はチ ェ ッ ク ボ ッ ク ス の下のマルチ ラ
イ ン エデ ィ ッ ト ボ ッ ク ス に表示 さ れます。 証
明書を指定 し ない と 、自動的にテ ス ト 証明書が
ア タ ッ チ さ れます。テ ス ト 証明書は開発用にの
み使用 し て く だ さ い。
こ のボ タ ン を ク リ ッ ク し て、ロ ーカル証明書ス
ト アで使用で き る 証明書を表示 し ます。証明書
の選択 ダ イ ア ロ グ ボ ッ ク ス で証明書 を 選択
し 、 そ の詳細 を 表示す る 場合は [証明書の表
示] を ク リ ッ ク し て [OK] を ク リ ッ ク し ます。
.NET タ ーゲ ッ ト の機能拡張
[イ ン テ リ ジ ェ ン ト 更新] の
フ ィ ール ド
説明
フ ァ イ ルか ら 選択
こ のボ タ ン を ク リ ッ ク し て、 ロ ーカル フ ァ イ
ル シ ス テ ム で使用で き る 証明書 を 表示 し ま
す。 フ ァ イ ルの選択 ダ イ ア ロ グ ボ ッ ク ス で
.snk ま たは .pfx 拡張子を持つ証明書を選択 し 、
[開 く ] を ク リ ッ ク し ます。
エ ラ ー メ ッ セージ
[.NET アセ ン ブ リ ] ま たは [イ ン テ リ ジ ェ ン ト 更新] グループ ボ ッ ク
ス で厳密な名前のキーフ ァ イ ルを選択 し 、 そのキーフ ァ イ ルが無効な
場合、 そのキーフ ァ イ ルが無効であ る こ と を示す メ ッ セージ ボ ッ ク ス
が表示 さ れ ます。 選択す る キーフ ァ イ ルがパ ス ワ ー ド で保護 さ れてい
る 場合、 キーフ ァ イ ルのパ ス ワ ー ド を入力す る ためのプ ロ ン プ ト が表
示 さ れ ます。 正 し く ないパ ス ワ ー ド を入力す る と 、 入力 し たパ ス ワ ー
ド が無効であ る こ と を知 ら せ る メ ッ セージ ボ ッ ク ス が表示 さ れます。
リ モー ト 配布用に追加 さ れたサポー ト (Vista と IIS 7)
PowerBuilder 11.5 .NET タ ーゲ ッ ト では、 開発 コ ン ピ ュ ー タ に IIS を イ
ン ス ト ールす る 必要があ り ません。 ま た、 .NET タ ーゲ ッ ト の リ モー ト
配布が機能拡張 さ れ ま し た。 リ モー ト コ ン ピ ュ ー タ に直接配布す る 場
合、 OS や IIS のバージ ョ ン な ど、 配布 コ ン ピ ュ ー タ に関す る シ ス テ ム
情報は Windows Management Instrumentation (WMI) イ ン タ フ ェース経
由で PowerBuilder に渡 さ れ ます。
MSI セ ッ ト ア ッ プ フ ァ イ ルを配布 し 、 配布 コ ン ピ ュ ー タ でそのセ ッ ト
ア ッ プ フ ァ イ ルを実行す る 場合、 PowerBuilder は Windows API を使用
し て、その コ ン ピ ュ ー タ の OS お よ び IIS のバージ ョ ンに関す る 情報を
取得で き ます。
Windows Vista または
Windows 2008 と の相
互配布
PowerBuilder を Windows Vista ま たは Windows 2008 上で標準ユーザ ア
カ ウ ン ト で実行 し 、Web フ ォ ーム ま たは Web サービ ス プ ロ ジ ェ ク ト を
配布 し よ う と す る と 、 ユーザ ア カ ウ ン ト 制御 (UAC) ダ イ ア ロ グ ボ ッ
ク ス が表示 さ れます。 こ のダ イ ア ロ グ ボ ッ ク ス で配布のために権限を
昇格で き ます。
.NET タ ーゲ ッ ト を リ モー ト の Windows Vista ま たは Windows 2008 コ ン
ピ ュ ー タ に配布す る 際、 Windows フ ァ イ ア ウ ォ ール、 UAC、 ま た は
Distributed Component Object Model (DCOM) の設定を変更す る 必要が
あ る 場合があ り ます。
PowerBuilder 11.5 Windows
15
.NET タ ーゲ ッ ト の機能拡張
設定対象
Windows フ ァ イ ア
ウ ォール
UAC(PowerBuilder を
組み込みの管理者 ア
カ ウ ン ト で実行 し て
いない場合)
DCOM
必要な変更
WMI、 フ ァ イ ル と プ リ ン タ の共有で例外を有効に し
ます。
開発お よ び配布 コ ン ピ ュ ー タ が同 じ ド メ イ ン にあ る
場合、 ロ ーカルの管理者グループにあ る ド メ イ ン ア
カ ウ ン ト を使用 し て リ モー ト コ ン ピ ュ ー タ に接続 し
ま す。 こ れで、 UAC ア ク セ ス ト ー ク ン フ ィ ル タ リ
ン グは ロ ーカルの管理者グループ内の ド メ イ ン ア カ
ウ ン ト に影響を与え ません。 UAC フ ィ ル タ リ ン グが
あ る ため、 リ モー ト コ ン ピ ュ ー タ では ロ ーカルの非
ド メ イ ン ア カ ウ ン ト は、 それが管理者グループのア
カ ウ ン ト であ っ て も 使用 し ないで く だ さ い。
開発 ま たは配布 コ ン ピ ュ ー タ が同 じ ワ ー ク グループ
にあ る 場合、 UAC フ ィ ル タ リ ン グは、 管理者グルー
プのア カ ウ ン ト であ っ て も リ モー ト コ ン ピ ュ ー タ へ
の接続に影響を与え ま す。 唯一の例外は、 リ モー ト
コ ン ピ ュ ー タ の ネ イ テ ィ ブ管理者 ア カ ウ ン ト です
が、 セ キ ュ リ テ ィ の問題があ る ため、 こ のア カ ウ ン
ト は使用す る べ き ではあ り ま せん。 その代わ り 、 リ
モー ト コ ン ピ ュ ー タ の UAC を オ フ に し て、 使用す
る ア カ ウ ン ト に リ モー ト DCOM ア ク セ ス 権が な い
場合は、 それ ら の権限を明示的にそのア カ ウ ン ト に
付与す る 必要があ り ます。
リ モー ト コ ン ピ ュ ー タ の ロ ーカル管理者グループの
非 ド メ イ ン ユーザ ア カ ウ ン ト が リ モー ト コ ン
ピ ュ ー タ の接続に使用 さ れ る ア カ ウ ン ト タ イ プの場
合は、 こ のア カ ウ ン ト に リ モー ト DCOM ア ク セ ス、
ア ク テ ィ ブ化、 お よ び起動の権限を付与 し ます。
IIS 7 配布の機能拡張
PowerBuilder 11.5 Web フ ォ ーム ま たは Web サービ ス プ ロ ジ ェ ク ト か ら
の ロ ーカル ま たは リ モー ト 配布では、 IIS 7 サーバに配布で き ます。 こ
れは、 IIS 6 と の互換性はあ り ません。
.NET タ ーゲ ッ ト の共有オブ ジ ェ ク ト のサポー ト
PowerBuilder 11.5 は、.NET Web フ ォームお よ び Windows フ ォーム タ ー
ゲ ッ ト の共有オブジ ェ ク ト を サポー ト し ます。 同 じ 共有オブジ ェ ク ト
の PowerScript 関数を、 標準 PowerBuilder タ ーゲ ッ ト で使用す る .NET
タ ーゲ ッ ト で使用で き ます。 以下の こ と が可能です。
16
新機能
.NET タ ーゲ ッ ト の機能拡張
•
SharedObjectRegister 関数を使用 し て、 非ビ ジ ュ アル オブジ ェ ク ト
を登録 し 、 それを共有す る
•
SharedObjectDirectory 関数を 使用し て、共有の登録を 行っ たオブジェ
ク ト のリ ス ト を 取得する
•
SharedObjectGet 関数を使用 し て、 共有オブジ ェ ク ト イ ン ス タ ン ス
の参照を取得す る
•
共有オブジ ェ ク ト 内で関数を呼び出す
•
SharedObjectUnregister 関数を使用 し て、 以前に共有オブジ ェ ク ト
と し て登録 さ れていたユーザ オブジ ェ ク ト の登録を解除す る
•
共有オブジ ェ ク ト 内で変数を使用す る
各共有オブジ ェ ク ト は、 共有変数の独自の ロ ーカル コ ピーを持っ
てい ます。
PowerScript 共有オブ ジ ェ ク ト 関数は .NET 環境で も 使用で き ま すが、
こ れ ら の関数 を使用す る PowerBuilder .NET プ ロ ジ ェ ク ト を配布す る
前に、 以下の点を考慮す る 必要があ り ます。
•
共有オブジ ェ ク ト は、 SQLCA グ ロ ーバル ト ラ ンザ ク シ ョ ン オブ
ジ ェ ク ト を サポー ト で き ない
各共有オブジ ェ ク ト は、 独自の ト ラ ンザ ク シ ョ ン オブジ ェ ク ト イ
ン ス タ ン ス を使用す る 必要が あ り ま す。 通常、 共有オブジ ェ ク ト
の Constructor イ ベン ト で ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト イ ン ス
タ ン ス を初期化 し て接続 し 、 Destructor イ ベン ト で共有オブジ ェ ク
ト か ら 切断 し ます。
•
.NET 環境に配布す る 共有オブジ ェ ク ト では、 配列宣言を使用で き
ない
•
共有オブジ ェ ク ト に対す る ポ ス ト 呼び出 し のデー タ は、 明示的な
ポ ス ト バ ッ ク が発行 さ れない限 り 表示 さ れない場合があ る
メ イ ン ス レ ッ ド の実行が完了す る と 、 UI が リ フ レ ッ シ ュ さ れ、 共
有オブジ ェ ク ト を終了す る よ う にポ ス ト し た呼び出 し 内の ワ ーカ
ス レ ッ ド を待機 し ません。 ワ ーカ ス レ ッ ド がデー タ ウ ィ ン ド ウ に
デー タ 行を挿入す る 場合、 UI は メ イ ン ス レ ッ ド に よ っ てすでに リ
フ レ ッ シ ュ さ れてお り 、 次に UI が リ フ レ ッ シ ュ さ れ る ま で新 し い
行が表示 さ れない こ と があ り ます。
PowerBuilder 11.5 Windows
17
言語の相互運用性の機能拡張
言語の相互運用性の機能拡張
.NET プ リ ミ テ ィ ブ型
および カ タ ログ型にお
ける関数呼び出 し のサ
ポー ト
PowerBuilder 11.5 は、 .NET プ リ ミ テ ィ ブ型お よ びカ タ ロ グ型で呼び出
す関数をサポー ト し ます。 関数呼び出 し は、 .NET タ ーゲ ッ ト の条件 コ
ンパ イ ル ブ ロ ッ ク 内で行 う 必要があ り ます。
.NET
プ リ ミ テ ィ ブ 型 で 関 数 呼 び 出 し を サ ポ ー ト す る た め に、
PowerBuilder .NET コ ンパ イ ラ (pb2cs) は こ れ ら のプ リ ミ テ ィ ブ型の機
能 を対応す る PowerBuilder のプ リ ミ テ ィ ブ型の機能 と マージ し ま す。
こ れは、.NET プ リ ミ テ ィ ブ型 と 対応す る PowerBuilder プ リ ミ テ ィ ブ型
を同様の様式で使用で き る こ と を意味 し ます。 次の例は、 同 じ ToString
関数呼び出 し を .NET の System.Int32 デー タ 型 と PowerScript の long
デー タ 型の両方で行っ た も のです。
System.Int32 i1
long i2
i1.ToString ()
i2.ToString ()
プ ラ ッ ト フ ォ ーム固有のプ リ ミ テ ィ ブ型に対する例外
System.IntPtr お よ び SystemUIntPtr プ リ ミ テ ィ ブ型の場合、 PowerBuilder
には こ れに正確に対応す る 型がないため、 常に long デー タ 型 と し て処
理 さ れ ま す。 こ れ ら の .NET プ リ ミ テ ィ ブ型での関数の呼び出 し ま た
はプ ロ パテ ィ の変更は、 PowerBuilder での コ ンパ イ ル エ ラ ーの原因に
な り ます。
.NET プ リ ミ テ ィ ブ デー タ 型お よ び PowerScript プ リ ミ テ ィ ブ デー タ 型
の対照表については、 『アプ リ ケーシ ョ ン と コ ン ポーネ ン ト の .NET へ
の配布』 マニ ュ アルの 「PowerScript での .NET ク ラ ス 参照」 の章を参
照 し て く だ さ い。
関数呼び出 し は、PowerBuilder .NET タ ーゲ ッ ト に イ ン ポー ト す る .NET
カ タ ロ グ型で も サポー ト さ れ ま す。 た と えば、 次の よ う に .NET ア セ
ン ブ リ で .NET カ タ ロ グ型を定義す る と し ます。
Public enum TimeOfDay
{ 
Morning = 0,
AfterNoon,
Evening
}
PowerBuilder では、 .NET TimeOfDay カ タ ロ グ 型 を タ ーゲ ッ ト に イ ン
ポー ト し た後で、 ToString メ ソ ッ ド を呼び出す こ と がで き ます。
#if defined PBDOTNET then
18
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
ns1.ns2.TimeOfDay daytime
daytime = ns1.ns2.TimeOfDay.Morning!
daytime.ToString () 
#end if
イ ン ス タ ン ス参照を使
用 し た静的 .NET ク ラ
ス メ ンバへのア ク セ
ス
PowerBuilder 11.5 では、 イ ン ス タ ン ス参照を使用 し て .NET ク ラ ス の静
的 メ ンバにア ク セ ス で き ます。 次は、 System.Web.HttpContext ク ラ ス の
静的 メ ンバに対 し て使用で き る イ ン ス タ ン ス参照の例です。
string s
#if defined PBDOTNET then
//OLD WAY
//s=System.Web.HttpContext.Current.ToString ()
//NEW WAY
System.Web.HttpContext context 
context = create System.Web.HttpContext
s = context.Current.ToString () 
#end if
デー タ ベース イ ン タ フ ェ ースの機能拡張
PowerBuilder 11.5 では、 以下のデー タ ベース イ ン タ フ ェース が拡張 さ
れ ま し た。
•
Oracle 11g のネ イ テ ィ ブ ド ラ イ バ サポー ト
•
MS SQL Server 2008 のネ イ テ ィ ブ ド ラ イ バ サポー ト
Oracle 11g のネ イ テ ィ ブ ド ラ イバ サポー ト
PowerBuilder 11.5 セ ッ ト ア ッ プ プ ロ グ ラ ムは、オプシ ョ ン で Oracle 11g
接続用の 「ORA」 デー タ ベース ド ラ イ バを イ ン ス ト ール し ます。 こ の
ド ラ イ バは、 セ ッ シ ョ ンお よ び接続プー リ ン グ も サポー ト し ます。
詳細については、 以下を参照 し て く だ さ い。
•
セ ッ シ ョ ンお よ び接続プー リ ン グのサポー ト
•
最近のその他の Oracle 機能に対す る ORA ド ラ イ バ サポー ト
•
ORA ド ラ イ バに関係な く サポー ト さ れ る Oracle 機能
PowerBuilder 11.5 Windows
19
デー タ ベース イ ン タ フ ェ ースの機能拡張
•
ORA ド ラ イ バに対す る DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス の
変更点
セ ッ シ ョ ンおよび接続プー リ ン グのサポー ト
PowerBuilder アプ リ ケーシ ョ ン の Oracle ク ラ イ ア ン ト イ ン タ フ ェース
(OCI) プー リ ン グは、 最初に Oracle サーバに接続 し た と き に作成 さ れ
ま す。 プー リ ン グは、 DBParm パ ラ メ ー タ の SQLCA.ServerName お よ
び NLS_Charset にそれぞれ渡 さ れ る サーバ名 と 文字セ ッ ト で識別 さ れ
ます。 2 つの Oracle 接続が同 じ Oracle サーバ と 確立 さ れ、 それぞれ異
な る 文字セ ッ ト を使用す る 場合、 こ れ ら の接続は異な る 接続プール ま
たはセ ッ シ ョ ン プールに存在す る 必要があ り ます。 プー リ ン グ関連の
すべての DBParm パ ラ メ ー タ は、 最初のデー タ ベース接続の前に設定
す る 必要があ り ます。
セ ッ シ ョ ン プー リ ン
グ
セ ッ シ ョ ン プー リ ン グ と は、 アプ リ ケーシ ョ ン がデー タ ベース に一連
の ス テー ト レ ス セ ッ シ ョ ン を 作成 し 、 保持す る こ と です。 こ れ ら の
セ ッ シ ョ ンは、 要求に応 じ て ク ラ イ ア ン ト に渡 さ れ ます。 使用で き る
セ ッ シ ョ ン がない場合、 新 し いセ ッ シ ョ ン が作成 さ れ ます。 ク ラ イ ア
ン ト がセ ッ シ ョ ン を終了す る と 、 ク ラ イ ア ン ト はそれを プールに解放
し ます。 セ ッ シ ョ ン プー リ ン グに よ り 、 プールのセ ッ シ ョ ン数は動的
に増加で き ます。
セ ッ シ ョ ン プー リ ン グは、OS ア カ ウ ン ト を使用す る 外部認証をサポー
ト し ません。 既存のセ ッ シ ョ ン プールを使用す る デー タ ベース接続に
ロ グ イ ン ID が指定 さ れない場合は、 接続にセ ッ シ ョ ン プー リ ン グ作
成者の ロ グ イ ン ID が使用 さ れ ます。
接続プー リ ング
PowerBuilder で Oracle DBMS バージ ョ ン 9.x お よ び 10.x に接続す る た
めに使用す る O90 お よ び O10 デー タ ベース ド ラ イ バは、DBParm パ ラ
メ ー タ CNNPool に よ る 接続プー リ ン グ をサポー ト し ます。下位互換性
のために、 こ のパ ラ メ ー タ は Oracle 11g で使用す る ORA ド ラ イ バで も
サポー ト さ れ ます。 ただ し 、 こ の ド ラ イ バで Pooling パ ラ メ ー タ が使用
さ れ る と 、 CNNPool パ ラ メ ー タ は無視 さ れます。
使用する プー リ ングの
タ イ プの決定
次の表は、 各状況で選択すべ き プー リ ン グについて説明 し てい ます。
選択
セ ッ シ ョ ン プー リ
ング
20
新機能
デー タ ベース セ ッ シ ョ ンの状況
ス テー ト レ ス (中間層ス レ ッ ド で再使用可能) で、バ ッ
ク エ ン ド サーバ プ ロ セ ス の数がデー タ ベー ス ス ケー
リ ン グの問題を引 き 起 こ す可能性があ る 場合。
デー タ ベース イ ン タ フ ェ ースの機能拡張
選択
接続プー リ ン グ
プー リ ン グ な し
デー タ ベース セ ッ シ ョ ンの状況
ス テー ト フル (中間層ス レ ッ ド で再使用不可) で、バ ッ
ク エ ン ド サーバ プ ロ セ ス の数がデー タ ベー ス ス ケー
リ ン グの問題を引 き 起 こ す可能性があ る 場合。 物理接
続お よ びバ ッ ク エ ン ド サーバ プ ロ セ ス の数は、 接続
プー リ ン グ を使用す る こ と で削減 さ れます。 こ のため、
同 じ バ ッ ク エ ン ド サーバ構成で、 よ り 多 く のデー タ
ベース セ ッ シ ョ ン を利用で き ます。
ス テー ト フル (中間層ス レ ッ ド で再利用不可) で、バ ッ
ク エ ン ド サ ーバ プ ロ セ ス の数はデー タ ベー ス の ス
ケー リ ン グの問題を引 き 起 こ すほ ど には大 き く な ら な
い場合。
EAServer コ ン ポーネ ン ト と MTS コ ン ポーネ ン ト は、
Oracle デー タ ベース で ど ち ら の タ イ プのプー リ ン グ も
サポー ト し ません。
ロー ド バラ ン シ ング
Oracle Real Application Clusters (RAC) デー タ ベー ス オプ シ ョ ン に よ
り 、 1 つのデー タ ベース をデー タ ベース サーバの複数の ノ ー ド 上の複
数の イ ン ス タ ン ス で ホ ス ト で き ます。 こ れに よ り 、 デー タ ベース に高
可用性 と フ ェ イ ルオーバ機能が付加 さ れます。
作業のバ ラ ン シ ン グ要求は、 接続時 と 実
行時の 2 回、 異な る タ イ ミ ン グで発生 し ます。 接続時の ロ ー ド バ ラ ン
シ ン グは、 セ ッ シ ョ ン がアプ リ ケーシ ョ ン に よ っ て最初に作成 さ れた
と き に発生 し ま す。 こ れに よ り 、 プールの一部で あ る セ ッ シ ョ ン は、
RAC イ ン ス タ ン ス 全体に う ま く 分散 さ れ、 各 イ ン ス タ ン ス 上のセ ッ
シ ョ ンは作業を実行す る 機会を得ます。
接続時のロー ド バラ ン シ ング
1 つの イ ン ス タ ン ス のみでサービ ス をサポー ト す る セ ッ シ ョ ン プール
の場合、そのプール内で最初に使用可能なセ ッ シ ョ ンが適切です。プー
ルが複数の イ ン ス タ ン ス に関わ る サービ ス を サポー ト す る 場合、 作業
要求は イ ン ス タ ン ス全体に分散 さ れ る 必要があ る ため、 よ り 多 く の要
求が容量の よ り 大 き い イ ン ス タ ン ス ま たは よ り 優れたサービ ス を提供
す る イ ン ス タ ン ス に割 り 振 ら れ ます。
セ ッ シ ョ ン プール内で最 も 作業効率
の優れたセ ッ シ ョ ン に作業要求を割 り 振 る ために、 実行時接続の ロ ー
ド バ ラ ン シ ン グ も 使用で き ます。 実行時接続 ロ ー ド バ ラ ン シ ン グは、
Oracle 11.1 以降の ク ラ イ ア ン ト が OCI セ ッ シ ョ ン プー リ ン グ を使用 し
て リ リ ース 10.2 以降の Oracle サーバに接続 さ れてい る 場合、デフ ォ ル
ト で有効です。
実行時接続のロー ド バラ ン シ ング
PowerBuilder 11.5 Windows
21
デー タ ベース イ ン タ フ ェ ースの機能拡張
DBParm パ ラ メ ー タ 、 RTConnBalancing は実行時接続 ロ ー ド バ ラ ン シ
ン グ機能を サポー ト し ます。 こ れは、 Pooling パ ラ メ ー タ がセ ッ シ ョ ン
プー リ ン グに設定 さ れてい る 場合のみ使用可能です。 こ のパ ラ メ ー タ
は接続前にのみ設定で き ます。 プー リ ン グ タ イ プにセ ッ シ ョ ン プー リ
ン グ を選択す る 場合、 RTConnBalancing 値はデフ ォ ル ト で true です。
最近のその他の Oracle 機能に対する ORA ド ラ イバ サポー ト
ク ラ イ ア ン ト 結果
キャ ッ シュ
PowerBuilder ORA ド ラ イ バは、 Oracle ク ラ イ ア ン ト キ ャ ッ シ ュ を サ
ポー ト し ますが、 こ の機能は、 Oracle サーバお よ び ク ラ イ ア ン ト の環
境設定に依存 し ます。 Oracle ク ラ イ ア ン ト キ ャ ッ シ ュ は、 init.ora ま た
は sqlnet.ora フ ァ イ ルで設定で き ま す。 キ ャ ッ シ ュ さ れ た ク エ リ は、
「/*+ result_cache */」を注釈 と し て付けて、結果が ク エ リ 結果キ ャ ッ
シ ュ に格納 さ れてい る こ と を示す ヒ ン ト に し ます。 ク ラ イ ア ン ト 結果
セ ッ ト を キ ャ ッ シ ュ す る に は、 PowerBuilder ア プ リ ケ ー シ ョ ン か ら
StatementCache DBPARM パ ラ メ ー タ に よ っ て OCI ス テ ー ト メ ン ト
キ ャ ッ シ ュ も 有効にす る 必要があ り ます。
ア プ リ ケーシ ョ ン ド
ラ イバ名
OCI アプ リ ケーシ ョ ンは、 独自の名前を選択 し 、 それを診断支援ツー
ル と し て設定で き ます。AppDriverName DPBARM パ ラ メ ー タ を使用 し
て、PowerBuilder ORA イ ン タ フ ェ ース に独自の ク ラ イ ア ン ト ド ラ イ バ
名を設定で き ます。 名前の最大長は 8 文字です。 ク ラ イ ア ン ト ド ラ イ
バ 名 は、 V$SESSION_CONNECT_INFO
ま たは
GV$SESSION_CONNECT_INFO 動的パ フ ォ ーマ ン ス ビ ュ ー ク エ リ で
表示で き ます。
プ ロキシ経由の ク ラ イ
ア ン ト ア ク セス
PowerBuilder ORA ド ラ イ バは、 Oracle 10.2 で導入 さ れたプ ロ キ シ認証
機能をサポー ト し ます。 プ ロ キ シ認証に よ り 、 通常、 エ ン ド ユーザは
中間層 (フ ァ イ ア ウ ォ ールな ど) で認証 さ れ、 次にデー タ ベー ス にプ
ロ キ シ ユーザ と し て ロ グ イ ン し ま す。 デー タ ベー ス に ロ グ イ ン し た
後、 プ ロ キ シ ユーザはエ ン ド ユーザの ID に切 り 替え て、 そのユーザ
に認可 さ れた権限を使用 し て操作を実行で き ます。
こ のプ ロ キ シ接続機能は、ConnectAs DBParm パ ラ メ ー タ に よ っ て利用
で き ます。た と えば、ユーザの ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の LogID
が 「Scott」 で、 ConnectAs DBParm パ ラ メ ー タ を 「John」 に設定す る と 、
OCI ク ラ イ ア ン ト はデー タ ベース にプ ロ キ シ ユーザ (「Scott」) と し て
ロ グ イ ン し てか ら 、 エ ン ド ユーザ ID (「John」) に切 り 替わ り ます。
22
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
接続プー リ ン グ ま たはセ ッ シ ョ ン プー リ ン グ を使用 し てい る 場合、 プ
ロキシ
ユーザ名は接続 ま た は セ ッ シ ョ ン
プー リ ン グ 作成者
(PoolCreator お よ び PoolPwd DBParm パ ラ メ ー タ で指定で き ます) で、
ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の LogID は無視 さ れ ます。 プー リ ン グ
が同種のセ ッ シ ョ ン モー ド に設定 さ れ る 場合、プ ロ キ シ セ ッ シ ョ ンは
作成 さ れ ません。
プー リ ングのないプ ロキシ接続での制限
プ ー リ ン グ の な い プ ロ キ シ 接 続 を 使 用 す る 場 合、 NLS_Charset
DBPARM を 「Local」 ま たは他の非 Unicode 文字セ ッ ト に設定す る 必要
があ り ます。 こ の DBPARM のデフ ォ ル ト 値 「Unicode」 を変更 し ない
場合、Oracle ク ラ イ ア ン ト イ ン タ フ ェース はプ ロ キ シ ク ラ イ ア ン ト 属
性で Unicode 名文字列を受け付けないため、 接続は失敗 し ます。
XMLType デー タ 型の
サポー ト
PowerBuilder ORA ド ラ イ バは、 Oracle 9i で導入 さ れた Oracle XMLType
デー タ 型 を サ ポー ト し ま す。 XMLType デー タ 型は、 PowerBuilder の
String デー タ 型にマ ッ プ さ れ ま すが、 こ のデー タ 型は以下では使用で
き ません。
•
PowerBuilder 埋め込み SQL 文の WHERE 句ま たはデー タ ウ ィ ン ド
ウ オブジ ェ ク ト 内
•
プ ロ シージ ャ ま たは関数のパ ラ メ ー タ 。(PowerBuilder は XMLType
を String デー タ 型 と し てバ イ ン ド し ますが、Oracle では こ の使用法
をサポー ト し ないため)
•
Oracle カー ソ ル ス テー ト メ ン ト で直接選択す る カ ラ ム内
た と えば、 col1 カ ラ ムが XML デー タ 型の場合、 こ のカ ラ ム を以下
の コ ー ド が実行 し よ う と し てい る よ う に、 Oracle カー ソ ルで直接
選択す る こ と はで き ません。
CREATE OR REPLACE Function p_Ora_sp_char_11 return
types.cursortype 
AS 
l_cursor types.cursorType; 
begin 
open l_cursor for select col1 from t_Ora_sp_char_11;
return l_cursor; 
end;
ただ し 、 PowerBuilder ア プ リ ケーシ ョ ン で以下の コ ー ド を 使用 し
て、Oracle カー ソ ル ス テー ト メ ン ト で選択 し た XMLType カ ラ ムの
文字列値を取得す る こ と はで き ます。
CREATE OR REPLACE Function p_Ora_sp_char_11 return
PowerBuilder 11.5 Windows
23
デー タ ベース イ ン タ フ ェ ースの機能拡張
types.cursortype 
AS 
l_cursor types.cursorType;
begin 
open l_cursor for select x.col1.getstringval () from
t_Ora_sp_char_11 x; 
return l_cursor; 
end;
ORA ド ラ イバに関係な く サポー ト さ れる Oracle 機能
次の表に示 さ れ る Oracle 機能は、 DPBARM パ ラ メ ー タ ま たは ORA ド
ラ イ バでは有効ではあ り ま せんが、 PowerBuilder 11.5 アプ リ ケーシ ョ
ンは こ れ ら の機能をサポー ト し ます。
サポー ト さ れる機能
デー タ ベー ス常駐接
続 プ ー リ ン グ
(DRCP)
説明
一般的 な Web ア プ リ ケ ーシ ョ ン で使用す る た め の
デー タ ベース サーバの接続プールを提供 し ます (ア
プ リ ケーシ ョ ン はデー タ ベー ス 接続 を確立 し 、 比較
的短時間作業 し てか ら 接続を解除す る こ と を想定 し
ます)。 アプ リ ケーシ ョ ンが こ のプールを利用す る に
は、 EZ Connect 文字列で POOLED を指定す る か、 ま
たは TNS 接続文字列で ( SERVER=POOLED ) を指定
し ます。
こ の 機能 を 使用す る 前 に、 Oracle DBA を 構成 し 、
DRCP を起動す る 必要があ り ます。
OCI の障害診断能力 こ の イ ン フ ラ ス ト ラ ク チ ャ は、 デー タ や メ タ デー タ
の破損、 ま たはデー タ ベース コ ー ド のバグ な ど に よ
る 問題を診断す る のに役立ち ます。Oracle は、 イ ン シ
デン ト 番号 と 診断情報をデー タ ベー ス の外部の自動
診断 リ ポジ ト リ (ADR) に格納 し ます。
Oracle Call Interface 認証の前にデー タ ベース バージ ョ ン の文字列が流出
(OCI) セキ ュ リ テ ィ す る のを防ぎ、 未承認のア ク セ ス が発生 し た場合や、
の機能拡張
ユーザ ア ク シ ョ ンが監査 さ れた際に警告を送信 し ま
す。
ORA ド ラ イバに対する DB プ ロ フ ァ イル ダ イ ア ログ ボ ッ ク スの変更点
プー リ ング パラ メ ー
タ
24
Oracle 11g 接続の DB プ ロ フ ァ イ ル ダ イ ア ロ グ ボ ッ ク ス には、[プー リ
ン グ] タ ブがあ り 、 こ こ で、 以下のプー リ ン グ パ ラ メ ー タ を選択で き
ます。
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
プー リ ング パラ メ ー
タ
プー リ ン グ タ イ プ
実行時 の接続 ロ ー ド
バラ ンシング
Homogeneous
セッ
シ ョ ン プー リ ン グ
最小セ ッ シ ョ ン数
最大セ ッ シ ョ ン数
インク リ メ ン ト
ユーザ名
パ ス ワー ド
Oracle 11g サポー ト
用のその他のパラ メ ー
タ
説明
セ ッ シ ョ ンプー リ ン グ、 接続プー リ ン グ、 ま たはな
し (デフ ォ ル ト ) を選択で き ま す。 Pooling DBParm
を設定 し ます。
こ の チ ェ ッ ク ボ ッ ク ス はデ フ ォ ル ト で オ ン です。
プー リ ン グ タ イ プで接続プー リ ン グ ま たは、 な し を
選択する と 無視 さ れます。 RTConnBalancing DBParm
を設定 し ます。
こ のチ ェ ッ ク ボ ッ ク ス はデフ ォ ル ト でオ フ です。 ま
た、 セ ッ シ ョ ン プー リ ン グに対 し てのみ有効です。
オ ン の 場合、 プ ー ル内 の すべ て の セ ッ シ ョ ン は、
PoolCreator お よ び PoolPwd DBParm パ ラ メ ー タ が指
定 さ れ る と 、 こ れ ら に よ っ て認証 さ れ ます。 こ れ以
降の接続では、 ユーザ名 と パ ス ワ ー ド の要求が無視
さ れます。 Homogeneous セ ッ シ ョ ン モー ド では、 プ
ロ キ シ セ ッ シ ョ ン を 確 立 で き ま せ ん。
SessionHomogeneous DBParm を設定 し ます。
デー タ ベー ス 接続セ ッ シ ョ ン の最小数 を 示す整数
で、 デフ ォ ル ト の値は 1 です。 CSMin DBParm を設
定 し ま す。 こ の 値は、 SessionHomogeneous DBParm
が false に設定 さ れ る と 無視 さ れます。
デー タ ベー ス 接続セ ッ シ ョ ン の最大数 を 示す整数
で、 デフ ォ ル ト の値は 100 です。 CSMax DBParm を
設定 し ます。
セ ッ シ ョ ン ご と のデー タ ベース接続の増分を示す整
数で、 デフ ォ ル ト の値は 1 です。 CSIncr DBParm を
設定 し ます。 こ の値は、 SessionHomogeneous DBParm
が false に設定 さ れ る と 無視 さ れます。
プールが ま だ作成 さ れていない と き に、 接続プール
ま た はセ ッ シ ョ ン プール を 作成す る た めに使用 さ
れ る ユーザ名。デー タ ベース接続の前に、PoolCreator
DBParm に ユ ー ザ 名 を 示す文字列 を 設定 し ま す。
PoolCreator DBParm に値を指定 し ない と 、 ト ラ ンザ
ク シ ョ ン オブジ ェ ク ト の LogID お よ び LogPass プ ロ
パテ ィ がプー リ ン グの作成に使用 さ れます。
プールが ま だ作成 さ れていない と き に、 接続プール
ま た はセ ッ シ ョ ン プール を 作成す る た めに使用 さ
れ る パ ス ワ ー ド 。PoolPwd DBParm にプール作成者の
パ ス ワ ー ド を示す文字列を設定 し ます。
プー リ ン グ パ ラ メ ー タ 以外に も 、 Oracle 11g デー タ ベー ス 接続 を サ
ポー ト す る デー タ ベース パ ラ メ ー タ があ り ます。 こ れ ら のパ ラ メ ー タ
を次の表に示 し ます。
PowerBuilder 11.5 Windows
25
デー タ ベース イ ン タ フ ェ ースの機能拡張
Oracle 11g サポー ト 用
のその他のパラ メ ー タ
アプ リ ケーシ ョ ン ド ラ
イ バ名 (ORA ド ラ イ バ
のみで使用可能)
キャ ッシュでき る ス
テー ト メ ン ト 数 (O10 お
よ び ORA ド ラ イ バでサ
ポー ト )
[DB プ ロ フ ァ イ
ル設定] タ ブ ペー
ジ
システム
ト ラ ンザク シ ョ
ン
接続名 (使用可能なすべ 接続
て の Oracle ド ラ イ バ で
サ ポ ー ト さ れ ま す が、
ORA ド ラ イ バのエ ン ド
ユ ー ザ名 の エ ン ト リ に
限 り ます)
説明
診断用に独自の ク ラ イ ア ン ト
ド ラ イ バ名 を 設定で き ま す。
AppDriverName DPBARM を
設定 し ます。
各セ ッ シ ョ ン でキ ャ ッ シ ュ で
き る ス テー ト メ ン ト の数 (デ
フ ォ ル ト は 0)。 Oracle ク ラ イ
ア ン ト キ ャ ッ シ ュ で 使用す
る 場合は 0 以外の値に設定す
る 必 要 が あ り ま す。
StatementCache DBParm を 設
定 し ます。
編集可能 な ド ロ ッ プ ダ ウ ン
リ ス ト で、 プ ロ キ シ認証を使
用 し て い る 場合はエ ン ド
ユーザを入力で き ます。ま た、
DEFAULT、SYSOPER、ま たは
SYSDBA ユ ー ザ 名 を 選択 で
き ます。ConnectAs DBParm を
設 定 し ま す。 ConnectAs
DBParm を SYSDBA ま た は
SYSOPER に設定 し て い る 場
合、 接 続 プ ー リ ン グ ま た は
セ ッ シ ョ ン プー リ ン グ を 使
用で き ません。
MS SQL Server 2008 のネ イ テ ィ ブ ド ラ イバ サポー ト
SQL Server 2008 デー タ ベースへの接続に関す る PowerBuilder のサポー
ト には、 新 し いデー タ ベー ス パ ラ メ ー タ のサポー ト 以外に、 新 し い
SQL Server デー タ 型の サ ポ ー ト も あ り ま す。 PowerBuilder か ら SQL
Server 2008 に接続す る には、 SNC 10.0 ド ラ イ バを イ ン ス ト ールす る 必
要があ り ます。
詳細については、 以下を参照 し て く だ さ い。
26
•
新 し いデー タ ベース パ ラ メ ー タ
•
SQL Server 2008 での新 し いデー タ 型のサポー ト
•
T-SQL の機能拡張
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
•
サポー ト さ れない SQL Server 2008 機能
新 し いデー タ ベース パラ メ ー タ
Provider パラ メ ー タ
Microsoft SQL Native Client(SNC) イ ン タ フ ェ ース用の Provider DBParm
パ ラ メ ー タ に よ り 、デー タ ベース接続で使用す る SNC バージ ョ ン を選
択で き ます。 こ のパ ラ メ ー タ は、ス ク リ プ ト 内で SQLNCLI (SQL Server
2005 に接続す る SNC 9.0 ド ラ イ バ用) ま たは SQLNCLI10 (SQL Server
2008 に接続す る SNC 10.0 ド ラ イ バ用) に設定で き ます。 ま たは、 SNC
イ ン タ フ ェ ー ス の DB プ ロ フ ァ イ ル セ ッ ト ア ッ プ ダ イ ア ロ グ ボ ッ ク
ス の [接続] タ ブで、 こ れ ら のプ ロ バ イ ダのいずれか を選択で き ます。
プ ロ バ イ ダ を 設 定 ま た は 選 択 し な い 場 合、 デ フ ォ ル ト の 選 択 は
SQLNCLI (SQL Server 2005 用の SNC 9.0) です。 こ れに よ り 、 既存の
SNC イ ン タ フ ェ ース ユーザは、 何 も 修正を加えずに PowerBuilder 11.5
に移行で き ます。 PowerBuilder は、 SQLNCLI プ ロ バ イ ダ と の接続に失
敗す る と 、 SQLNCLI10 プ ロ バ イ ダへの接続を試みます。 ただ し 、 明示
的にプ ロ バ イ ダ を設定 し 、 その接続が失敗す る と 、 エ ラ ー メ ッ セージ
が表示 さ れます。
Failover パラ メ ー タ
FailoverPartner DBParm パ ラ メ ー タ で ミ ラ ー サーバの名前 を 設定で き
ま す。 こ れに よ り 、 フ ェ イ ルオーバ イ ベ ン ト が発生 し て も 、 デー タ
ベース の利用可能性が維持 さ れ ます。ま た、SNC イ ン タ フ ェース の DB
プ ロ フ ァ イ ル セ ッ ト ア ッ プ ダ イ ア ロ グ ボ ッ ク ス の [シ ス テム] タ ブ
で も ミ ラ ー サーバの名前を設定で き ます。
フ ェ イ ルオーバが発生す る と 、 SQL Server への既存の PowerBuilder 接
続は切断 さ れ ます。 SNC ド ラ イ バは既存の接続を解放 し 、 再度確立 し
よ う と し ます。 再接続が成功す る と 、 PowerBuilder は DBNotification イ
ベン ト を起動 し ます。
PowerBuilder が フ ェ イ ルオーバ イ ベン ト を起動す る には、 以下の条件
を満たす必要があ り ます。
•
接続時に FailoverPartner DBParm が指定 さ れ る
•
SQL Server デー タ ベース が ミ ラ ー リ ン グ用に構成 さ れてい る
•
既存の接続が切断 さ れた と き に、PowerBuilder が正常に再接続で き
る
フ ェ イ ルオーバが発生 し た場合
•
PowerBuilder はエ ラ ー コ ー ド (998) を返 し 、 DBNotification イ ベ
ン ト を通知 タ イ プ DBFailover! で起動す る
•
既存のカー ソ ルは使用 さ れず、 閉 じ ら れてい る
PowerBuilder 11.5 Windows
27
デー タ ベース イ ン タ フ ェ ースの機能拡張
•
失敗 し たデー タ ベース操作が再試行で き る
•
コ ミ ッ ト さ れていない ト ラ ン ザ ク シ ョ ン は失われ、 新 し い ト ラ ン
ザ ク シ ョ ン を開始す る 必要があ る
SQL Server 2008 での新 し いデー タ 型のサポー ト
日付 と 時間のデー タ 型
次の表は、 SQL Server 2008 の新 し い日付 と 時間のデー タ 型、 お よ び
マ ッ プ先の PowerScript のデー タ 型を示 し てい ます。
SQL Server のデー タ 型
DATE
TIME
DATETIME2
PowerScript のデー タ 型
Date
Time (小数点以下の秒数に つい て、 SQL Server
デー タ 型では最大 7 桁をサポー ト し てい ますが、
こ れは最大 6 桁ま で し かサポー ト し ません)
DateTime(小数点以下の秒数について、SQL Server
デー タ 型では最大 7 桁をサポー ト し てい ますが、
こ れは最大 6 桁ま で し かサポー ト し ません)
SQL Server 2008 DATETIMEOFFSET デー タ 型は、 PowerBuilder 11.5 で
はサポー ト さ れ ません。
SQL Server 2008 デー タ ベース のテーブル カ ラ ムにマ ッ プす
る 場合、 PowerBuilder には、 デー タ ウ イ ン ド ウ ペ イ ン タ のカ ラ ムのプ
ロ パテ ィ に 「書式」 タ ブ、 デー タ ベース ペ イ ン タ のカ ラ ム仕様ビ ュ ー
に 「Dec」 カ ラ ム が あ り ま す。 こ れ ら の フ ィ ール ド で、 TIME お よ び
DATETIME2 カ ラ ムに必要な精度を示す こ と がで き ます。
精度設定
精度設定はテーブル作成のみで使用 さ れ ます。 よ り 精度の高い値を カ
ラ ム に入力 し て も 、 カ ラ ム 内のデー タ を 取得 ま た は更新 し た と き 、
PowerBuilder は小数点以下の秒数 と し て最大 6 桁ま で し か使用 し ま せ
ん。
Filestream デー タ 型
FILESTREAM デー タ 型に よ り 、 大容量のバ イ ナ リ デー タ を直接 NTFS
フ ァ イ ル シ ス テ ム に格納で き ます。
SQL Server デー タ ベース エ ン ジ ンは、FILESTREAM を Varbinary ( max )
デー タ 型 と し て 導入 し ま す。 PowerBuilder SNC イ ン タ フ ェ ー ス は、
Varbinary ( max ) デー タ 型を BLOB デー タ 型にマ ッ プ し 、SelectBlob ま た
は UpdateBlob SQL 文を使用 し て、 フ ァ イ ル ス ト リ ーム デー タ を取得
ま たは更新 し ます。 カ ラ ムが フ ァ イ ル シ ス テ ム上にデー タ を格納す る
よ う に指定す る には、Varbinary ( max ) カ ラ ム定義に FILESTREAM 属性
を含め る 必要があ り ます。 た と えば、 次の よ う にな り ます。
CREATE TABLE FSTest (
GuidCol1 uniqueidentifier ROWGUIDCOL NOT NULL
28
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
UNIQUE DEFAULT NEWID () ,
IntCol2 int,
varbinaryCol3 varbinary ( max ) FILESTREAM ) ;
PowerScript フ ァ イル ア ク セス関数を FILESTREAM デー タ と 一緒に使用 し
ない
Win32 API 関数を PowerBuilder アプ リ ケーシ ョ ン で直接宣言お よ び使
用 し て FILESTREAM デー タ にア ク セ スす る こ と がで き ます。 ただ し 、
既存の PowerBuilder フ ァ イ ル ア ク セ ス関数は FILESTREAM フ ァ イ ル
に ア ク セ ス す る た め に は 使 用 で き ま せ ん。 Win32 API を 使 用 し た
FILESTREAM デ ー タ へ の ア ク セ ス に つ い て は、 MSDN SQL Server
Developer
Center
Web
サイ ト
http://msdn.microsoft.com/enus/library/bb933877 ( SQL.100 ) .aspx を参照 し て く だ さ い。
PowerBuilder での
CLR デー タ 型の使用
.NET 共通言語 ラ ン タ イ ム (CLR: Common Language Runtime) デー タ 型
の バ イ ナ リ 値 は、 デー タ ベー ス 内 の 他 の カ ラ ム を 更新す る た め に
PowerBuilder アプ リ ケーシ ョ ン で使用で き る Blob 型 と し て SQL Server
デー タ ベース か ら 取得で き ます。 その戻 り 値が PowerBuilder のデー タ
型 と 互換性があ る 場合、 SQL ス ク リ プ ト は SQL Server 側で実行 さ れ る
ため、CLR デー タ 型 メ ソ ッ ド を PowerScript、動的 SQL、埋め込み SQL、
ま たはデー タ ウ ィ ン ド ウ オブジ ェ ク ト で使用で き ます。
CLR デー タ 型は、 PowerScript の文字列に も マ ッ プで き ま すが、 取得
デー タ はバ イ ナ リ デー タ の 16 進文字列表記です。
前述の メ ソ ッ ド を使用 し て、 HierarchyID デー タ 型、 空間デー タ 型、 お
よ びユーザ定義型な ど、 CLR デー タ 型 と し て導入 さ れ る すべてのデー
タ 型を処理で き ます。
HierarchyID デー タ 型
HierarchyID は可変長で、 ノ ー ド を示す値を組織構造の よ う な階層型ツ
リ ーに格納で き る シ ス テ ム デー タ 型です。 こ のデー タ 型の値は、 ツ
リ ー階層内の位置を表 し ます。
ISQL の解説 HierarchyID カ ラ ム は、 ISQL ペ イ ン タ 内 で、 CREATE
TABLE、 SELECT、 UPDATE、 INSERT お よ び DELETE ス テー ト メ ン ト
と 一緒に使用で き ます。 た と えば、 次の よ う にな り ます。
CREATE TABLE Emp (
EmpId int NOT NULL,
EmpName varchar ( 20 ) NOT NULL,
EmpNode hierarchyid NULL ) ;
HierarchyID デー タ を挿入す る ために、 以下で示す よ う に HierarchyID
ま たは HierarchyID デー タ 型に関連付け ら れた メ ソ ッ ド の正規文字列
表現を使用で き ます。
PowerBuilder 11.5 Windows
29
デー タ ベース イ ン タ フ ェ ースの機能拡張
INSERT into Emp VALUES ( 1, 'Scott',
hierarchyid::GetRoot ()) ;
INSERT into Emp VALUES ( 2, 'Tom' , '/1/' ) ;
DECLARE @Manager hierarchyid
SELECT @Manager = hierarchyid::GetRoot () FROM Emp
INSERT into Emp VALUES ( 2, 'Tom',
@Manager.GetDescendant ( NULL,NULL )) ;
DECLARE @Employee hierarchyid
SELECT @Employee = CAST ( '/1/2/3/4/' AS hierarchyid )
INSERT into Emp VALUES ( 2, 'Jim' , @Employee ) ;
HierarchyID カ ラ ムは、 バ イ ナ リ デー タ を持ち、 ISQL ペ イ ン タ の結果
ビ ュ ーにはバ イ ナ リ カ ラ ムが表示 さ れないため、 直接選択す る こ と は
で き ま せ ん。 た だ し 、 HierarchyID の ToString メ ソ ッ ド を 使 用 し て
HierarchyID デー タ を文字列値 と し て取 り 出す こ と はで き ます。 た と え
ば、 次の よ う にな り ます。
Select EmpId, EmpName, EmpNode.ToString () from Emp;
ま た、 デー タ を 取 り 出すた めに、 HierarchyID カ ラ ム で、 GetAncestor、
GetDescendant、 GetLevel、 GetRoot、 IsDescendant、 Parse、 お
よ
び
GetReparentedValue メ ソ ッ ド を 使用す る こ と も で き ま す。 こ れ ら の メ
ソ ッ ド のいずれかが HierarchyID ノ ー ド を返 し た ら 、 ToString を使用 し
てデー タ を文字列に変換 し ます。 た と えば、 次の よ う にな り ます。
Select EmpId, EmpName, EmpNode.GetLevel () from Emp;
Select EmpId, EmpName,
EmpNode.GetAncestor ( 1 ) .ToString () from Emp;
HierarchyID カ ラ ムは、 次の よ う に String 値ま たは HierarchyID 変数を
使用 し て更新で き ます。
Update Emp Set EmpNode = '/1/2/' where EmpId=4;
Delete from Emp where EmpNode = '/1/2/';
PowerScript の解説 SELECT、 INSERT、 UPDATE、 お よ び DELETE 演
算 で は、 埋 め 込み SQL 文内 で HierarchyID カ ラ ム が 使用 で き ま す。
HierarchyID デー タ は、 SelectBlob ス テー ト メ ン ト を使用 し て String ま
たは Binary ( Blob ) デー タ 型 と し て取 り 出せます。
HierarchyID デー タ を取 り 出すために String デー タ 型を使用す る 場合は
ToString メ ソ ッ ド を 使用 し ま す。 そ う で な い と 、 デー タ は バ イ ナ リ
HierarchyID 値の 16 進表記にな り ます。
次の例は、 埋め込み SQL での HierarchyID メ ソ ッ ド の使用方法を示 し
てい ます。
long id
30
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
String
Select
into
from
Select
into
from
hid,name
EmpId, EmpName, EmpNode.ToString ()
:id, :name, :hid
Emp where EmpId=3;
EmpId, EmpName, EmpNode.GetLevel ()
:id, :name, :hid
Emp where EmpId=3;
Blob b
Selectblob EmpNode into :b from Emp where EmpId =2;
デー タ ウ ィ ン ド ウの解説 データ ウ ィ ン ド ウ オブジェ ク ト は、HierarchyID
データ 型を 直接サポート し ま せん。ただし 、HierarchyID は、データ ソ ー
ス SQL 内で ToString メ ソ ッ ド ま たは関連する HierarchyID メ ソ ッ ド を 使
用し て文字列に変換でき ま す。 たと えば、 次のよ う になり ま す。
SELECT EmpId, EmpName, EmpNode.ToString () FROM Emp;
SELECT EmpId, EmpName, EmpNode.GetLevel () FROM Emp;
空間デー タ 型
Microsoft SQL Server 2008 は 2 つの空間デー タ 型、geometry デー タ 型 と
geography デー タ 型を サポー ト し ます。 SQL Server では、 こ れ ら のデー
タ 型は .NET 共通言語 ラ ン タ イ ム (CLR) デー タ 型 と し て実装 さ れてい
ます。
PowerBuilder SNC イ ン タ フ ェース は CLR デー タ 型を処理 し ませんが、
空間デー タ 型を ToString 関数で文字列に変換 し 、 それ ら を PowerScript、
ISQL ペ イ ン タ 、 埋め込み SQL、 お よ びデー タ ウ ィ ン ド ウ オブジ ェ ク
ト で使用す る こ と がで き ます。 こ れは、 HierarchyID デー タ 型の使用法
と 似てい ま す。 SelectBlob SQL 文で も 、 こ れ ら のデー タ 型のバ イ ナ リ
値を取 り 出せます。
geography お よ び geometry デー タ 型は 11 個の異な る デー タ オブジ ェ ク
ト ( イ ン ス タ ン ス型) をサポー ト し ますが、 こ れ ら の型の う ち、 Points、
LineStrings、Polygons、お よ び イ ン ス タ ン ス化可能な GeometryCollection
内のオブジ ェ ク ト (MultiPoints、MultiLineStrings、お よ び MultiPolygons)
の
7
個 の み が イ ン ス タ ン ス 化 可 能 で す。 .STAsText、 STArea、
STGeometryType な ど、 こ れ ら のオブジ ェ ク ト に関連付け ら れた メ ソ ッ
ド を呼び出す こ と で、 こ れ ら をデー タ ベー ス内で作成お よ び処理す る
こ と がで き ます。 た と えば、 次の よ う にな り ます。
CREATE TABLE SpatialTable ( id int IDENTITY ( 1,1 ) ,
GeomCol geometry ) ;
INSERT INTO SpatialTable ( GeomCol ) VALUES (
geometry::STGeomFromText (
'LINESTRING ( 100 100,20 180,180 180 ) ',0 )) ;
select id, GeomCol.ToString () from SpatialTable;
select id, GeomCol.STAsText () ,
PowerBuilder 11.5 Windows
31
デー タ ベース イ ン タ フ ェ ースの機能拡張
GeomCol.STGeometryType () ,
GeomCol.STArea () from SpatialTable;
ユーザ定義型
ユーザ定義型 (UDT) は、 SQL Server に CLR 型 と し て実装 さ れ、 .NET
と 統合 さ れてい ます。Microsoft SQL Server 2008 では UDT の 8 KB の制
限 を 排除 し 、 UDT デー タ のサ イ ズ を 動的に拡張で き る よ う に し ま し
た。
PowerBuilder SNC イ ン タ フ ェ ー ス は UDT デー タ 型を直接サポー ト し
ませんが、 ToString メ ソ ッ ド を使用 し て、 HierarchyId や空間デー タ 型な
ど、他の CLR デー タ 型 と 同 じ 方法で UDT 用のデー タ を取 り 出せます。
ただ し 、 UDT デー タ 型が PowerScript で String デー タ 型にマ ッ プ さ れ
る 場合、 UDT バ イ ナ リ 値は 16 進文字列 と し て取 り 出 さ れ ます。 UDT
か ら バ イ ナ リ 形式 (blob) のデー タ を取得 ま たは更新す る には、 それ
ぞれ SelectBlob ま たは UpdateBlob SQL 文を使用で き ます。
ま た、 PowerBuilder ア プ リ ケ ー シ ョ ン と 互換性の あ る デー タ を 返す
UDT ま たは CLR デー タ 型 (String、 Long、 Decimal な ど) の関連 メ ソ ッ
ド を使用で き ます。
T-SQL の機能拡張
MERGE ス テー ト メ ン
ト
MERGE Transact-SQL 文は、 ソ ース テーブル と の結合結果を基に タ ー
ゲ ッ ト テーブル ま たは ビ ュ ーに INSERT、 UPDATE、 ま たは DELETE
演算を実行 し ます。 MERGE ス テー ト メ ン ト は、 ISQL ペ イ ン タ お よ び
動的 SQL を使用す る PowerScript で使用で き ます。 た と えば、 次の よ
う にな り ます。
String mySQL
mySQL = "MERGE INTO a USING b ON a.keycol = b.keycol " &
+ "WHEN MATCHED THEN "&
+ "UPDATE SET col1 = b.col1,col2 = b.col2 " &
+ "WHEN NOT MATCHED THEN " &
+ "INSERT ( keycol, col1, col2, col3 ) " &
+ "VALUES ( b.keycol, b.col1, b.col2, b.col3 ) " &
+ "WHEN NOT MATCHED BY SOURCE THEN " &
+ "DELETE;"
EXECUTE IMMEDIATE :Mysql;
32
新機能
デー タ ベース イ ン タ フ ェ ースの機能拡張
ISQL で MERGE ス テー ト メ ン ト を使用する
MERGE ス テー ト メ ン ト はセ ミ コ ロ ン で終了 さ せ る 必要が あ り ま す。
デフ ォ ル ト では、 ISQL ペ イ ン タ が SQL の終了文字 と し てセ ミ コ ロ ン
を使用す る ため、 ISQL で MERGE ス テー ト メ ン ト を使用す る には、 終
了文字を コ ロ ン (:)、 ス ラ ッ シ ュ (/)、 ま たはその他の特殊文字に変更
す る 必要があ り ます。
GROUPING SETS
GROUPING SETS は GROUP BY 句の拡張機能で、同 じ ク エ リ 内で複数
のグループ化を定義で き ます。 GROUPING SETS は、 集計 ク エ リ お よ
びレ ポー ト の作成を容易かつ迅速に行い、 1 つの結果セ ッ ト を生成 し
ます。 こ れは、 別々にグループ化 さ れた行に対す る UNION ALL 操作
と 同 じ です。
GROUP BY 句に、 GROUPING SETS、 ROLLUP、 お よ び CUBE 演算子
が追加 さ れ ま し た。 新 し い関数 GROUPING_ID は、 既存の GROUPING
関 数 よ り も グ ル ー プ 化 の レ ベ ル が 高 い 情 報 を 返 し ま す (WITH
ROLLUP、 WITH CUBE、 お よ び ALL 構文は ISO 準拠ではな い ため、
廃止 さ れ ます)。
次の例は、 GROUPING SETS 演算子 と GROUPING_ID 関数を使用 し て
い ます。
SELECT EmpId, Month, Yr, SUM ( Sales ) AS Sales
FROM Sales
GROUP BY GROUPING SETS (( EmpId, ROLLUP ( Yr, Month ))) ;
SELECT COL1, COL2,
SUM ( COL3 ) AS TOTAL_VAL,
GROUPING ( COL1 ) AS C1,
GROUPING ( COL2 ) AS C2,
GROUPING_ID ( COL1, COL2 ) AS GRP_ID_VALUE
FROM TEST_TBL GROUP BY ROLLUP ( COL1, COL2 ) ;
GROUPING SETS 演算子は、 ISQL ペ イ ン タ 、 PowerScript (埋め込み
SQL お よ び動的 SQL)、 お よ びデー タ ウ ィ ン ド ウ オブジ ェ ク ト (構文
モー ド ) で使用で き ます。
行コ ン ス ト ラ ク タ
Transact-SQL は 1 つの INSERT ス テー ト メ ン ト 内に複数の値を挿入で
き る よ う にな り ま し た。 拡張 さ れた INSERT ス テー ト メ ン ト は、 ISQL
ペ イ ン タ お よ び PowerScript (埋め込み SQL と 動的 SQL) で使用で き
ます。 た と えば、 次の よ う にな り ます。
INSERT INTO Employees VALUES ( 'tom', 25, 5 ) ,
( 'jerry', 30, 6 ) , ( 'bok', 25, 3 ) ;
PowerBuilder 11.5 Windows
33
デー タ ベース イ ン タ フ ェ ースの機能拡張
ホ ス ト 変数を持っ た 1 つの INSERT ス テー ト メ ン ト に複数の値を含め
る 場合、 DisableBind DBParm を 1 に設定す る 必要があ り ます。 バ イ ン
ド 設定に関係な く 、 リ テ ラ ル値を上の例の よ う に使用す る 場合、 複数
の行を 1 つの INSERT ス テー ト メ ン ト に挿入で き ます。
互換性レ ベル
SQL Server 2008 では、ALTER DATABASE ス テー ト メ ン ト を使用 し て、
sp_dbcmptlevel プ ロ シージ ャ を置換す る こ と で、デー タ ベース の互換性
レベル (SQL Server のバージ ョ ン) を設定で き ます。 こ の構文は、ISQL
ペ イ ン タ お よ び PowerScript (動的 SQL) で使用で き ま す。 た と えば、
次の よ う にな り ます。
ALTER DATABASE <database_name>
SET COMPATIBILITY_LEVEL = {80 | 90 | 100}
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008
互換性 レ ベルは、 デー タ ベー ス サーバ全体ではな く 、 特定のデー タ
ベース の動作のみに影響を与え ます。 こ れは以前のバージ ョ ン の SQL
Server に部分的な下位互換性のみを提供 し ます。 デー タ ベー ス の互換
性レベルを暫定的な移行補助機能 と し て使用 し 、 バージ ョ ン の異な る
デー タ ベース の動作の差異を回避で き ます。
テーブル ヒ ン ト
FORCESEEK テーブル ヒ ン ト は、 ク エ リ オプテ ィ マ イ ザのデフ ォ ル ト
の動作を上書 き し ます。 こ れは、 ク エ リ に よ っ て参照 さ れ る テーブル
ま た は ビ ュ ー内のデー タ に対す る 唯一の ア ク セ ス パ ス と し て index
seek 演算を使用す る よ う に ク エ リ オプテ ィ マ イ ザに命令す る 、 高度な
パフ ォーマ ン ス チ ュ ーニ ン グ オプシ ョ ン を提供 し ます。 FORCESEEK
テーブル ヒ ン ト は、 ISQL ペ イ ン タ 、 PowerScript (組み込み SQL お よ
び動的 SQL)、お よ びデー タ ウ ィ ン ド ウ オブジ ェ ク ト (構文モー ド ) で
使用で き ます。 た と えば、 次の よ う にな り ます。
Select ProductID, OrderQty from SalesOrderDetail
with ( FORCESEEK ) ;
サポー ト さ れない SQL Server 2008 機能
PowerBuilder SNC イ ン タ フ ェ ー ス は、 SQL Server 2008 に導入 さ れ た
ユーザ定義テーブル型 (テーブル構造の定義 を示すユーザ定義の型)
をサポー ト し ません。
34
新機能
ト ラ ンザ ク シ ョ ン オブ ジ ェ ク ト の機能拡張
ト ラ ンザク シ ョ ン オブ ジ ェ ク ト の機能拡張
PowerBuilder 11.5 では、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の 2 つの新 し
い イ ベン ト 、 DBError と SQLPreview が追加 さ れま し た。 こ れ ら の イ ベ
ン ト は、 デー タ ウ ィ ン ド ウ コ ン ト ロ ール と デー タ ス ト アの DBError お
よ び SQLPreview イ ベン ト と は少 し 異な る シ グ ネチ ャ を持っ てい ま す
が、 その動作は似てい ます。
イ ベン ト のシ グ ネチ ャ 情報については、 ト ラ ンザ ク シ ョ ン オブジ ェ ク
ト と デー タ ウ ィ ン ド ウ コ ン ト ロ ールの DBError お よ び SQLPreview イ
ベン ト のオ ン ラ イ ン ヘルプ を参照 し て く だ さ い。
埋め込み SQL と の使
用
デフ ォ ル ト では、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト 内でエ ラ ーが発生す
る と 、 常に DBError イ ベ ン ト が呼び出 さ れ ま す。 エ ラ ー コ ー ド と エ
ラ ー メ ッ セージは こ の イ ベン ト に渡 さ れ ます。 こ れ ら のエ ラ ーを処理
す る ために、 DBError イ ベン ト に コ ー ド を追加で き ま す。 ト ラ ン ザ ク
シ ョ ン オブジ ェ ク ト の SQLPreview イ ベン ト は、 SQL 文が DBMS に渡
さ れ る 前に起動 さ れ ます。
デー タ ウ ィ ン ド ウまた
はデー タ ス ト ア と の使
用
DBError ト ラ ン ザ ク シ ョ ン オブジ ェ ク ト をデー タ ウ ィ ン ド ウ ま たは
デー タ ス ト ア と 一緒に使用す る 場合、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト
の DBError イ ベン ト が起動 さ れ る 前に、 デー タ ウ ィ ン ド ウ の DBError
イ ベン ト が起動 さ れます。 こ れ ら の 2 つの イ ベン ト を ま と め る ために、
デー タ ウ ィ ン ド ウ の DBError イ ベン ト に 2 つの戻 り 値が追加 さ れ、 既
存の戻 り 値の意味は ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の DBError イ ベン
ト を起動す る か ど う か を示す も のに拡張 さ れ ま し た。
デー タ ウ ィ ン ド ウ の DBError イ ベン ト の既存の戻 り 値の意味は、 以下
の よ う に変更 さ れま し た。
0
エ ラ ー メ ッ セージ を 表示 し 、 ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト の
DBError イ ベン ト が定義 さ れていれば、 こ れを起動 し ます。
1
エ ラ ー メ ッ セージ を表示せず、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の
DBError イ ベン ト が定義 さ れていれば、 こ れを起動 し ます。
PowerBuilder 11.5 で は、 デ ー タ ウ ィ ン ド ウ お よ び デ ー タ ス ト ア の
DBError イ ベン ト に 2 つの新 し い戻 り 値が追加 さ れ ま し た。
2
エ ラ ー メ ッ セージ を 表示 し 、 ト ラ ン ザ ク シ ョ ン オブ ジ ェ ク ト の
DBError イ ベン ト が定義 さ れていて も 定義 さ れていな く て も 、こ れ
を無視 し ます。
3
エ ラ ー メ ッ セージ を表示せず、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の
DBError イ ベン ト が定義 さ れていて も 定義 さ れていな く て も 、こ れ
を無視 し ます。
PowerBuilder 11.5 Windows
35
機能の廃止
SQLPreview デー タ ウ ィ ン ド ウ ま たはデー タ ス ト ア と 一緒に ト ラ ンザ
ク シ ョ ン オブジ ェ ク ト を使用す る 場合、 デー タ ウ ィ ン ド ウ ま たはデー
タ ス ト ア の SQLPreview イ ベン ト が最初に起動 さ れ ま す。 デー タ ウ ィ
ン ド ウ ま たはデー タ ス ト アの SQLPreview イ ベン ト の戻 り 値が 0 (処理
の続行) の場合、 ト ラ ンザ ク シ ョ ン オブジ ェ ク ト の SQLPreview イ ベ
ン ト が起動 さ れ ます。
機能の廃止
以下の項目は削除 さ れ、 PowerBuilder 11.5 以降の リ リ ー ス では使用で
き ません。
36
•
Web
フ ォ ーム
プロジェ ク ト の
(PBWebControlSource) オプシ ョ ン
•
Oracle 8/8i (O84) デー タ ベース イ ン タ フ ェ ース
•
JSP タ ーゲ ッ ト (代わ り に Sybase ワ ー ク スペース を使用)
•
オー ト メ ーシ ョ ン サーバ プ ロ ジ ェ ク ト
•
デー タ ウ ィ ン ド ウ プ ラ グ イ ン と PowerBuilder ウ ィ ン ド ウ プ ラ グ イ
ン
•
PowerBuilder ウ ィ ン ド ウ ActiveX
•
Web サービ ス プ ロ キ シ プ ロ ジ ェ ク ト の UDDI ブ ラ ウ ザ
新機能
IE
Web
コ ン ト ロ ール
機能の廃止
PowerBuilder 11.5 Windows
37
機能の廃止
38
新機能
機能の廃止
PowerBuilder 11.5 Windows
39
機能の廃止
40
新機能
機能の廃止
PowerBuilder 11.5 Windows
41
機能の廃止
42
新機能