0

私は ASP や SQL の経験はありませんが、組織のためにツールを再作成/改善するタスクを与えられています。このツールは、郵便番号に基づいて 2 つの製品の在庫状況を検索します。別々のクエリを使用して 2 つのテーブルを検索し、2 つの結果セットを表示する必要があります。(各テーブルには、個別に処理する必要がある「zip」という列が含まれているため、結合を使用できませんでした。)

2 つのレコード セットが正常に作成されたようで、ほとんどの場合、両方のクエリの結果を受け取っています。問題が発生しているのは、最初のクエリでレコードが見つからず、2 番目のクエリが実行されていないように見える場合です。

最初のクエリの結果を処理するコードは次のとおりです。

if ors.EOF then
response.write("not found")

else if ors("flag") = 1 then
response.write("flag is 1")

elseif ors("flag") = 2 then
response.write("flag is 2")

elseif ors("flag") = 3 then
response.write("flag is 3")

else
response.write("something else")

end if

2番目のコードは次のとおりです。

if ors2.EOF then
response.write("not found")

else
response.write("found")

end if

「if ors.EOF then」ステートメントと関係があるはずですが、それを回避する方法がわかりません。

どんな助けでも大歓迎です!

4

2 に答える 2

0

上記のコードを見て、if / else if ロジックが間違っている可能性はありますか? 最初のクエリからのレコードがない場合、2 回目のクエリで何かが印刷されていますか? コードが次のようにコンパイルされている可能性があります。

if ors.EOF then
   response.write("not found")
else 
   if ors("flag") = 1 then
      response.write("flag is 1")
   elseif ors("flag") = 2 then
      response.write("flag is 2")
   elseif ors("flag") = 3 then
      response.write("flag is 3")
   else
      response.write("something else")
   end if

   if ors2.EOF then
      response.write("not found")
   else
      response.write("found")
end if
于 2013-02-20T20:19:10.117 に答える
0

問題を解決してよかったです。if else ステートメントよりも case ステートメントをお勧めします:)

if ors.EOF then
  response.write "not found"
else
  select case ors("flag")
    case 1,2,3 : response.write "flag is " & ors("flag")
    case else  : response.write "something else"
  end select
end if

if ors2.EOF then response.write "not found" else response.write "found"
于 2013-02-21T06:57:18.417 に答える