掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Set cn = Nothing と cn.Close について (ID:123098)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Set cn = Nothingは『参照の開放』、『参照の解除』ということははっきりしている。 Set cn = Nothingとメモリーリークの関係は、 Set cn = Nothingで全ての参照が開放されると、 参照カウンターが0になりメモリーが開放される、しかしバグにより全ての参照が開放されても メモリーが開放されないことが起こる。これがメモリーリークである、これはあくまでもバグである。 >データベースの接続を開き続ける結果となり、制限を超えるとエラーが出ると思います。 これはプログラムが正しくメモリーを確保した結果、メモリーが足りなくなっただけで、 VBのバグで有っても、メモリーリークではない。 メモリーリークはVB側ではあくまでも正規の手続きによって全ての参照を開放しても、メモリーが 開放されないことを言います。 明らかにメモリーリークを起こすOCXやDLLを使わない限り、VBでメモリーリークを起こすことは 難しい。 Windows2000やXpの様にWindowsがNT系になり、メモリーのプロテクト領域へのアクセス制限が 厳しくなって、ずいぶんメモリーリークが減った、そのぶんある程度いいかげんなメモリー管理 で動いていたDLLが2000やXpで使えなくなると言うことが起こった。 cn.CloseはあくまでもcnクラスのメンバーCloseを指しているだけ、何をしてるかは実装によって 異なり、メモリーリークとは無関係。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.