PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
21491 04/08/18 11:16:28 RE(2):PB7.0: InsertRowしたDWに更に値をセットする By sori
21490 04/08/18 10:13:47 RE(1):PB7.0: InsertRowしたDWに更に値をセットする By Chicchi
21489 04/08/17 19:51:58 PB7.0: InsertRowしたDWに更に値をセットする By sori

カテゴリ:スクリプトの記述
日付:2004年08月18日 10:13 発信者:Chicchi
題名:RE(1):PB7.0: InsertRowしたDWに更に値をセットする

soriさん、こんにちは。

間違ってはいませんが、行数が多い時は更新に時間がかかると思います。理由は dw_3 の行数分、
dw_7 の全行検索 (Find 関数) を行っているからです。
前回否定しておいてナンなんですが、他のイベントから Sort をかけたり行を挿入・削除しない
という前提なら、次の方法が最も効率的ではないでしょうか。



ll_end = dw_3.RowCount()
For ll_cnt = 1 To ll_end
dw_3.SetItem( ll_cnt, \"入庫no\", String( ll_nyuko ) )
IF dw_3.GetItemString( ll_cnt, \"入庫予定No\" ) = &
dw_7.GetItemString( ll_cnt, \"入庫予定No\" ) THEN
dw_7.SetItem( ll_cnt, \"入庫no\", String( ll_nyuko ) )
ELSE
// エラー処理
END IF
ll_nyuko++
Next


もちろん、dw_3 と dw_7 が同じ行数であることが前提ですが。どちらかの dw の行数が少なけ
れば大して時間はかかりませんし、「他から Sort や行数をいじるスクリプトを記述してはなら
ない」という仕様を維持していく困難さを考えると、sori さんの方法が確実かも知れません。

■追伸
まずは自身で考えたロジックで試してみましょう。その上で「速度が遅い」とか「入庫予定No 
が見つからずにエラーになるケースがある」という問題が発生したら、もっと良い方法が無いか、
どこが間違っているかを質問しましょう。

>前略---------------------------------------------------------------------------

>どうでしょうか?
>これ以外に今のところやり方が浮かばないんですが
>アドバイスお願い致します。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Microsoft SQL Server Client 6.5
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Microsoft SQL Server 6.5
WebServer (記載なし)

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