[1]. リスト更新要求
Webブラウザ上からリスト更新条件(日付指定、ダウンロード済みかどうか)を行い、Webサーバへリスト更新要求を行います。
[2]. リスト更新応答
取得したファイルリストを基に、HTMLデータを作成し、応答としてWebブラウザに送信します。その結果、ファイルリストがWebブラウザで表示されます。
[3]. リスト更新応答
取得したファイルリストを基に、HTMLデータを作成し、応答としてWebブラウザに送信します。その結果、ファイルリストがWebブラウザで表示されます。
[4]. ダウンロード要求
ファイルリストからダウンロードしたい項目をチェックボックスで選択し、Webサーバへダウンロード要求を行います。
[5]. データ取得
選択したダウンロード項目に対し、SQL文を生成し、必要なデータを取得します。
[6]. データ更新
取得したデータをダウンロード済データとして、更新します。
[7]. ダウンロード応答
取得したデータを基に、ダウンロードファイルのデータを作成し、応答としてWebブラウザに送信します。その結果、Webブラウザ側にファイルのダウンロードダイアログが表示されますので、そこで、「開く」を押すと、ダウンロードしたファイルを確認することができます。
1. Visual Studioのクエリビルダが複雑なSQL文に対応していない。
SQLServerでは問題なく使用できるSQL文でも、Visual Studioのクエリビルダで使用できないものがありました。具体的には、CONVERTなどがSQL文に使われている場合、Visual Studioのクエリビルダがエラーで強制終了してしまいます。ただし、SQL文の構文が間違っているわけではないので、クエリビルダを使用しないで、直接ソースコードにSQL文を埋め込む場合は、問題なく動作します。
2. ダウンロードした項目が、Webブラウザ上にダウンロードされていないように表示されてしまう。
たとえば、3-1の[4]の段階でまだダウンロードしていない項目を選択し、ダウンロードしたとします。
その場合、3-1の[6]の段階でダウンロード済みと状態が変わっておりますが、Webブラウザの画面上は、3-1の[4]の画面状態から変わらないため、ダウンロードされてない表示の状態のままとなってしまいます。
Webアプリケーションにおいて、要求と応答は1対1の関係にあり、3-1の[7]でダウンロード応答を受け取った時に画面の更新を同時に行うことはできません。そこで、ダウンロード要求後、一定時間経ったら、リスト更新要求を出すようにすることで、問題を回避しました。