• 検索結果がありません。

PowerBuilder 7 以前か らの移行

ドキュメント内 pbentrb_903.fm (ページ 37-42)

8. 移行の問題

8.4 PowerBuilder 7 以前か らの移行

8.4.3 予約語

例外処理を サポー ト す る ために PowerBuilder 8 で新 し い予約語を PowerScript 言語に追加 し ま し た。 既存のアプ リ ケーシ ョ ンの識別子 と し て新 し い予約語 (TRY、CATCH、FINALLY、THROW、 お よ び

THROWS) の う ちのいずれか を使用す る 場合は、 それ ら に矛盾 し ない

名前を付けて、 こ れ ら の識別子を変更 し なければな り ません。 新規作 成 ダ イ ア ロ グ ボ ッ ク ス の [ツール] タ ブページで利用で き る マ イ グ レーシ ョ ン ア シ ス タ ン ト を実行 し て新 し い予約語の不正な使用を検 索で き ます。

8.4.4 ト ラ ン スポー ト オブ ジ ェ ク ト は廃止

ト ラ ン ス ポー ト オブジ ェ ク ト お よ びそれに関連 し たプ ロ パテ ィ と メ ソ ッ ド は、PowerBuilder 8 以降で廃止 さ れ、PowerBuilder 9.0 か ら 削除 さ れ ま し た。 こ のオブジ ェ ク ト は、 分散型 PowerBuilder アプ リ ケー シ ョ ン で使用 さ れてい ま し た。 分散型 PowerBuilder に使用 さ れていて 廃止 さ れたプ ロ パテ ィ と メ ソ ッ ド は以下の と お り です。

• Application オブジ ェ ク ト の ConnectionBegin イ ベン ト と ConnectionEnd イ ベン ト

• Connection オブ ジ ェ ク ト の GetServerInfo 関数、RemoteStopConnection 関数、RemoteStopListening 関数

• Proxy オブ ジ ェ ク ト の SetConnect オブジ ェ ク ト

• Connection オブジ ェ ク ト の ConnectString プ ロ パテ ィ と Trace プ ロ パテ ィ

• ConnectionInfo 構造体

JavaBeans プ ロ キ シ と Web.PB ジ ェ ネ レー タ も 分散 PowerBuilder アプ リ ケーシ ョ ン で使用 さ れてい ま し たが、 削除 さ れ ま し た。

8.4.5 SystemError イ ベン ト の変更

PowerBuilder 7 以前では、Error イ ベン ト や ExternalException イ ベン ト で捕捉で き ないエ ラ ーが発生 し た場合、 アプ リ ケーシ ョ ンの SystemError イ ベン ト がただちに起動 さ れ ます。SystemError イ ベン ト に処理すべ き コ ー ド がない場合は、 アプ リ ケーシ ョ ンは終了 し ます。

それ以外の場合は、 SystemError イ ベン ト 実行後、 エ ラ ーが発生 し た コ ー ド に制御が戻 り ます。

PowerBuilder 8 以降では、 例外処理 メ カ ニズ ムに よ っ て、 あ る いは Error イ ベン ト や ExternalException イ ベン ト で捕捉で き ないエ ラ ーが発 生 し た場合、 ス ク リ プ ト は終了 し 、 コ ール ス タ ッ ク が解放 さ れ ます。

ス ク リ プ ト 内の Triggerevent 呼び出 し の結果 と し てエ ラ ーが発生 し た 場合は、 呼び出 し を行っ た ス ク リ プ ト は終了 し 、 コ ール ス タ ッ ク が解 放 さ れ ます。 ほ と ん ど の場合、SystemError イ ベン ト は コ ール ス タ ッ

ク が空にな る ま で起動 さ れ ません。 レ ス ポ ン ス ウ ィ ン ド ウ の イ ベン ト がエ ラ ーを引 き 起 こ し た場合、SystemError イ ベン ト は レ ス ポ ン ス ウ ィ ン ド ウ イ ベン ト が終了す る と 直ちに起動 さ れ ます。

