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 (記載なし)

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