‥‥‥‥‥‥、え〜と、なんというか、ナニこのExcel出力処理の前にデータベースへのコネクションを100本以上張ってるクソコード‥‥
普通、ADOでDBからデータ取ってきてEXCELにはき出す処理をする場合、
- EXCELのインスタンスを生成
- 編集するシートを生成
- ADOのインスタンスを生成
- データ取得クエリを発行( = データベースへのコネクション作成)
- セルにデータを流し込み
- コネクションクローズ
- 次のクエリを発行
- セルにデータを流し込み
- コネクションクローズ
- 次のシートを(ry
- コネクションクローズ
- コネクションを解放
- ADOのインスタンス解放
- EXCEL保存処理
ってのが当たり前なんですが、このプログラム、
- ADOのインスタンスを生成
- 1シート目の一つ目のデータ取得クエリを発行
- 1シート目の二つ目のデータ取得クエリを発行
- 1シート目の三つ目のデータ取得クエリを発行
- (略)
- 2シート目の一つ目のデータ取得クエリを発行
- (略)
- 8シート目の二十個目のデータ取得クエリを発行
- EXCELのインスタンスを生成
- 編集するシートを生成
- セルにデータを流し込み
- 次のシートを作成
- セルにデータを流し込み
- コネクションクローズ
- コネクション解放
- EXCEL保存処理
- ADOのインスタンス解放
‥‥、ナニこの「コピペでコードを書くとこうなります」の例文みたいな処理は orz
こんなの動かしたら、マシンスペックどんだけ上げたってデータベースが死ぬわ。