- - PR -
COMMITとROLLBACKの方法
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-04-10 09:24
こんにちわ。
AccessとVBをちょっとかじったことのあるPGです。 ただ今、「Visual C# 2005」の勉強中であります。 先日ようやくSQL文を発行してデータベース(MDB)を更新することができるようなりました(ここまで来るのに一週間かかりました^^ ↓とりあえずこの記述で処理は成功しました。 using System.Data.OleDb; string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:\\kamoku.mdb"; OleDbConnection cn = new OleDbConnection(connectString); cn.Open(); string strSQL = "UPDATE 科目マスタテーブル SET 金額 = 500 WHERE 科目コード = '0001'"; OleDbCommand cmd = new OleDbCommand(strSQL, cn); OleDbDataReader reader = cmd.ExecuteReader(); これにCOMMIT、ROLLBACKの記述を足したいのですが、それが分かりません(; HELPや参考書、ネットで調べましたが、なぜかどうしても見つけることができません(; 初歩的なことで甚だ恐縮ですが、どなたかご教授くださいませm(__)m | ||||||||
|
投稿日時: 2007-04-10 09:44
MSDN ならこのあたりに書いてあります。
CommittableTransaction を使用した明示的なトランザクションの実装 トランザクション スコープを使用した暗黙的なトランザクションの実装 | ||||||||
|
投稿日時: 2007-04-10 11:16
こういう問題もあります。
登録したはずのデータが消える #リンク内にトランザクションの記述あり。 | ||||||||
|
投稿日時: 2007-04-11 21:11
mdbでTransactionScopeって使えるんですか? いや、よく知らないだけなんですが… | ||||||||
|
投稿日時: 2007-04-11 22:57
私も試したことはないので、はっきりしたことはわかりません。 とはいえ、使えない理由も特に思いつきませんが… | ||||||||
|
投稿日時: 2007-04-12 09:43
Accessで分散トランザクション?
| ||||||||
|
投稿日時: 2007-04-12 11:51
すみません。やっぱり TransactionScope は使えないようです。
試しにやってみたら、TransactionScope のブロック内での、 OleDbConnection.Open で InvalidOperationException が発生しました。 (VS2005 C#, ACCESS 2000で確認) 例外メッセージは以下の通り。
分散トランザクションは使えない気はしますが、 ローカルトランザクションなら使えてもいいかなと思ったのですが… http://support.microsoft.com/kb/221071/en-us ここを見ると、Jet 4.0 では ITransactionLocal がサポートされるとも 書いてありますけど、何故なんでしょう。 |
1