複数のデータセットのトランザクション
- 題名: 複数のデータセットのトランザクション
- 著者: こう
- 日時: 2005/11/04 12:03:35
- ID: 13600
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 複数のデータセットのトランザクション
- 著者: かつどん
- 日時: 2005/11/09 10:27:01
- ID: 13665
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 複数のデータセットのトランザクション
- 著者: こう
- 日時: 2005/11/10 16:16:19
- ID: 13677
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になります。
今回は複数のデータセットのトランザクションについて教えて下さい。
やりたいこと
2つのデータアダプタからそれぞれ別のデータセットに対してupdate
の処理を行いその2つのupdateに対してトランザクションをかけたい
やったこと
cn.Open()
Tr = cn.BeginTransaction()
Try
'2つのデータアダプタを生成
DAa = New Odbc.OdbcDataAdapter(sSQL, cn)
DAa1 = New Odbc.OdbcDataAdapter(sSQL1, cn)
Dim cb As New Odbc.OdbcCommandBuilder(DAa)
Dim cb1 As New Odbc.OdbcCommandBuilder(DAa1)
DAa.SelectCommand.Transaction = Tr
DAa1.SelectCommand.Transaction = Tr
DAa.Fill(ds1)
CopyRow(ds1.Tables(0).Rows(0), J_HSet)
J_HSet.Tables(0).Rows(0).Item("keijyo_kbn") = 2
DAa.Update(J_HSet)
DAa1.Fill(ds2)
For i = 0 To ds2.Tables(0).Rows.Count - 1
CopyRow(ds2.Tables(0).Rows(i), J_MSet)
J_MSet.Tables(0).Rows(i).Item("keijyo_kbn") = 2
J_MSet.Tables(0).Rows(i).Item("h_tanka") = J_MSet.Tables(0).Rows(i).Item("h_tanka") * -1
J_MSet.Tables(0).Rows(i).Item("suryo") = J_MSet.Tables(0).Rows(i).Item("suryo") * -1
Next
DAa1.Update(J_MSet)
Tr.Commit()
Catch er As Exception
Tr.Rollback()
Finally
cn.Close()
End Try
長々書いてしまって申し訳ありません。
上記記述で実行したところ2回目のupdate処理はDBに反映されるの
ですが1回目のupdateの処理が反映されません。それで2回目の処理
をコメントして1回目の処理を実行すると1回目は正常にDBに反映
されます。なぜか最後にupdateしたものだけがDBに反映されている
ようです。 自分の記述方法がわるいのでしょうか?
わかる方がおられましたら宜しくお願いします。