PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21729 | 05/01/27 16:53:05 | RE(2):複数テーブルの一括更新時について By ろいたん |
21727 | 05/01/27 13:22:09 | RE(1):複数テーブルの一括更新時について By isii |
21726 | 05/01/27 10:19:44 | 複数テーブルの一括更新時について By ろいたん |
カテゴリ:PowerBuilderの開発環境
日付:2005年01月27日 10:19 発信者:ろいたん
題名:複数テーブルの一括更新時について
おはようございます。
1つのテーブルのデータを複数のマスターテーブルへInsert,Update等するときの
処理方法について教えてください。
現在データウインドウ1つに順次データオブジェクトを貼り付け
以下のようなスクリプトにて更新しています。
if dw.update() = 1 then
commit using sqlca;
messagebox(\"書き込み\",\"書き込みが正常終了しました。\")
else
rollback using sqlca;
messagebox(\"書き込み\",\"書き込みエラー:書き込みは行いませんでした。\")
end if
これだと複数テーブル更新時に(たとえば10コのテーブルの10番目)エラーが発生した場合
更新されたテーブルと更新されてないテーブルが存在し、データに矛盾が発生します。
このような現象を防ぐためにはSQL等ではトランザクション管理が有ると思うのですが、
これと同様なことをPowerBuilderでも可能でしょうか?
つまり、
1つ目のテーブル更新OK,n番目の更新OK,・・・ときたとき、
1つでも更新失敗の物があれば全てのテーブルをロールバックする。
例えば、上記スクリプトでも
dw.update()の戻り値をテーブル分保持して、(または合計値がテーブル数に合致する?)
最後にcommit文やrollback文を実行すればいいだけの話でしょうか?
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.