データベースの検索が行われるページがあり、値が見つかった場合は、何らかの応答がユーザーに返され、データベースの値が削除されます。
変数をチェックした後、削除サブを呼び出していますが、値がデータベースから削除されたのでサブが実行されたことはわかっていますが、これは決して起こらなかったようです。
ページが 2 回読み込まれているようで、2 回目のパスでデータベースの値がなくなったため、データベースの値が見つからなかったかのように表示されますが、削除するには見つかっている必要がありました (これは条件であるため)。 delete サブを実行するため)。
私はこれが非常識に聞こえることを理解していますが、私はこれを2日間続けており、何が起こっているのかわかりません. IIS 内からキャッシュを無効にして、レコードを削除する代わりに値がデータベースにポストされるようにコードを変更しようとしましたが、サーバーがデータベースの将来の値をチェックするように見えるのと同じ結果が得られます。それを変えるルーチン。
単一のページで同じレコードを読み書きするときに、これと同様の動作を見た人はいますか?
コード:
referer = Request.ServerVariables ("HTTP_REFERER")
session("testcode") = right(referer,16)
testcode = session("testcode")
set objcommand = server.createObject("adodb.command")
objcommand.activeconnection = strconnect2
objcommand.commandtext="SELECT codeval,stamp,used from code where codeval like '" & testcode & "'"
objcommand.commandtype = 1
set objrs = objcommand.Execute
set objcommand = nothing
countvar = 0
While not objrs.EOF
if not objrs("used") = true then
foundcode = true
countvar = countvar+1
end if
objrs.MoveNext
wend
if foundcode = true then
response.write "Found you!"
set objcomm5 = server.createobject("adodb.command")
objcomm5.activeconnection = strconnect2
objcomm5.commandtext = "update code set used = true where codeval like '"& testcode &"' "
objcomm5.commandtype = &H0001
objcomm5.execute
else
response.write "Can't be found!"
end if