質問編集履歴
3
コード更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
```
|
11
|
+
```VC++
|
12
12
|
|
13
13
|
#define ODBCset2 "Driver=○○○;Server=○○○;DATABASE=○○○;UID=○○○;PWD=○○○;"
|
14
14
|
|
@@ -27,6 +27,8 @@
|
|
27
27
|
OdbcConnection^ ODB = gcnew OdbcConnection();
|
28
28
|
|
29
29
|
ODB->ConnectionString = ODBCset2;//
|
30
|
+
|
31
|
+
#↓ここからメモリリーク
|
30
32
|
|
31
33
|
ODB->Open();//ODBCに接続する
|
32
34
|
|
@@ -87,3 +89,5 @@
|
|
87
89
|
|
88
90
|
|
89
91
|
プログラム開始とともに使用メモリは30MBくらいからみるみる増加し、1時間で300MB超えてしまいます。
|
92
|
+
|
93
|
+
ODBCをopen()でメモリリークが発生しているようですが、解放がこのコードではできていないようです。
|
2
コードの更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -46,11 +46,11 @@
|
|
46
46
|
|
47
47
|
count = int::Parse(c_data);//String^ to int
|
48
48
|
|
49
|
-
if (count >= 1)
|
49
|
+
if (count >= 1)#tableにレコードが1つ以上あったら
|
50
50
|
|
51
51
|
{
|
52
52
|
|
53
|
-
#処理
|
53
|
+
#処理実行してレコードを削除する
|
54
54
|
|
55
55
|
}
|
56
56
|
|
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
catch (...) {
|
74
74
|
|
75
|
-
|
75
|
+
#接続エラーの表示
|
76
76
|
|
77
77
|
}
|
78
78
|
|
1
コードの更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -11,6 +11,10 @@
|
|
11
11
|
```
|
12
12
|
|
13
13
|
#define ODBCset2 "Driver=○○○;Server=○○○;DATABASE=○○○;UID=○○○;PWD=○○○;"
|
14
|
+
|
15
|
+
using namespace System;
|
16
|
+
|
17
|
+
using namespace System::Data::Odbc;
|
14
18
|
|
15
19
|
|
16
20
|
|