質問編集履歴

2

Commit処理について記載しました。

2018/11/20 04:32

投稿

tanacck
tanacck

スコア14

test CHANGED
File without changes
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- データコピーの処理にトランザクションを貼ると(下記コードの★箇所から)、
23
+ データコピーの処理にトランザクションを貼ると(下記コードの★箇所から◆箇所まで)、
24
24
 
25
25
  Select処理で以下のメッセージが発生します。
26
26
 
@@ -40,7 +40,7 @@
40
40
 
41
41
  OleDbTransaction transaction = connMdb.BeginTransaction(IsolationLevel.ReadCommitted);
42
42
 
43
- xxxTableTAdapter.SetTransaction(transaction); // ★ここから、mdbをSelectする処理で例外が発生する。
43
+ xxxTableTAdapter.SetTransaction(transaction); // ★ここから、mdbをSelectする処理で例外が発生する。
44
44
 
45
45
  xxxTableTAdapter.Delete();
46
46
 
@@ -59,6 +59,8 @@
59
59
  cmd.ExecuteNonQuery();
60
60
 
61
61
  }
62
+
63
+ transaction.Commit(); // ◆ここまで、mdbをSelectする処理で例外が発生する。
62
64
 
63
65
  ```
64
66
 

1

「前提・実現したいこと」の記載を見直しました。処理イメージを追記しました。

2018/11/20 04:32

投稿

tanacck
tanacck

スコア14

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,17 @@
2
2
 
3
3
 
4
4
 
5
- mdb1からデタを取得(Select)し、mdb2へデータをコピー(Delete&Insert)している間、
5
+ 処理AでmdbのテブルTへデータをDelete&Insertしている間、処理Bは処理A開始前のテーブルTをSelectしたいです。
6
6
 
7
+
8
+
9
+ 以下にイメージを記載いたします。
10
+
11
+ - 処理A開始前、mdbのテーブルTにデータが100件ある。
12
+
13
+ - 処理Aは、テーブルTから100件Deleteし、90件Insertする。
14
+
7
- コピー開始前のmdb2データをSelectしたいです
15
+ - 処理A処理中、処理Bはmdbから100件Selectしたい。
8
16
 
9
17
 
10
18
 
@@ -30,9 +38,9 @@
30
38
 
31
39
  ```C#
32
40
 
33
- OleDbTransaction transaction = connMdb2.BeginTransaction(IsolationLevel.ReadCommitted);
41
+ OleDbTransaction transaction = connMdb.BeginTransaction(IsolationLevel.ReadCommitted);
34
42
 
35
- xxxTableTAdapter.SetTransaction(transaction); // ★ここから先、mdb2をSelectする処理で例外が発生する。
43
+ xxxTableTAdapter.SetTransaction(transaction); // ★ここから先、mdbをSelectする処理で例外が発生する。
36
44
 
37
45
  xxxTableTAdapter.Delete();
38
46
 
@@ -42,7 +50,7 @@
42
50
 
43
51
  OleDbCommand cmd = new OleDbCommand();
44
52
 
45
- cmd.Connection = connMdb2;
53
+ cmd.Connection = connMdb;
46
54
 
47
55
  cmd.Transaction = transaction;
48
56