こんにちは、tosumaです。
こちら2011年の記事のアーカイブです。
昨日、既存のシステム(.net)の画面から、別ASP画面にパラメータ渡して、
SQL投げてCSVファイルを出力してダウンロードの機能を作った。
その際、まず「オブジェクトを指定して下さい」の呪いにかかった。
ページ遷移しねぇ。。。
調べると、下記が原因らしい。。。
(1)構文ミス:ソースの確認
(2)文字コードが間違っている:charsetの指定
(3)指定順序が間違っている:HTMLロード未完了状態でgetElementById等を呼出
(onClickで指定された関数は、ロードが完了した後に定義)
結局、javascriptを外部と内部で定義していたのが原因だった。
できる時はできるのに?よくわからん。
まぁ分ける必要もないので、外部で統一。
次に、「HTTP エラー 405.0 - Method Not Allowed」エラーが発生。
うげ。。。これなんだ。。。
POSTすると発生?ハンドラマッピングで対応?
何してもダメ。。。というかFORMでACTIONを定義すると発生する。
というわけで、パラメータ渡しはjavascriptでURL渡しに実装
そうするとページ移動可能になった。
結局原因は何?
そして最後に、CSV出力時にエラが発生。
どうもDBから取ってきたレコードが5000件を超えるとエラーになるようだ。
どうもASPのバッファのデフォルト値は400KBになっているようでそれを超えると
死亡するみたい。
IIS7からはGUIで設定いじれます。
あぁ、これでいいのかと思い5000件の出力。
おぉ、いったいった。
じゃあ10000件。。。エラー。
次はなんだ。。。
まぁタイムアウトでした。
同じく時間増やして解決。
とりあえず動いたけど。。。すげぇ遅い。
まぁ検証だしいいのかな。
時間あればチューニングしてみよう。
お読み頂き有難うございました。