いつもお世話になっております。
インターネットやテキストで調べてもわからず、
似たような質問が無いものかとこちらのほうでも検索したのですが、見当たらなかったため新たに質問させていただきます。
現在、エクセルVBAにてADOを使用し、ワークシートをテーブルに見立てて、SQLを発行しているのですが、その際に生成するレコードセットの開放が確認できず困っています。
もちろんclose及びnothingは行っています。
タスクマネージャーを確認しながら、当該のステップが実行された時点で、メモリが開放されるか見ていても、物理メモリの利用可能サイズは微動だにしません。レコードセットが生成された時点のままです。
どなたか、思い当たることがございましたら、回答いただけませんでしょうか?よろしくお願いいたします。
補足:WindowsXP、EXCEL XP、メモリ256、といった環境です。
発行しているSQLはそれほどややこしくはありません。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ADOのみならず、
どんなコンポーネントでも
VBから起動すれば、
メモリを開放してくれません。
バグなのか、そういう仕様なのかは
当局は一切感知しておりません。
As New 宣言した場合は
起動時からメモリを消費しますし、
CreateObject時には
呼び出した瞬間から
メモリを消費します。
が!!!
開放はしません。
領域を確保しつづけるように
設計されてるからだと思いますが。
何故かって?
もう一度同じ容量食われたときに
メモリが足りなくなることを防ぐためさ…。
No.1
- 回答日時:
ADODB.ConnectionにSetを発行する際、Newはつけていますか?
問題のEXCELを閉じる(終了)とメモリ解放されるなら、Nothingを宣言したオブジェクトの、さらに上位が犯人だと思います。
ハズしてたらごめんなさい。
ご回答ありがとうございます。
EXCELを閉じるとメモリは解放されます。
ですが、ConnectionもRecordsetも生成時には、NEWをつけていますので、原因はそこではないかと思われます。
Public adoCONNECTION As ADODB.Connection
Set objADOConnect = New ADODB.Connection
Dim objADORS1 As ADODB.Recordset
Set objADORS1 = New ADODB.Recordset
といった具合です。
これらを踏まえた上で、思い当たる点はございますでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード Windows11アップデート後の不具合(メモリ不足)について 9 2023/01/04 11:34
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- ノートパソコン 自作にするか、メーカーか、オススメのノートPCをおしえてください。 5 2022/11/29 17:42
- アプリ swiftでスマホアプリを開発した時の動作確認 1 2023/02/14 11:37
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- Excel(エクセル) Excelについて質問です。 シート1の検索値例えば *ABC* をシート2.3.4から検索して、シ 5 2023/02/17 23:30
- CPU・メモリ・マザーボード PCのメモリについて質問です 8 2022/10/04 09:35
- PostgreSQL ポストグレにあるExcelファイルを開くには 1 2022/12/13 18:07
- CPU・メモリ・マザーボード メモリが使用可能にならない 3 2022/08/13 17:13
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
-
4
ADOのCursorLocationプロパティ
Visual Basic(VBA)
-
5
VBAでレコードセットの総レコード数を取得する方法
Access(アクセス)
-
6
Accessで、メモリを開放するタイミング
その他(データベース)
-
7
closeとメモリの開放について
Visual Basic(VBA)
-
8
ADODB.Streamで開いたファイルに追記する
その他(プログラミング・Web制作)
-
9
Excel 1セル当りの文字数が255文字を超える場合のADOからの取
その他(プログラミング・Web制作)
-
10
[VBA] ADOの Clone と AddNew
その他(プログラミング・Web制作)
-
11
【Excel】【VBA】実行時エラー メモリ不足
Excel(エクセル)
-
12
参照設定は2.8と6.0 6.1とどちらにチェッ
その他(Microsoft Office)
-
13
ADODBでの行番号の取得、もしくはCSVのインポートについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
メモリのセグメント違反の解決...
-
LoadLibraryしたらFreeLibrary
-
メモリの解放について VB6 VBA
-
C言語における再帰呼び出しの...
-
メモリ不足
-
動的メモリとexit(C言語)
-
【C言語】再帰が時間がかかる...
-
C#のOutOfMemoryException発生...
-
ファイルマッピング関数で失敗
-
メモリアロケーション異常の発...
-
再帰関数について
-
Bitmapを重ね合わせる方法
-
EXCEL-VBAにてADOのレコードセ...
-
プログラムの最大メモリ消費量...
-
緯度、経度の 10進法と 60進法...
-
Macターミナルで実行中のプログ...
-
スレッドの安全な終了のさせ方
-
バックグラウンドのプロセスの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
「ヒープサイズの設定」て何?
-
C言語における再帰呼び出しの...
-
エクセルVBA 大容量CSVファイル...
-
動的メモリとexit(C言語)
-
エクセルのメモリ使用状況/Appl...
-
メモリが不足しています(VBA)
-
ファイルマッピング関数で失敗
-
大容量のメモリ確保をスワップ...
-
メモリのセグメント違反の解決...
-
メモリ不足
-
EXCEL-VBAにてADOのレコードセ...
-
エクセル キャッシュメモリー...
-
【C言語】再帰が時間がかかる...
-
C#のOutOfMemoryException発生...
-
メモリの解放について VB6 VBA
-
バッチファイルでの実行EXEのメ...
-
closeとメモリの開放について
-
「memcpy」と「strcpy」について
おすすめ情報