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月05日 15:18 発信者:TigerRed
題名:RE(2):PB5.0.03: updateを発行しても指定した行のみ更新され、残りの行はステータスを保つ方法
Posさん、コメント頂きありがとうございます。
あれから試行錯誤した結果、ご指導いただきました通り
更新用DWを設けてそちらへ更新したいデータを移す方法に
当方も落ち着いております。
ありがとうございました。
以上です。
>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.