- PR -

ストアド内でTRANSACTIONをかけた場合、ADO.NET側はTRANSACTIONが必要?

1
投稿者投稿内容
セディ
会議室デビュー日: 2005/03/14
投稿数: 13
投稿日時: 2005-03-17 16:02
お世話になっております。
ASP.NETアプリケーションからSQLServerのストアドプロシージャを呼び出そうと思っています。
(VS2003 C#/SQLServer2000)
ストアド内でトランザクション処理を行っているのですが
その場合、呼び出し側でもトランザクションをかける必要があるのでしょうか。
Webや本のサンプルでは、呼び出し側でしかかけていないようです。
ご存知の方いましたら教えてください。
よろしくお願い致します。
たつごろー
ぬし
会議室デビュー日: 2004/10/25
投稿数: 496
投稿日時: 2005-03-17 17:31
必要ない。



はず。ほかに返答が無いもんで不安になってみた。

_________________
たつごろー
codeseek
こみゅぷらす
セディ
会議室デビュー日: 2005/03/14
投稿数: 13
投稿日時: 2005-03-17 17:52
.NET開発以前ときは(VB)思い切り
VB側にもTransactionを入れておりました;
#とても無駄だったんですね;
ありがとうございました。
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2005-03-17 17:54
SQLServerの場合トランザクションをネスト出来るんですよ。Begin Transを複数回実行して、部分的にCommit/RollBackすることも出来るんです。

なので「仕様上必要なら行ってください。不要なら行う必要は無いです。」って答えになるのかなと。つまり任意。
セディ
会議室デビュー日: 2005/03/14
投稿数: 13
投稿日時: 2005-03-17 18:06
部分的にtransactionで呼び出し側からTransactionを発行すると
こんな形の管理になるんでしょうか。
[呼び出し側]ASP.NET
(1)トランザクション開始
 (a)・ストアド(内部でトランザクション有り)を呼び出し
 (b)・ASP.NET内で別のSQLを実行
(2)トランザクション終了処理
(a)(b)どちらかでエラーになったときRollBack
・・・RollBackされても既に(a)がCommitされている場合は
 (a)についてはRollBackされない
1

スキルアップ/キャリアアップ(JOB@IT)