読者です 読者をやめる 読者になる 読者になる

‥‥‥‥‥‥、え〜と、なんというか、ナニこのExcel出力処理の前にデータベースへのコネクションを100本以上張ってるクソコード‥‥

普通、ADOでDBからデータ取ってきてEXCELにはき出す処理をする場合、

  1. EXCELインスタンスを生成
  2. 編集するシートを生成
  3. ADOのインスタンスを生成
  4. データ取得クエリを発行( = データベースへのコネクション作成)
  5. セルにデータを流し込み
  6. コネクションクローズ
  7. 次のクエリを発行
  8. セルにデータを流し込み
  9. コネクションクローズ
  10. 次のシートを(ry
  11. コネクションクローズ
  12. コネクションを解放
  13. ADOのインスタンス解放
  14. EXCEL保存処理

ってのが当たり前なんですが、このプログラム、

  1. ADOのインスタンスを生成
  2. 1シート目の一つ目のデータ取得クエリを発行
  3. 1シート目の二つ目のデータ取得クエリを発行
  4. 1シート目の三つ目のデータ取得クエリを発行
  5. (略)
  6. 2シート目の一つ目のデータ取得クエリを発行
  7. (略)
  8. 8シート目の二十個目のデータ取得クエリを発行
  9. EXCELインスタンスを生成
  10. 編集するシートを生成
  11. セルにデータを流し込み
  12. 次のシートを作成
  13. セルにデータを流し込み
  14. コネクションクローズ
  15. コネクション解放
  16. EXCEL保存処理
  17. ADOのインスタンス解放

‥‥、ナニこの「コピペでコードを書くとこうなります」の例文みたいな処理は orz

こんなの動かしたら、マシンスペックどんだけ上げたってデータベースが死ぬわ。