• ベストアンサー

ADOを使ったDBアクセス後のメモリ解放

よく最後に rs.close set rs=nothing と記述してあるソースを見るのですが、 set rs=nothing で全部チャラにするなら rs.close は要らないんじゃないか?と思ったりするのですが、 やっぱり必要なんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

厳密に言うと rs.Close と Set rs = Nothing は意味が異なります。 Set rs = Nothing でレコードセットオブジェクトがメモリから開放されるのなら( rs 以外によってレコードセットオブジェクトを参照していない場合)、rs.Close はいらないんじゃないかと思います。 Public rs2 As Recordset Set rs2 = rs のようなことをしていた場合( rs 以外によってレコードセットオブジェクトを参照している場合)は Set rs = Nothing としても rs2 が生き残っているので、レコードセットオブジェクトはメモリから開放されません。従ってこの場合、Close しない限り開いたままになります。

関連するQ&A