C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.1577 の関連記事表示

<< 0 >>
■1577  Re[3]: トランザクションの状態の判定
□投稿者/ HIRO -(2007/02/27(Tue) 18:07:14)
>
    No1572 (緑茶庵 さん) に返信
    > catch を使用しなかったのは例外発生時以外に
    > 意図的に終了する場合があるためでした。

     これはどのようなときを意味するのでしょうか?

    > ただ、この処理のようにCommitを行う前にreturnを行った場合でも
    > DBConnectionのお陰なのか、実際にDBへの更新は行われませんでした。

     Comnmitをしていないのですから更新されないのは当然だと思います。
     でなければTransactionの意味がないですよね?


    > finallyでロールバック処理を書いたのは
    > 保険の意味あいがとても強く、Commitしていない処理は
    > とにかく全てロールバック処理を行いたかったからです。
    >
    > *return の前にロールバックを書いても良いかも知れませんが
    >  書き忘れもあるのでやりたくありません

     return で処理を抜けるのであればfinalyには到達しませんよね?
     であれば、その前にロールバック処理をするべきではないでしょうか?

    returnで処理を抜けない場合は、つまりexecCountが0より大きい場合はCommitされるときですよね?
     この場合は例外が発生しなければロールバックの必要が無いので、保険でfinallyにロールバック処理を入れる必要は内容に思えます。
    (例外の発生を考えるとcatchは必要だと思います)
記事No.1535 のレス /過去ログ10より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -