クローズしないとどうなるの??使い終わったら、必ずクローズしてね..と、いわれて来たのであまり考えずにDataReaderをクローズするよう記述しているのだけれど、実際どうなるのかわからなかったので、やってみました。DataReaderは、カーソルが戻される?OracleDataReaderを使ってデータを取得する、という事は「ExecuteReader」メソッドを実行しOracle上に条件を満たすレコードが確保され、そのレコードを読み出す為の「カーソル情報」が戻り値として返ってくる。その「カーソル」を閉じて破棄するのでしょう。やってみるプログラム指定したループ回数、EMPテーブルを読みSAL列を合計するプログラムで実験。Sub見てもらうとわかりますが、1回目と2回目はDataReaderをCloseしなかった結果です。それに対して3回目、4回目はCloseした結果です。300回目でエラーが出ました。300が「最大オープンカーソル数」だと言えそうです。最大オープンカーソル数を確認OracleEnterpriseManagerで確認してみます。Oracle9i、10gではデフォルト300のようです。(インストール時の値を確認した内容です)これが影響するんですね。して実行した結果です。500回目でエラーが出ました。「なんでそうなるの?」などを追求したい方は、色んな所にテキストがありますが、@マークITのこの記事がわかりやすいので見てみてください。ページの先頭へ戻るまとめDataReaderは一回一回きちんとCloseしましょう。