2009/09/25(Fri) 11:58:40 編集(投稿者)
> C#で 一つの トランザクション処理をつくりたかったんでした。
>
> 例: トランザクション開始
> update1();//ここでは成功
> update2();//ここで失敗
> トランザクション終了
>
> update1()では成功して、update2()で失敗したら、何とかupdate1()とupdate2を全部ロールバックさせたいです。
それで、何がわかりませんか?
/*
* update1(), update2() がいずれも
* 成功/失敗に応じて true/false を返すなら:
*/
BEGIN TRANSACTION する。
if ( update1() && !result2() ) {
ROLLBACK TRANSACTION する。
} else {
COMMIT TRANSACTION する。
}
↑きっと間違い。やりたいことは:
- update1() と update2() が両方成功したときに限り COMMIT
- update1() が失敗したら update2() は行わずに ROLLBACK
じゃないかしらね。