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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.