動作上の こ の変更のために、 エ ラ ー と な っ た ス テー ト メ ン ト に続 く コ ー ド は、SystemError イ ベン ト の起動後は実行 さ れ ません (以前の リ リ ース では実行 さ れ ま し た)。 こ の変更は、 エ ラ ーが発生 し た ス ク リ プ ト に制御を戻す と い う 以前の動作に依存 し てい る アプ リ ケーシ ョ ン に大 き な影響があ り ます。 こ の動作に依存 し てい る コ ー ド は、

PowerBuilder 8 以降で修正す る 必要があ り ます。

TRY/CATCH ブ ロ ッ ク でエ ラ ーが発生す る か も し れない コ ー ド を ラ ッ プ し て潜在的なエ ラ ーを処理す る こ と で、 実行時エ ラ ーが発生す る 時 にSystemError イ ベン ト が発生 し ない よ う にで き ます。 捕捉で き ない 例外を処理す る ために、SystemError イ ベン ト を記述す る のが望ま し いで し ょ う 。SystemError イ ベン ト が呼び出 さ れた後はアプ リ ケー シ ョ ン の実行を続けないで く だ さ い。SystemError イ ベン ト では後処 理を行っ て、 アプ リ ケーシ ョ ン を中断 さ せ る よ う に し ます。

8.4.6 IsValid 関数の変更

IsValid 関数は、 現在 PowerObject 型に変換で き ない Any 型の引数を渡 さ れた場合に false を返 し ます。PowerBuilder 7 以前では、IsValid 関数 に無効なオブジ ェ ク ト を渡す と シ ス テ ム エ ラ ーが発生 し ま し た。 前 節のSystemError イ ベン ト の変更に も 注意 し て く だ さ い。

8.4.7 カ ラ ー オプ シ ョ ンの書式の変更

[デザ イ ン|オプシ ョ ン|オブジ ェ ク ト の色] を選択 し て、 デー タ ベース ペ イ ン タ かSQL Select ペ イ ン タ でグ ラ フ ィ カルな テーブルを表 示す る 各 コ ン ポーネ ン ト のカ ス タ ム カ ラ ーを指定で き ます。 こ こ で 指定 し た色は、PB.INI フ ァ イ ルの [Database] セ ク シ ョ ン に保存 さ れ

ます。 コ ン ト ロ ールで使用可能な Windows シ ス テ ム カ ラ ーお よ びカ ス タ ム カ ラ ーが増え た こ と をサポー ト す る ために、PowerBuilder 8 以 降で こ れ ら の色を保存す る 書式を変更 し ま し た。 以下は、

PowerBuilder 7 PB.INI フ ァ イ ルのキーを表す行の色の定義例です。

ForeignKeyLineColor=0 0 255

IndexKeyLineColor=255 0 0 PrimaryKeyLineColor=0 128 0

以下は、PowerBuilder 8 以降の PB.INI フ ァ イ ルの上記に対応す る 項目 です。

ForeignKeyLineColor=16711680 IndexKeyLineColor=255

PrimaryKeyLineColor=32768

PowerBuilder 7 PB.INI フ ァ イ ル、 ま たはその [Database] セ ク シ ョ ン を 使用す る 場合、PowerBuilder 8 以降では最初に [Database] セ ク シ ョ ン の色の設定をすべて削除す る 必要があ り ます。 こ れを行わない場合 は、 使用 し た色は PowerBuilder 8 以降で読み取れないテーブルを作成 し ます。 PowerBuilder 8 以降の [オブジ ェ ク ト の色] プ ロ パテ ィ シー

ト のカ ス タ ム カ ラ ーを リ セ ッ ト で き ます。

8.4.8 Web デー タ ウ ィ ン ド ウ移行の問題

PowerBuilder 7.0.2 C3 よ り 前の リ リ ース で、Netscape レ ン ダ リ ン グの問 題に対応 し た場合、 今回の リ リ ース では Netscape レ ン ダ リ ン グが改善

さ れたため正 し く 動作 し ない こ と があ り ます。

