PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
23578 | 09/08/05 15:18:58 | RE(2):PB5.0.03: updateを発行しても指定した行のみ更新され、残りの行はステータスを保つ方法 By TigerRed |
23577 | 09/08/04 13:16:15 | RE(1):PB5.0.03: updateを発行しても指定した行のみ更新され、残りの行はステータスを保つ方法 By Pos |
23573 | 09/07/24 22:49:46 | PB5.0.03: updateを発行しても指定した行のみ更新され、残りの行はステータスを保つ方法 By TigerRed |
カテゴリ:データウィンドウ
日付:2009年08月04日 13:16 発信者:Pos
題名:RE(1):PB5.0.03: updateを発行しても指定した行のみ更新され、残りの行はステータスを保つ方法
TigerRedさん、こんばんは。
(1) 更新用データウィンドウを非表示で用意します。
(2) 更新用データウィンドウの設定を行います
※更新用dw.DataObject=対象dw.DataObject,更新用dw.SetTranObject(SQLCA)等
(3) 更新対象の行をRowsCopyで更新用のデータウィンドウにコピーします。
(4) 更新用のデータウィンドウをUpdateし正常ならコピー元の行のステータスをクリアします。
(5) 残りの行を(3)(4)の繰り返しまたは必要に応じてコピー元のデータウィンドウでUpdateを行います。
(6) すべて正常ならCommit エラーならRollbackを発行します。
上記方法をお試しください
以上
>一覧形式のデータウインドウで段階的にupdate() を実施する
>処理を作成しています。
>
>データウインドウに対して update() 関数を発行すると
>全ての行のステータス(DataModified、New 等)
>に応じてSQLが構築されてDBに更新が行われ、
>行のステータスの状態は「NotModified」 等になってしまう
>(全てリセットされるイメージ)と思います。
>
>update() 時、指定した行のみDBに更新され、残りの行はDBには
>このタイミングでは更新されず かつ 行のステータスはそのまま保った状態
>(DataModified、New 等)で、次回update() 時残りの行が
>DBに更新されるようにしたいのですが
>何か良い方法はありませんでしょうか。
>
>フィルタを使えば実現できるかと思い
>更新したくない行をsetFilter()で非表示にしても update関数の
>仕様か、カラムの値が編集されていたり、新規に行追加されたものは
>やはり全てDBに更新されてしまうようです。
>
>現行プログラムの改修を行っており、作り上どうしても
>このような処理を実現したいと考えております。
>
>
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle Net8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 7.3
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.