- 締切済み
大量データの受け渡し
DBより検索したデータを一覧表示し、そのデータをcsvファイルへ保存しています。 DBの検索時間が結構かかってしまうため、保存する際に、再度検索を行うのは避けたいと考えています。 そこで、<input type=hidden name=data>に、データをセットして送信していたのですが、 件数が多すぎるとエラーとなってしまいます。 画面上に、送信データが見えなければどんな方法でもかまいません。 どなたかいい方法を教えて下さい。 宜しくお願い致します。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- SpeedSky
- ベストアンサー率0% (0/0)
asp.netであればセッションファイルを利用するがBESTと思います。データ量が多くてもSQLServerに定義すればメモリもあまり使いません。
- Dpop
- ベストアンサー率51% (279/544)
ファイルに書き出して、移動させると良いでしょう。 比較的、古くから利用されている手法ですが。 1)ランダムなファイル名を作成する。 2)カタログを確認して、ファイル名が存在しなければ、プロセスIDと共にカタログへ書き込む。 3)次に呼び出すASPに、ファイル名とプロセスIDをパラメータとして渡す。 4)ファイルから必要な情報を取得する。 5)ファイル名とプロセスIDを頼りにして、カタログから該当するファイル名, プロセスIDの情報を削除する。 カタログはテキストファイルで良いです。ファイル名が重ならなければ、パラメータの受け渡しに失敗したり、カタログを消し忘れる。と言うことも無いのですが、プロセスIDを保険で付けて置けば、まず問題は無いでしょう。(同一時間に別プロセスから同一ファイル名が作成されてしまう。と言うことを避けることができる。) この方法の場合、パラメータを受け渡すファイル名が重なってしまわない様に、カタログを自力で管理する。と言う部分がポイントです。 共通ルーチンとして開発してしまえば、後は使いまわしができるので、比較的簡単ですよ。
- coco1
- ベストアンサー率25% (323/1260)
動作環境はなんですか? また、検索結果をCSVに保存するのは、どの時点で誰が行うのですか? 誰に送信するのですか? たとえば、phpなどのスクリプトであれば検索結果をそのままダウンロードすることもできますし、ディスク上にリダイレクトしてあとからFTPで取得する、という手順も考えられると思いますが。