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月02日 15:38 発信者:川端
題名:RE(1):ページ違反で落ちます。
Rioriさん、こんにちは。
>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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.