dポイントプレゼントキャンペーン実施中!

VB.NET+ACCESSでWEBアプリケーションを作っております。
開発は特に問題がないのですが、少し疑問に思ったことがありますので、どなたかご存知の方がおられましたら教えてください。

DBに接続するとき、接続をオープンします。
この後で接続をクローズせずにアプリケーションを閉じるとどのような影響があるのでしょうか?
書籍などには必ずクローズをするようにと書かれていますが、その理由がよくわかりません。
どなたかご教授ください。

A 回答 (4件)

Java,OracleでWEB開発をしています。



>接続をクローズせずにアプリケーションを閉じるとどのような影響があるのでしょうか?

徐々にパフォーマンスが落ちてきたり、ある時DB接続できなくなったりします(実体験)DB接続のオープン、クローズだけでなく Java の場合は ResultSet, PreparedStatement のクローズも行わないと問題が発生します。

あと#1さんの
>WEB系では、そのページでのDBへのコネクションは、ページが読み込み終了した時点でオブジェクトが解放されますので、自動的にクローズされていると思います。

Javaだとオブジェクト自体がガベージコレクションの対象になるだけで接続は保持されています。明示的にクローズしてやらないと最初に言ったような問題が発生します。

VB.NET+ACCESS の場合は実はボクはどうだか分かりません。(^^;
御参考までに。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
実例をふまえた回答をいただき、とてもわかりやすかったです。
ありがとうございます。

お礼日時:2005/05/15 07:20

DBに限らず常識的にオープンとクローズは対になっています。


通常プログラミング言語ではプログラムの終了と共に自動的にオープンされている全てのリソースをクローズするのが一般的ですがプログラミングスタイルからすると薦められません。
WEBアプリケーションは通常一画面終了と共にプログラムが終了します。
また、SpiralGalaxyさんの言うようにごみが残る場合もあります。
ですので、クローズするのが常識的だと理解してください。
    • good
    • 0

試しにDBのオープンのみを延々とやってみては?


そうしてみるとわかると思いますよ。
    • good
    • 0

一般的に、DBへ接続したら明示的にクローズするのが基本ですので、そう書かれているのだと思います。



WEB系では、そのページでのDBへのコネクションは、ページが読み込み終了した時点でオブジェクトが解放されますので、自動的にクローズされていると思います。

テーブルのオープンも同様です。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す