- PR -

Transactionを使った更新

投稿者投稿内容
elmo
常連さん
会議室デビュー日: 2002/08/09
投稿数: 47
投稿日時: 2002-09-05 11:10
ごめんなさい。上記の説明は少し変ですよね?
(これをみてそうなのかと思われる方がいると非常にまずい)

DataAdapter.Update()で更新するデータをトランザクションに含める時は、
・DataAdapter.UpdateCommand.Connection
・DataAdapter.UpdateCommand.Transaction
を設定しなければならないということでいいんですよね?
DataAdapter.Update()はこれらを使って、DataSetの内容を書き換えに行くと考えていいんですよね?

nsfj
会議室デビュー日: 2002/08/09
投稿数: 12
投稿日時: 2002-09-05 17:30
正しく認識されている思いますが念のため。

DataAdapterのUpdateはDataSet(DataTable)の中の追加行に対してInsertCommandを、更新行に対してUpdateCommandを、削除行に対してDeleteCommandを実行してDBに反映します。それ以外の行(何も編集していない行)に対してはCommandを実行しません。
Transaction内で実行するには各CommandにTransactionを渡す必要がありますし、そのためにはTransactionの元となったConnectionも渡す必要があります。
逆にBeginTransactionされているConnectionを渡しているのにTransactionを渡さないとエラーになります。
elmo
常連さん
会議室デビュー日: 2002/08/09
投稿数: 47
投稿日時: 2002-09-05 17:43
nsfjさん

なんだかすっきり飲み込めた気がします! よかった〜。
これからはトランザクションの処理は間違えないと思います!
ありがとうございました☆

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