過去の桐井戸端BBS (桐ver.9) |
29000 | 表の多重化はどういう場合に使えば有効なのでしょうか | 海猿 | 2005/02/11-11:11 |
表の多重化についてお願いします。 以前から疑問に思っていたのですが、多重化はどういう場合に使えば有効なのでしょうか? 例えば グループ化した一覧形式のフォームで、データを入力してコマンドボタンの左クリックイベントで、 編集表のグループ解除 条件Aの絞り込み 繰り返し処理の行訂正 絞り込み解除 編集表のグループ化 というような記述をしています。 こういう場合、表を多重化して処理させた方が処理速度が上がるのでしょうか。 もしそうならば、どの時点で多重化すれば良いのでしょう。 そして、その記述の仕方もあわせてお願いします。 | |||
29001 | ケースバイケース | ONnoji | 2005/02/11-11:44 |
記事番号29000へのコメント 海猿さん、こんにちは。 必要があれば、多重化することによって処理のパフォーマンスが良くなることがあります。 これは一般論です。 しかし、多重化は常に万能薬でも特効薬でもありません。 従って、実際にケースバイケースで試してみる必要がありますよ。 場合によっては多重化できないケースもあります。 以下は拙作HPからの引用です。よろしければご参考にしてください。 【引用】http://www.geocities.jp/siliconvalley_bay_7565/@geoboard/1198.html >多重化した表を対象に処理すると、 >レコードスクロールバーとレコードカウンターがリドロウ(再描画)されなくなるので、 >速くなります。 >通常、遅い遅いと思っていることの大部分はリドロウが原因です。 >しかし、[描画禁止]メソッドを使用してもレコードカウンターはリドロウされますの で、 >[描画禁止]メソッドを使用するのは意味がありません。 http://www.geocities.jp/siliconvalley_bay_7565/procedure02.htm#no07 【引用】http://www.geocities.jp/siliconvalley_bay_7565/procedure02.htm#no07 >.編集対象表の多重化 > 編集対象表を多重化するのは次の理由によります。 >・フォームの再描画が余計に発生しないため、処理時間が短くなります。 >・レコードスクロールバーが上下しないので見苦しくなくなります。 それでは失礼いたします。(@^^)/~~~ | |||
29002 | Re:表の多重化(記載例) | 悲しげ | 2005/02/11-11:45 |
記事番号29000へのコメント >多重化はどういう場合に使えば有効なのでしょうか? 私の乏しい経験を語れば、一般的にWin桐の場合、一括処理(kev)による 各処理の過程が逐一画面に表示されてしまうので、それが時に麗しくなく且つそのために処理速度が 激しく低下してしまうことがあります。 その現象を避けるためにv.8の途中から登場した「描画禁止」メソッドがありまして、 これはこれでナカナカ使えるメソッドなのではありますが、 実はこれでもまだ速度低下を避けられない場合があります。 それは画面右端等に表示されているスクロールバーの存在です。 これだけは「描画禁止」メソッドでも制御できないので、このような場合にお尋ねの「多重化」を利用することとなります。 なお、この件は、私はONnojiさんから教わりまして、ご本人から後ほど 補足または解説のリンクが提示されそうな気も………。(^^;) >どの時点で多重化すれば良いのでしょう。 >そして、その記述の仕方もあわせてお願いします。 では一例 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 メソッド呼び出し @フォーム.描画禁止(1) var 自動,長整数{&元表No},自動,文字列{&グソ} *グソとは糞の濁音ではなくてグループソースの意味(数値かも?) メソッド呼び出し [某グループ項目].グループソース値取得(&グソ,0) *当該表が現在の編集対象表だとして &元表No=#is表 多重化 /*この時点で元表が別表として多重化オープンされる、基本状態で!*/ *必要ならここで任意の(索引等で)並べ替えて 絞り込み [某グループ項目]{&グソ} /*または「条件Aの絞り込み」かな?*/ *この後が、恐らく処理速度が気になるところのメインディッシュたる 「繰り返し処理の行訂正」なる処理が入って 終了 表 編集対象表 /*多重化表を閉じる*/ *そのまんまでも直前の編集表に戻るような気がしないでもないが、念のため 編集表 &元表No メソッド呼び出し @フォーム.描画禁止(0) 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 こんな感じではいかがでしょう? (但し挙動は全く未確認)(^^;) | |||
29003 | Re:ケースバイケース | 悲しげ | 2005/02/11-11:47 |
記事番号29001へのコメント あ、ONnojiさんに数秒〜数十秒差で負けた(^^;) | |||
29004 | Re:表の多重化(記載例) | ONnoji | 2005/02/11-11:51 |
記事番号29002へのコメント >ご本人から後ほど補足または解説のリンクが提示されそうな 悲しげさん、こんにちは。 先ほど拙作リンクを提示させていただきました。(^^ゞ | |||
29005 | 補足 | 悲しげ | 2005/02/11-11:53 |
記事番号29002へのコメント もしかすると前稿記述の前後に下記の★印部を挿入する必要あったかも? 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 メソッド呼び出し @フォーム.再描画(1) /*★*/ メソッド呼び出し @フォーム.描画禁止(1) var 自動,長整数{&元表No},自動,文字列{&グソ} ・・・(中略) メソッド呼び出し @フォーム.描画禁止(0) メソッド呼び出し @フォーム.描画更新() /*★*/ 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 | |||
29006 | Re:補足 | ONnoji | 2005/02/11-11:57 |
記事番号29005へのコメント 海猿さん、こんにちは。 以下のページで、 http://www.fuku3.com/~habata/bbshead.htm 以下のいずれかのキーワードをに入力して、 多重化 [Google で桐井戸端BBS過去ログ検索]ボタンを実行すると、 いろいろと情報が見つかりますよ。 | |||
29009 | Re:表の多重化 | 海猿 | 2005/02/11-12:31 |
記事番号29000へのコメント ONnojiさん、悲しげさん さっそくのご返答有り難うございます。 記載されたのを参考に多重化させた所、処理速度はかなり上がりました。 たいへん参考になりました。有り難うございました。 |