特に スペース のみを含む計算フ ィ ール ド やテ キ ス ト フ ィ ール ド を使 用 し てい る 場合、Web デー タ ウ ィ ン ド ウ ジ ェ ネ レー タ は こ れ ら の フ ィ ール ド に対 し て table エ ン ト リ を作成 し 、 テーブルを 2 倍の幅に し て表示 し ます。 こ の よ う にな っ た場合は、 こ のプ レース ホルダの フ ィ ール ド を削除 し て、 標準の レ イ ア ウ ト を使用 し ます。

8.4.9 空の DataObject プ ロパテ ィ へのデー タ ウ ィ ン ド ウ メ ソ ッ ド の戻 り 値

PowerBuilder 8.0.2 以降では、 デー タ ウ ィ ン ド ウ コ ン ト ロ ールやデー タ ス ト アへ割 り 振 ら れたデー タ ウ ィ ン ド ウ オブジ ェ ク ト が無い時に返 さ れ る 値は、 表 5 に表示 さ れてい る よ う に メ ソ ッ ド に対 し て標準化 さ れてい ます。 こ れ ら の戻 り 値のい く つかは、PowerBuilder7以前の リ

リ ース の戻 り 値 と は異な り ます。

表 5: データウィンドウが割り振られていないときの戻り値

8.4.10 ScrollNextRow ScrollPriorRow の動作の変更

PowerBuilder 8 以降では、 デー タ ウ ィ ン ド ウ メ ソ ッ ド の ScrollNextRow お よ び ScrollPriorRow は下記の順で イ ベン ト を発生 さ せます。

RowFocusChanging RowFocusChanged ItemFocusChanged ScrollVertical

PowerBuilder 7 以前では、 ScrollVertical イ ベン ト が、 ほかの イ ベン ト の 引 き 金 と な っ てい ま し た。 ScrollVertical イ ベン ト で、 も はや こ れ ら の 方法を使用す る こ と はで き ません。 使用す る と 、 デー タ ウ ィ ン ド ウ の 最後ま たは最初の行にた ど り 着 く ま で、 同 じ 一連の イ ベン ト が繰 り 返

し 発生 し ます。 [CR 323263]

8.4.11 OpenSheet 関数の動き を変更

PowerBuilder 8 以降では、OpenSheet 関数お よ び OpenSheetWithParm 関 数は、 処理失敗時に -1 を戻すかわ り に実行時エ ラ ーを送出 し てい ま

し た。 た と えば、 オプシ ョ ンの windowtype 引数が不正な場合に発生 し ます。 確実に こ のエ ラ ーを捕 ら え る ために、 戻 り 値のチ ェ ッ ク に加え て try-catch 文で呼び出 し を囲みます。

integer li_ret try

li_ret = OpenSheet(w_child, "w_child_1", &

MDI_User, 2, Original!)

if li_ret <> 1 then MessageBox("OpenSheet 失敗", &

"引数のチ ェ ッ ク") catch (RuntimeError rt)

MessageBox("OpenSheet 失敗", rt.GetMessage() )

メ ソ ッ ド 戻 り 値

AcceptText 1

DeleteRow -1

GetItemDate, GetItemDateTime, GetItemDecimal, GetItemNumber, GetItemStatus, GetItemTime

null

GetItemString 空の文字列

InsertRow -1

Retrieve -1

SelectRow 1

Update 1

// 処理エ ラ ー end if

[CR 303560]

8.4.12 LenW 関数の仕様変更

LenW 関数で blob 型のデー タ の長 さ を求め る 場合、PowerBuilder 7 以 前のバージ ョ ン では、 日本語が含ま れ る か否かにかかわ ら ず、blob 型 のデー タ のバ イ ト 数を返 し てい ま し たが、 PowerBuilder 8.0 以降、 文 字数を返す よ う にな り ま し た。 バ イ ト 数を求め る 場合は、LenW 関数 のかわ り に Len 関数を使用す る こ と がで き ます。

ドキュメント内 pbentrb_903.fm (ページ 37-42)

関連したドキュメント