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

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