- PR -

SqlDataReader,Read中のコネクション管理について

1
投稿者投稿内容
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-05-03 17:20
さかもとと申します。
VB2005
Winアプリ
SqlServer2005

コード:
        Using cn As New SqlClient.SqlConnection(strConn), _
                cmd As New SqlClient.SqlCommand
             
            cn.Open()
            cmd.Connection = cn
             
            cmd.CommandText = "SELECT ID FROM テーブルA"
            dr = cmd.ExecuteReader
            
            Do While dr.Read
             UPDATET(ID) ★
            Loop
        End Using
        
        Private Sub UPDATET(byval ID as integer)
                cn2,cmdを準備して・・・。
        	cmd2.CommandText ="UPDATE TableT SET ・・・・"←cn2,cmd2を利用
        	cmd2.ExecuteNonQuery()
        
        End sub




上記コードで★部分でReadしながらUPDATETを処理する場合
に同一のSqlCommandを利用できないのでcn2,cmd2なるもの
を作成して別コネクションを張って処理をしてきました。

ただ、これにトランザクションの管理などを含めると結構乱雑で
汚いコードになってしまうので、このようなケースが
出たら極力ストアドを作成して対応をするようにして
いました。

今回、ストアドで対応できない箇所が出てきまして、
こうしたケースはどのように書くのが一般的なのかを
ご教授頂ければと思います。

宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-03 17:38
引用:

さかもとさんの書き込み (2006-05-03 17:20) より:

ただ、これにトランザクションの管理などを含めると結構乱雑で汚いコードになってしまうので、
このようなケースが出たら極力ストアドを作成して対応をするようにしていました。

今回、ストアドで対応できない箇所が出てきまして、
こうしたケースはどのように書くのが一般的なのかをご教授頂ければと思います。


こちらのスレッドが参考になると思います。

  連続するデータベースアクセス処理の記述方法

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-05-03 17:44
さかもとです。
じゃんぬねっと様、ありがとうございました。
過去に出ていたんですね、検索が甘かったです。
早速参考にさせていただきます。

1

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