PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
10833 | 00/03/27 18:22:25 | RE(11):特定の更新結果だけ Rollback したいんです。(ゴミレス) By Taka |
10831 | 00/03/27 13:34:15 | RE(10):特定の更新結果だけ Rollback したいんです。(ゴミレス) By ryochan |
10829 | 00/03/27 11:30:40 | RE(9):特定の更新結果だけ Rollback したいんです。(ゴミレス) By HAL |
10828 | 00/03/27 11:25:30 | RE(8):特定の更新結果だけ Rollback したいんです。 By てとらぽっと |
10827 | 00/03/27 11:02:36 | RE(7):特定の更新結果だけ Rollback したいんです。(ゴミレス) By Taka |
10822 | 00/03/27 09:01:50 | RE(6):特定の更新結果だけ Rollback したいんです。 By HAL |
10820 | 00/03/24 23:36:18 | RE(5):特定の更新結果だけ Rollback したいんです。 By Taka |
10818 | 00/03/24 21:49:27 | RE(4):特定の更新結果だけ Rollback したいんです。 By M.M |
10817 | 00/03/24 21:22:24 | RE(3):特定の更新結果だけ Rollback したいんです。 By HAL |
10816 | 00/03/24 21:45:36 | RE(2):特定の更新結果だけ Rollback したいんです。 By ryochan |
10815 | 00/03/24 20:10:32 | RE(1):特定の更新結果だけ Rollback したいんです。 By Mika★ |
10812 | 00/03/24 17:13:30 | 特定の更新結果だけ Rollback したいんです。 By HAL |
カテゴリ:スクリプトの記述
日付:2000年03月24日 23:36 発信者:Taka
題名:RE(5):特定の更新結果だけ Rollback したいんです。
HALさん、こんばんは。
>実現したいのは、明細の1行目から最終行までのループを1回のみ実行し、
>その中で更新失敗した UPDATE 結果だけを ROLLBACK して伝票単位で COMMIT or ROLLBACK を
>1回だけ実行する。かつ、エラーの行?をメッセージ表示するというものなんです。
>(なんだか無理なような気が...)
ループの中で1行ずつ UPDATE(埋め込みSQL)するんですよね?
エラーになった行はほっといて、次の行をUPDATEし、ループの外でまとめてCOMMITしても問題ないのでは?
UPDATEに失敗している訳ですから、COMMIT文を発行してもそれは対象外になりますし、
行ロックも開放されるのではないでしょうか?
特別に ROLLBACKしなければならないケースは、その明細テーブルに BEFORE行トリガーが付いており、
そのトリガーの中で他のテーブルを更新している 等の場合です。
この場合でしたら、1行のUPDATE文でエラーになったらROLLBACKする必要がありますね。
ちなみに、ループの中でUPDATEに成功した行は、DWバッファの行ステータスを NotModified! に
変更しておきましょう。(ん?DWのUpdate関数を使わなければ関係ないか…)
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.