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

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