PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
15991 01/08/07 13:57:25 RE(2):ページ違反で落ちます。 By azarashi
15958 01/08/02 15:38:42 RE(1):ページ違反で落ちます。 By 川端
15956 01/08/02 13:43:50 ページ違反で落ちます。 By Riori

カテゴリ:PowerBuilderの不具合?
日付:2001年08月07日 13:57 発信者:azarashi
題名:RE(2):ページ違反で落ちます。

川端さん、Rioriさん、こんにちは。

PB7.0.2C3において開発中に、DeleteRow関数とRowFocusChangedイベントの兼ね合いで
アプリケーションエラーがおこったことがあります。
調べたところ、PB4.0.3の場合ではバグとして認知されているようです。

回避策として、私の場合はこれで回避できました。
1.ユーザイベントを作成し、RowFocusChangedイベントの内容を移しかえる。
2.RowFocusChangedイベントから、上記ユーザイベントをPOSTで呼び出す。

違っていたらごめんなさい、です。

>>InsertRowで複数行追加を行い、続けてDeleteRowで行削除を行ったときに
>>RowFocusChangedイベントが発生し、この段階でページ違反が起こってしまい
>>ます。RowFocusChangedに書かれている処理を削除すれば、回避できると思う
>>のですが、大事な処理が記述されていてこの方法は使えません。
>>ページ違反が起きてしまう原因も不明ですし、八方塞な状態です。
>>他に、RowFocusChangedを強引に回避する方法か、もしくは代替できるような
>>イベントがありますでしょうか?

>恐らくフォーカスの当たっている行に対して DeleteRow を行ってしまった為に
>RowFocusChanged イベントが発生してしまったと思われます。
>また、ページ違反が起こった原因として、上記の状態で RowFocusChanged イベントが
>発生した場合、引数の row の値が処理として正しくない値が入っている可能性が
>考えられます。

>回避方法は幾つか考えられますが…

>方法1.
>インスタンス変数を用意し、DeleteRow を行う直前に、その変数へ値を代入。
>RowFocusChanged イベントで、インスタンス変数を調べ、値が入っていたらイベント内の
>処理を行わないようにする。

>方法2.
>SetRow 関数などでフォーカスを対象の行からどかしてから DeleteRow を行う。

>方法3.
>RowFocusChanged イベントで、引数 row の値を調べ、値が異常だったら以後の処理を行わない
>ようにする。

>と言ったところでしょうか?
>取り敢えず、ご自分で色々と試して見て下さい。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS (記載なし)
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.