PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
3641 98/10/15 16:18:33 RE(2):PB5.0.02: DWコントロールのRetrieveRowイベント By Taka
3639 98/10/15 15:55:37 RE(1):PB5.0.02: DWコントロールのRetrieveRowイベント By こてちゅ
3636 98/10/15 13:52:49 PB5.0.02: DWコントロールのRetrieveRowイベント By クニ

カテゴリ:データウィンドウ
日付:1998年10月15日 16:18 発信者:Taka
題名:RE(2):PB5.0.02: DWコントロールのRetrieveRowイベント

>RetrieveRowイベントでコメント行だけを記述してもこのイベントは起動される事になります。
>データベースへのSELECTに対しては、問題はないと思います。
>RetrieveRoeイベントに記述がある場合、ウィンドウに対する入力を待機する事になります。
>その辺りでPC側の負荷があるのでしょう。

>あまり答えにはなっていませんが・・・
>もっと詳しく説明できる方、フォローお願いします。

クニさん、こてちゅさん、こんにちは。

データウィンドウは、Retrieve関数によってSELECT文の実行結果を1行ずつ受け取ります。
このとき、RetrieveRowイベントになにもスクリプトを記述していなければ、PBは余計な
処理をしませんので、そこそこのパフォーマンスで終了します。

RetrieveRowイベントに何か記述があると(コメントのみ含む)、PBは1行取り込むごとに
(カーソル処理でのFETCHと同じ)開発者が記述したスクリプトを実行してしまいます。
いわば、「1行ごとに余計な割り込み処理」を実行しているわけで、パフォーマンスに
影響が出るのはそのためです。

しかも、「サブルーチン」としてスクリプトを実行しているのではなく、「検索のキャンセル」
を受け取るようにするため、内部的に Yield(WindowsのMessageをチェック&実行)
していると思われます。パフォーマンス悪化の最大のネックがここにあります。
(個人的には、ここのイベント内で Yieldする,しないを事前に制御できるとありがたいのですが)

こんな感じでよろしいでしょうか?

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS Sybase Open Client/C 11
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Server System 11
WebServer (記載なし)

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